インターネットでは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の経路情報の交換にはTCP(Transmission Control Protocol)を使う。これはRIP(Routing Information Protocol)やOSPF(Open Shortest Path First)にはない特徴だ。TCPを使うのは、経路情報を確実に伝えるため、そして回線が切れたときに即座に把握するためだ。BGPルーター同士が経路情報をやりとりするために確立するTCPコネクションを「ピア」と呼ぶ。
TCPセッションを張った後はメッセージを使って情報をやりとりする。例えばOPENメッセージはAS番号などの情報を交換する。