全1632文字
PR
 インターネットは複数のISPのネットワークが相互に接続されて成り立つ、いわばネットワークの集合体だ。今回はIPパケットがインターネットを流れる際に使うルーティングプロトコル「BGP」を解説する。

 インターネットではISP同士が経路情報をやりとりする。利用するルーティングプロトコルが「BGP(Border Gateway Protocol)」である。インターネットはBGPによって支えられているといえる。

 BGPではAS(Autonomous System)という単位で経路情報をやりとりする。ASの中にはたくさんのネットワークが含まれる。OSPFなどとは異なり個々のネットワークのトポロジー情報などは取り扱わず、ASという大きな単位で運用し、取り扱う情報の量を大幅に減らす。これはインターネットのような大規模ネットワークの運用に向いている。

 ASは主にISPの運用単位だが、大企業や大学・学術機関、データセンター事業者、CDN(Content Delivery Network)事業者、巨大コンテンツ事業者などもAS単位でネットワークを運用している。

 ASには2バイトまたは4バイトの一意な「AS番号」が割り振られている。例えばNTTコミュニケーションズのOCNであれば「4713」というAS番号が割り当てられている。

 BGPでは経路が複数ある場合、経由するASが最も少ない経路を最短と見なして選択するのが基本的な動作だ。その仕組みを見ていこう。

 まずBGPに対応したルーター(BGPルーター)同士が経路情報を交換し、「BGPテーブル」というデータベースに登録する。交換時に自身のAS番号を経路情報に付与するのがポイントだ。

 例えばAS番号「5」が送信し、AS番号「3」とAS番号「2」のネットワークを経由して届いた経路情報には「AS2-AS3-AS5」という情報が含まれている。BGPルーターは自身のBGPテーブルの経路情報を基にルーティングテーブルを作成。宛先までに経由するAS数が少ない経路を選択してIPパケットを送信する。

BGPの経路選択
BGPの経路選択
[画像のクリックで拡大表示]

 BGPの経路情報の交換にはTCP(Transmission Control Protocol)を使う。これはRIP(Routing Information Protocol)やOSPF(Open Shortest Path First)にはない特徴だ。TCPを使うのは、経路情報を確実に伝えるため、そして回線が切れたときに即座に把握するためだ。BGPルーター同士が経路情報をやりとりするために確立するTCPコネクションを「ピア」と呼ぶ。

BGPはTCPを使って経路を伝える
BGPはTCPを使って経路を伝える
[画像のクリックで拡大表示]

 TCPセッションを張った後はメッセージを使って情報をやりとりする。例えばOPENメッセージはAS番号などの情報を交換する。