IPパケットはプロバイダ内をどのように転送されるのか

 プロバイダの中にあるルーターは,IPパケットに書かれたあて先IPアドレスと経路情報を頼りに,IPパケットを転送していく。しかし,その具体的な動きはなかなかイメージしにくい。そこで,IPパケットがプロバイダのネットワークをどのように転送されるのか,もう少し詳しく見て理解を深めよう。
2種類のプロトコルを使い分ける

 Part4の本文で見たように,プロバイダ間ではBGPというルーティング・プロトコルを使って経路情報を交換する。一方,プロバイダの内部のルーター間で経路情報をやりとりするのに使われるのが,BGPとは別の「OSPF」と呼ぶルーティング・プロトコルである。

 BGPで扱う経路情報は,「そのASに所属するネットワーク」という極めて単純な形式になっている。こうした工夫によって,プロバイダ間でやりとりされる膨大な経路情報をうまくさばける。BGPは,プロバイダ同士の経路情報のやりとりのほか,外部から得た経路情報を自分のAS内の主要ルーターに配る場面で利用される。IPパケットのあて先が他のプロバイダの場合,BGPで得た経路情報が役立つことになる。

 一方のOSPFは,AS内のルーター同士の接続状況を示した詳細なマップ(トポロジ・マップ)を管理する役割を果たす。そのうえで,AS内でIPパケットを送る場合の具体的な経路を決める。OSPFには,回線の帯域などを考慮に入れた最適経路を選択できるというメリットがあるが,ルーターの台数や経路情報が増えるとマップの作成に時間がかかるデメリットもある。
外部からの経路はBGPを使って配布

 具体的な例で,IPパケットが転送されるしくみを追っていこう。

 図B-1は,日本全体をカバーするプロバイダAのネットワーク構成例である。コア・ルーターを中心として,バックボーンを構成している。

f:id:nonbei:20180531194649j:plain

おもに,ASの外部への経路情報はBGPで管理し,AS内のトポロジ管理にはOSPFを使う。なお,一般にはコア・ルーターやエリア境界ルーターは障害に備えて2台使うが,説明しやすくするために省略した。 [画像のクリックで拡大表示]

 プロバイダAの管理する範囲は,AS100である。これは外部のASとBGPで経路情報を交換する単位となる。ASの内部の経路情報は,OSPFで管理する。その場合,いくつかのエリアに分割するのが一般的である。図では,バックボーン・エリア,西日本エリア,東日本エリアに分けている。

 このネットワーク構成で,どのように経路情報が配布,管理されるのかを見る。

 まずBGPによる経路情報の管理から。プロバイダAは,プロバイダBからBGPで経路情報を受け取る。多くの場合,各プロバイダは,異なるAS同士で経路情報をやりとりするための「ゲートウエイ・ルーター」あるいは「ボーダー・ルーター」と呼ぶ専用のルーターNOCに置いている。

 まずプロバイダAのゲートウエイ・ルーターは,プロバイダBから受け取った経路情報をバックボーン・エリアのほかのルーターに配布する。このときに使われるのもBGPである。一般的には,バックボーン・エリアにあるすべてのルーターはBGPで経路情報を交換する。

 一方,OSPFは,AS内の全ルーターがサポートする。エリア内の各ルーターは,そのエリアの詳細マップを共有する。つまり,エリア内の経路はエリア内のすべてのルーターが知っていることになる。しかし,ほかのエリアについては,エリア境界ルーターに処理を任せる。

 また,あらかじめエリア境界ルーターは,そのエリアのデフォルト・ゲートウエイであることをOSPFを使ってエリア内のルーターに広告しておく。すると,IPパケットのあて先がASの外の場合,エリア内のルーターはルーティング・テーブル(経路表)に対応する情報を持たないので,エリア境界ルーターにIPパケットを送るようになる。

BGPとOSPFの連係で転送先を決める
 では,経路情報を使ってIPパケットが転送される様子を追ってみよう(図B-2)。

f:id:nonbei:20180531194919j:plain

図B-2●BGPとOSPFを使ってIPパケットをルーティングする様子
図B-1と同じネットワークで,IPパケットがどのようにルーティングされるのかを示した。AS外のネットワークがあて先の場合,OSPFとBGPがうまく組み合わされることで,IPパケットが適切にルーティングされる。 [画像のクリックで拡大表示]

 まず,図B-2の(a)のように,西日本にいるユーザーのIPパケットのあて先が,ほかのプロバイダBにあるネットワーク(ここではX)の場合を見ていく。

 まず,西日本エリア内のルーターは,デフォルト・ゲートウエイであるエリア境界ルーターにIPパケットを中継する(青の(1))。

 エリア境界ルーターは,BGPの経路表を見て,あて先が(X)のIPパケットはプロバイダBのゲートウエイ・ルーター(Y)に送ればよいことを知る。次に,OSPFの経路表を参照し,(Y)へIPパケットを送るためには,まず隣のルーター(a)に送ればよいことを理解する(青の(2))。

 同じように中継を繰り返して,IPパケットはプロバイダAのゲートウエイ・ルーターまで届く。後は対向するプロバイダBのゲートウエイ・ルーターに送るだけだ(青の(3))。

 今度は,図B-2の(b)のように,あて先がプロバイダAの内部にある場合のIPパケットの中継を見ていこう。

 まず西日本の収容ルーターがユーザーからのIPパケットを受け入れる。収容ルーターを含む,西日本エリアのルーターは,最終目的地がある東日本エリアの詳細マップは持たない。しかし,そのエリアが西日本エリアの外にあり,そこにIPパケットを送るにはエリア境界ルーターに送ればよいということは知っている。そこで,西日本エリアのルーターは,IPパケットをエリア境界ルーターまで運ぶ(黄の(1))。

 IPパケットはバックボーン・エリアのルーターを中継され(黄の(2)),東日本のエリア境界ルーターまで届けられる。東日本エリアのルーターは,同じエリアにある最終目的地までの具体的な経路を知っているので,IPパケットは無事届く(黄の(3))。


ソ-ス:IPパケットはプロバイダ内をどのように転送されるのか | 日経 xTECH(クロステック)