前回も軽く触れましたが、ルーティングにはネットワーク内のルーディングであるIGP(Interior Gateway Protocol)と「ネットワーク間」のためのEGP(Exterior Gateway Protocol)があります。
一般的に利用されるIGPにはいくつかの種類がありますが、EGPとして利用されているプロトコルのほとんどはBGP(Border Gateway Protocol)です。今回は、組織間接続手法としてBGPを簡単に説明します。
BGP概要
組織内での利用になるIGPと異なり、EGPであるBGPは組織間を接続するのが一般的です。組織内では「最も近い経路が良い」という選択肢が多くなりますが、組織間になると「お金」が絡んだり「政治」が絡んだりします。BGPは、このような「ポリシー」を考慮した設定が可能なプロトコルです。
BGPはパスベクター(Path Vector(型プロトコルと呼ばれています。ネットワークを単位としたパスの列を指定して経路を計算します。ここでの「ネットワーク」はAS(Autonomous System:自律システム)と呼ばれるものです。たとえばISPなどが代表的なASです。
ASには世界で一意(他の人と被らない)の番号が割り振られます。割り振られた番号はAS番号と呼ばれます。 AS番号を割り振るのはNIC(Network Information Center)と呼ばれる組織で、地域毎に存在しています。たとえば、日本のNICとしてはJPNICがあります。 JPNICが管理しているAS番号と割当組織は「JPNIC : AS番号リスト」をご覧ください。
こんな感じです
以下、例を出しながら説明を行います。なお、以下に登場するIPアドレスやAS番号はいい加減な値なのでご注意ください。
BGPは通過するASの列で経路を表現します。たとえば、17.0.0.0/9というネットワークがあったとき、AS300が17.0.0.0/9のトラフィックを受信するには、AS200を通過してAS100へという感じになります(図1:番号は架空のものです)。図1では、各ASを通過する毎にAS番号がネットワーク経路の先頭に追加されています。このように、宛先ネットワークに対して通過するASの列ができあがっていきます。なお、図1のASは多数のノードが内部に存在するネットワークだと思ってください。たとえば、AS100、AS200、AS300、AS400はそれぞれ別々のプロバイダだと思ってください。
以前の例では、単純に数珠つなぎでしたが、普通はAS同士はもっと複雑なつながりをしています。以前の例を見ると、一見全てのAS pathが転送されているように見えますが、実際にはそうではありません。実際は、各ASはネットワークに対するベストパスを選択して、次のASへと知らせています。たとえば、以下の例では、AS800がAS900に伝える17.0.0.0/9へのAS pathは1つだけです。
ただし、注意
AS pathは、ベストパスを決定する際によも良く使われる指標です。しかし、AS_PATH以外の要素と合わせて「AS path的には最短ではないパス」がベストパスとして選ばれることもあるのでご注意ください。
次は実例で考えてみましょう
ASやBGPの話だけを読んでも、イマイチ良くわからないと思います。次回は、Googleの組織間接続の形態を推測するという実例を挙げながらASに関して解説しようと思います。