BGPとは
Border Gateway Protocolの略。RFC4271で定義された拡張性、柔軟性、安定性を提供するルーティングプロトコルです。 BGPは主にインターネット上のネットワーク交換で使用され、80万経路を超えるルート情報を保持しています。 BGPには、次のような特徴があります。
信頼性
BGPルータ間の経路情報交換の接続には、TCPが使用され、確認応答、再送、シーケンス処理が実行されます。 また、接続認証もできます。交換されるルーティング情報にはAS-PATH(ルートが通過した自律システムをリストアップするBGP属性)が付与され、 自身のASが含まれるルートを受信拒否することで、ルーティングループを防止します。
安定性
インターフェースやルートのアップ/ダウンイベントがネットワークに与える影響を抑制するため、 ルートのフラッピングがないか追跡します。 フラッピングにより不安定なルートはペナルティを受け、抑制することができます。
拡張性
IGPと違い、BGPでは、10万以上のルートを保持することができます。 インターネットで交換されるルート数は、年々増加傾向にあり、2020年時点で、80万ルートを超えるルート数が存在します。 インターネット上の現在のルート数は、CIDRレポート を見ることで確認できます。
柔軟性
BGPで交換されるルートにはパス属性(アトリビュート)と呼ばれるパラメータが付属されており、この属性を元にルーティングポリシーを定義できます。 異なる組織間では、異なるルーティングポリシーを必要とすることが多く、IGPでは実現できないポリシー制御が可能です。
AS番号
Autonomous Systemの略。自律システムとも呼ばれます。ASは単一管理ドメイン(組織)下のネットワークの集まりです。インターネット上で経路交換をする組織に対して、ユニークな番号が割り当てられ、インターネットレジストリであるIANA(Internet Assigned Numbers Authority)により、管理されています。AS内のルーティングプロトコルは、OSPFなどのIGPが実行され、AS間のルーティングプロトコルでBGPが使用されます。

AS番号は16ビットで表され、範囲は1〜65535の番号です。IPアドレスと同様にパブリックおよびプライベートAS番号の範囲があります。
ASのイメージ
ASの概念がざっくりとイメージできるよう、以下の例えを考えます。
大阪(通天閣)から東京(スカイツリー)に出かけることとします。図の通り、移動手段は、新幹線と飛行機とし、都道府県を一つのAS(自律システム)として考えます。新幹線、飛行機を選ぶ基準として、通過するASが少ない(つまり、通過する都道府県数が少ない)経路をベストな経路として選択するものとします。

この条件の場合、「通天閣」はスカイツリーへのベストパスを飛行機の経路とし、ネクストホップを「関西空港」と認識します。BGPはこのように他AS経路への最適な出口ルータをネクストホップとして学習します。
では、実際に、通天閣から関西空港までは、どのようにして移動するのでしょうか。これは、大阪の中で認識している経路(IGP)で決定します。実際は、通天閣最寄りの動物園前駅から南海本線を経由して、関西空港に到達することができます。もし、南海本線が不通の場合は、JRを使用して迂回することができます。

東京の中の経路について考えます。例えば、羽田空港から半蔵門線を経由してスカイツリーに到達することができます。もし、半蔵門線が不通の場合は、例えば、京急本線を使用して迂回することができます。大阪から見て、このような東京の中の経路情報は、全く意識しません。通天閣(大阪)はスカイツリーに行くには、関西空港をめざすだけです。

次に通天閣から名古屋のテレビ塔に行く経路を考えます。この場合は、新幹線がベストなパスとなり、新大阪がネクストホップとなります。

ここで、大阪〜名古屋間が不通になったとします。 この場合は、飛行機を使用し、大阪→東京→名古屋 を迂回経路として選定したいと思います。
この場合は、名古屋のテレビ塔への経路を名古屋→東京→羽田空港→関西空港という順番に広報し、図のような東京経由で、到達する必要があります。

このような接続を東京をトランジットするといいます。トランジットする場合は、東京の中(今回は、東京〜羽田空港間)でも経路交換が必要なため、BGPが必要です。
ASが異なる(例えば、大阪〜東京間など)ルータ間のBGP接続を外部BGP、同一AS内(例えば、東京〜羽田空港間など)ルータ間のBGP接続を内部BGP と呼びます。

パスベクター型プロトコル
では、上記のイメージ図を実際のルータに置き換えます。

R2の2.2.2.2/32をR1がどう学習するのかを考えます。 R1から見ると、2.2.2.2/32の経路は、AS2、およびAS3から学習します。
R1#show ip bgp BGP table version is 1, local router ID is 3.3.3.3 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter, x best-external, a additional-path, c RIB-compressed, Origin codes: i - IGP, e - EGP, ? - incomplete RPKI validation codes: V valid, I invalid, N Not found Network Next Hop Metric LocPrf Weight Path * i 2.2.2.2/32 192.168.15.5 0 100 0 3 2 i *>i 192.168.13.3 0 100 0 2 i
R1上では、BGP経路(2.2.2.2/32)には、通過するパス情報が格納されています。 このように、通過するASの数を計算して、経路を決定する性質から、BGPはパスベクター型プロトコルと呼ばれます。
その他 BGP関連記事は >> ルーティングプロトコル(BGP)まとめ << より参照できます。
最後までお読み頂きありがとうございました。
コメント