インターネットオペレーション 第 4 回経路制御 重近範行 ( 石原知洋 )
前回からの再出 誰と通信するのか? 識別子の存在 IP アドレス どのように伝わるのか 経路制御 経路表
IP アドレスと MAC アドレス Ethernet で接続している Host A(192.168.1.1 ) が Host B(192.168.1.2) と通信する場合 相手の IP アドレスはわかっている でも 実際にどうやって Ethernet で通信する? ー > 相手の MAC アドレスを知る必要がある IP アドレスから MAC アドレスに変換する機構が必要
ARP(Address Resolution Protocol) IP アドレスと MAC アドレスの変換 Ethernet Broadcast で問い合わせて 結果を Table に保存
ARP Table を見てみよう! Windows 系 UNIX 系 OS 共通 arp -a 一旦全部消して見よう arp -a -d
パケットの伝わり方 パケットの伝送はバケツリレー / 伝言ゲーム 中継ノード ( ルータ ) が受け取ったパケットを宛先を見て適切な相手に転送する 転送先 A ルータ 転送先 B パケット
経路制御 それぞれのルータがどの転送先にパケットを転送するかを判断 どうやって判断をするか? 経路表による判断 転送先 A ルータ 転送先 B このパケットは宛先 A?B? パケット
経路表 宛先のネットワークと転送先のリスト ルータは自分の経路表を見て宛先を判断する
経路表の例 デフォルト経路 nr60: {2} % netstat -rn Routing tables Internet: Destination Gateway Flags Refs Use Interface default 203.178.140.1 UG 7 35972 ef1 127 127.0.0.1 UR 0 0 lo0 127.0.0.1 127.0.0.1 UH 0 0 lo0 133.27.12.129 203.178.140.1 UGHc 1 120 ef1 133.27.171/24 203.178.140.1 UG 0 0 ef1 202.0.73 203.178.140.1 UG 0 0 ef1 202.0.73.96/27 203.178.140.1 UG 0 0 ef1 202.0.73.128/27 203.178.140.1 UG 0 0 ef1 202.0.73.236/30 203.178.140.1 UG 0 0 ef1 203.178.138.18/30 203.178.141.9 UG 0 0 ef0 203.178.139.64/27 203.178.140.1 UG 0 0 ef1 203.178.139.96/27 203.178.140.1 UG 0 0 ef1 203.178.139.128/27 203.178.140.1 UG 0 0 ef1 宛先ネットワーク 転送先
経路表を見てみよう Windows 系なら コマンドプロンプトから route print UNIX 系 OS (Mac OS X 等 ) netstat -rn ノート PC は出入り口が 1 つしかなく default 経路しか存在しない場合が多い
パケットの中継される様子を見てみよう www.sfc.wide.ad.jp まで Windows 系 OS コマンドプロンプトで tracert www.sfc.wide.ad.jp UNIX 系 OS traceroute www.sfc.wide.ad.jp
エンドノードでの経路表 外部へ ルータ ネットワーク ネットワーク内の相手とは通信できる でも どこから外部に出られるだろう?
エンドノードでの経路表 外部へ ルータ ネットワーク 経路表 Default ルータ
経路表によるパケット転送のモデ ル 経路表 ネットワーク B ルータ B ネットワークA ネットワークC ルータA ルータC 経路表 ルータ A 経路表 ネットワークB ネットワークC ルータB ルータB ルータ C ネットワークA ネットワークB ルータB ルータB ネットワーク A ネットワーク C
経路表の例 デフォルト経路 nr60: {2} % netstat -rn Routing tables Internet: Destination Gateway Flags Refs Use Interface default 203.178.140.1 UG 7 35972 ef1 127 127.0.0.1 UR 0 0 lo0 127.0.0.1 127.0.0.1 UH 0 0 lo0 133.27.12.129 203.178.140.1 UGHc 1 120 ef1 133.27.171/24 203.178.140.1 UG 0 0 ef1 202.0.73 203.178.140.1 UG 0 0 ef1 202.0.73.96/27 203.178.140.1 UG 0 0 ef1 202.0.73.128/27 203.178.140.1 UG 0 0 ef1 202.0.73.236/30 203.178.140.1 UG 0 0 ef1 203.178.138.18/30 203.178.141.9 UG 0 0 ef0 203.178.139.64/27 203.178.140.1 UG 0 0 ef1 203.178.139.96/27 203.178.140.1 UG 0 0 ef1 203.178.139.128/27 203.178.140.1 UG 0 0 ef1 宛先ネットワーク 転送先
Longest Match もっともネットワーク長が長いものを使う より 詳しい 経路という考え To: 203.178.143.1 ルータ B へ Default 経路は長さ /0 の経路 一番優先順位が低い ルータ 経路表 Default ルータA 203.178.143.0/24 ルータA 203.178.143.0/25 ルータB... 全部にマッチするが /25 の方が長いのでこちらにマッチ
経路異常でパケットが 届かなくなる二大要因 経路の不在 To: 133.27.4.1 ルータ 経路表 経路表に 133.27.4.1 を含むネットワークが無い! 203.178.143.0/25 203.178.143.129/25 131.113.0.0/16...... 経路のループ
経路のループ 経路表にしたがっていくと 同じ場所をぐるぐる回る To: 133.27.4.1 これはルータ B 行き ルータ A 経路表 133.27.0.0/16 ルータ B これはルータ A 行き ルータ B 経路表 133.27.0.0/16 ルータ A 多くの場合 default 経路が入っているため 経路が無い場合はこちらの現象が起きる
パケットの TTL(Time To Live) 中継される回数の指定 中継ノードごとに一つずつ減らしていく 無くなったら ICMP( 次頁 ) を返す パケットが無限にループすることを防ぐ Ver IHL TOS Total Length Identification Flag Fragment Offset TTL Protocol Header Checksum Source Address Destination Address Options Padding
ICMP Internet Control Message Protocol ネットワーク およびパケット送受信の状態について通知するプロトコル 有名なものでは echo request/reply (PING) Time to live exceeded (traceroute) Desination Unreach
経路表の作り方 学生のノート PC 等 エンドホスト の場合 DHCP などのアドレス自動設定プロトコルで設定 ルータなどの中継ホストの場合 経路制御プロトコルでの設定
経路制御 経路制御とは うまく通信ができるように各ノードの経路表を適切に設定してやること
主なループの原因 (1) 正常な経路が存在しない 設定し忘れ ルーティングプロトコルの不良中継ルータ 2 経路表 Default 外部接続ルータ 外部接続ルータ 経路表ネットワーク A 中継ルータ 2 中継ルータ 1 ネットワーク A 本来はネットワーク A への経路が必要なのに 存在しない
主なループの原因 (2) 経路情報の不整合 変更に正しく追従できていない ネットワーク A( 旧 ) 移動 ネットワーク A( 新 ) ルータ 2 経路表ネットワーク A ルータ 1 ルータ 3 ルータ 1 経路表ネットワーク A ルータ 2 正しくはルータ 3 があて先だが 古い情報のまま正しく更新されていない
経路の非対称性 行きと帰りで同じ道を通るとは限らない SFC の例 : SFC から海外サイトへ KDDI 海外サイト 日本 大手町 SFC WIDE アメリカ ロサンゼルス UUnet
非対称経路と traceroute(1) Traceorute して止まったところが本質的に悪いとは限らない! 2 4 1 6 3 5 往路 :1 2 4 6 復路 :6 5 3 1
非対称経路と traceroute(2) 2 4 1 6 3 5 1 3 間の通信に障害 4 までの経路 1 2 4 4 3 1 Traceroute すると 2 までで止まってしまう でも 2 4 間の通信は問題ない!
非対称経路と traceroute(3) 2 4 1 6 3 5 3 4 間が通信障害 4 を経由する 1 ー 6 間の通信は通る 4 自体に届かない
静的経路制御と動的経路制御 静的経路制御 オペレータが各ノードの経路表を手動で設定 動的経路制御 各ノードが情報をやりとりし 自動的に設定 ルーティングプロトコル
経路制御 :2 台のコンピュータ 経路制御の必要無し On-link
経路制御 : 単純なネットワーク 数が少なければ静的経路制御でも可能
経路制御 : 複雑なネットワーク 複雑な場合は静的経路制御では難しい
状態変化への対応 (1) 状態が変わった場合 経路表を対応させる必要がある 静的経路制御は手動 動的経路制御は自動 ネットワーク A( 旧 ) 移動 ネットワーク A( 新 ) ルータ 2 経路表ネットワーク A ルータ 1 ルータ 3 ルータ 1 経路表ネットワーク A ルータ 2 ネットワーク A のあて先をルータ 3 に書き換える
状態変化への対応 (2) 2 4 1 6 3 5 3 4 間が通信障害 4 からの戻りのパケットは 5 を通るように経路表を変更 動的経路制御は通信障害を検知して 自動的に経路を変更できる
経路制御プロトコル Routing Protocol ルータ間で経路情報を交換し 経路表を作成 経路情報 どこに どのサブネットがあるか どのルータを介して どのサブネットに到達できるか こっちには 203.178.143.0/24 がある 203.178.143.0/24 133.27.0.0/16 ルータ A ルータ B 133.27.0.0/16 ルータ B こっちには 133.27.0.0/16 がある 203.178.143.0/24 ルータ A 受け取った経路を経路表に追加
IGP と EGP IGP 組織 内 での経路制御 EGP 組織 外 での経路制御
ルーティングプロトコルの種類 IGP RIP OSPF ibgp EGP (e)bgp
経路交換と経路選択 ルーティングプロトコルは経路交換と経路選択から成る 経路交換 : 経路情報を他のルータに伝える 経路選択 : 受け取った経路情報から最適な経路を選択 経路選択方式が違うとループが起きる
経路制御アルゴリズム 距離ベクトル型アルゴリズム リンク状態型アルゴリズム
距離ベクトル型のアルゴリズム 経路広告 各ルータは 経路情報を隣接ルータに広告 自分が到達可能なプレフィックス そこへの距離 ( 例えばホップ数 ) 経路選択 自分が知らない経路なら 採用 自分が知っている経路より 短い経路なら採用 代表的なプロトコル RIP, RIP2
リンク状態型のアルゴリズム 経路広告 ネットワーク全体に流す 各ルータのリンク ( インターフェース ) 情報をネットワーク全体で共有 例 : R1 は R2 と繋がっている 例 : R1 には 133.27.4.0/24 が繋がっている 経路選択 リンク情報を基に 全ルータまでの道順 ( ツリー ) を作成 全ルータが同一の計算方法 OSPF など
経路制御の階層構造 (1) Autonomous System(AS) 同じポリシーで管理されているネットワーク 外部からはひとつのネットワークに見える 内部の複雑さは隠蔽される KDDI 2516 SO-NET 2527 IIJ 2497 OCN 4713 WIDE 2500 インターネット
経路制御の階層構造 (2) AS 内の経路制御 と AS 間の経路制御 規模性の問題 全世界を一つの RIP や OSPF ドメインで接続することはできない 世界規模で変更があるたびに全世界を更新していたら破綻する AS 内の経路制御 (RIP, OSPF) AS 間の経路制御 (BGP) AS 内の経路制御 (RIP, OSPF) AS AS AS
経路の集約 AS A 203.178.143.3 へ送信 BGP で得た経路情報から ASB へ転送 ルータ X BGP 203.178.143.0/24 はこっち AS 内経路制御により ルータ B へ転送 ルータ A RIP, OSPF ルータ B 203.178.143.0/25 はこっち 203.178.143.128/25 はこっち ルータ C AS B 203.178.143.0/25 203.178.143.128/25
経路制御の階層構造 (3) 経路制御は 大きく 2 階層に分かれる BGP では 集約された経路情報だけ交換 BGP による AS 間の経路制御 AS B AS A AS C AS D AS E AS 内の経路制御
再掲 : 主なループの原因 (2) 変更に正しく追従できないとループが発生 全世界規模で細かく追従は不可能 ネットワーク A( 旧 ) 移動 ネットワーク A( 新 ) ルータ 2 経路表ネットワーク A ルータ 1 ルータ 3 ルータ 1 経路表ネットワーク A ルータ 2 正しくはルータ 3 があて先だが 古い情報のまま正しく更新されていない
まとめ 経路制御技術の概説 経路表 EGP と IGP 経路制御の階層化