インターネットは,自律システム(AS: Autonomous System)と呼ばれるルーター・ネットワークの集合体として動作している。ASは,技術面および管理面の観点で,一定の制御下にあるシステムであり,大手プロバイダのネットワークはたいてい一つのASでもある。BGP4は,このAS内およびAS間で実行される代表的なIPv4向けのルーティング・プロトコル。そしてBGP4+は,BPG4を拡張してIPv6で使えるようにしたものである。

 ASは多数のルーターで構成されるので,システム内にいくつもの経路がある。それぞれのASが自分の持っている経路情報を相互に交換することで,インターネット全体で適切な経路を選ぶことができるようになる。

 一般にルーティング・プロトコルは,AS間でやり取りされるものと,AS内でやり取りするものに分かれる。前者はEGP(external gateway protocol)と呼ばれ,その代表がBGP4である。一方,後者のタイプはIGP(internal gateway protocol)と呼ばれる。RIP,RIPng,OSPFなどはIGPである。BGP4は大規模なネットワークを想定して設計されているため,経路を集約したり,さまざまな優先度を設定できるようになっている。

 BGP4パケットはTCPポート179で通信する。BGP4が動いているルーターを「BGPスピーカ」と呼ぶ。BGPスピーカは不特定多数に経路を広告するわけではない。2台のBGPスピーカがコネクション(ピア)を確立した上で,2者間で経路を交換する。

 BGP4のコネクションは2種類ある。一つは異なるASのBGPスピーカ間で確立するコネクションで,もう一つは同じAS内にあるBGPスピーカ同士でコネクションである。前者をEBGP,後者をIBGPと呼ぶ。EBGPとIBGPとでは,交換する情報が異なる.

 BGP4はIPv4に依存した作りになっている。BGPでは経路を交換する時にUPDATEメッセージを用いる。このメッセージの中に,広告する経路と削除して欲しい経路を格納するが,そのフィールドが32ビットになっている。また,広告する経路のNext Hopを指定するフィールドも32ビットしかない。こうしたことから,BGP4はIPv6をはじめとするIPv4以外のプロトコルに関する経路制御には使えなかった。

 BGP4+は,BGP4をマルチプロトコルに対応させるために拡張したプロトコルである。UPDATEメッセージが扱う属性を新たに追加し,さまざまなプロトコルを扱えるようにした。新たに定義された属性は,マルチプロトコルネットワーク到達性情報 (MP_REACH_NLRI)と,マルチプロトコルネットワーク非到達性情報 (MP_UNREACH_NLRI)である。

 MP_REACH_NLRI属性の内容は,アドレスファミリ,Next Hop,経路情報など。一方のMP_UNREACH_NLRI属性は,アドレスファミリと無効な経路情報などである。BGPスピーカは,MP_REACH_NLRI属性を受け取ると経路選択の一つの候補として追加し,MP_UNREACH_NLRI属性を受け取ると経路を削除し,他のBGPスピーカが同じ経路を広告(経路をほかのASに伝えること)していれば,そちらを選択するようにする。

 BGP4で経路を広告するときは,広告したい経路に自分のAS番号を付けて広告する。もし,あるBGPスピーカから受け取った経路を,他のEBGPスピーカに広告する場合は,経路に付いているAS番号リストに自分のAS番号を付け加えてから広告する。もしこのとき,リストに自分のAS番号があった場合は,その経路がループしていると判断して広告を取りやめる。

 同一の経路を異なるBGPスピーカから受け取った場合,BGP4では以下のようなルールにしたがって経路を絞り込んでいく。経路が1つになった時点で以下の選択ルールは終了する。

1. 優先度が最も高い経路を選択する。優先度は,自分で計算したり,他のIBGPスピーカから広告されることもある。
2. 広告されたそれぞれの経路にあるAS番号リストを比較し,通過したASの数の少ない方を選択する(AS数が少なくても,実際のホップ数は多いこともある)。
3. 複数のピアのある隣接ASが存在し,そのASの経路に優先度が付いている場合,優先度の高い経路を選択する。
4. 広告された経路情報のNext Hopを見て,最もコストの 小さい経路を選択する。
5. 経路を広告してきたEBGPスピーカの中で,BGP識別子の最も小さなBGPスピーカからの経路を選択する。広告された経路がすべてIBGPスピーカの場合は,IBGPスピーカの中でBGP識別子の最も小さなBGPスピーカからの経路を選択する。

(遠藤正仁▼横河電機 IT事業部 ITプロダクト事業センター)



BGP4の仕様
ftp://ftp.isi.edu/in-notes/rfc1771.txt
BGP4+の仕様
ftp://ftp.isi.edu/in-notes/rfc2858.txt