略語BGPはBorderGatewayProtocolの略です。 これは、インターネットのさまざまな自律システム(AS)を相互に接続し、データをASの境界を越えてルーティングできる、いわゆるパスベクトルルーティングプロトコルです。
報告によると、BGPソフトウェアの更新が失敗し、Facebookが停止しました。
ボーダーゲートウェイプロトコルは、AS全体で使用できます。 AS内では、Open Shortest Path First(OSPF)やIntermediate System to Intermediate System(IS-IS)などのいわゆるInterior Gateway Protocol(IGP)で動作することがよくあります。
ボーダーゲートウェイプロトコル(BGP)は、データが通過する自律システム間の論理接続パスを確立するネットワーク標準です。 BGPの主な機能はRFC1163で説明されています。現在使用されているバージョンはBGPv4で、RFC 4271、4760、4364などで定義されています。
ボーダーゲートウェイプロトコルは、IPv4またはIPv6のルーティングに限定されず、他のプロトコルまたはMPLSラベルにも使用できます。 BGPは、拡張性と信頼性を高めるように設計されています。 起動して実行するのは難しいルーティングメカニズムであり、接続パスが収束するまでに時間がかかります。
ボーダーゲートウェイプロトコルはどのように機能しますか?
ボーダーゲートウェイプロトコルは、パスベクトルベースで機能します。 ルーティング情報を通信するために、ルーターは相互に安全なTCP接続を確立します。 メッセージと情報は、これらのBGPセッションを介して送受信されます。 これに使用されるポートはTCPポート179です。可能なメッセージタイプは次のとおりです。
- OPEN:セッション内で情報の交換を開始します
- キープアライブ:OPENメッセージを確認し、セッションを維持します。 セッションは、接続されたルーターからの通常のKEEPALIVEメッセージで存続します。
- 更新:パスの変更について通知する
- 通知:たとえば、KEEPALIVEメッセージが受信されなくなったために、接続を終了してパスを削除する場合
UPDATEメッセージは、ボーダーゲートウェイプロトコル内で中心的な役割を果たします。 ルーターはこれらの通知を使用して、新しいルートを検出したり、既存のルートが消えたときに通知を受けたりします。 ルーターは、受信したデータに基づいて自律システムのネットワークを示すグラフを作成する場合があります。 グラフを生成する手順はループを無視し、更新に含まれたパスの特性に注意します。 ルートの可能な属性は次のとおりです。
- AS_PATH:どのASターゲットに到達できるかに関する情報。 自律システムはAS番号で表されます
- ネクストホップ:プレフィックスに向かう途中の次の中間ノードのIPアドレス
- IGPメトリック:独自のネットワークを介したコストに関する情報
- Multi-Exit Discriminator(MED):並列接続に優先順位を付けるため
- ルーティングタグまたはコミュニティ:フィルタリングの目的でプレフィックスをマークできる32ビットの長さの値
- ローカルプリファレンス:AS内のパスを選択するため
- オリジン:プレフィックスのソース。 可能な値は、内部、外部、または不完全です
EBGPとIBGPの違い
異なる自律システムだけがボーダーゲートウェイプロトコルに接続できるわけではありません。 ルーティングプロトコルは、AS内のルーターを相互接続するためにも使用できます。 用途に応じて、外部または内部のBGP(EBGPまたはIBGP)について話します。
データは、IBGPに接続されたASのルーターを介して自律システムを介して送信されます。 この目的のために、ルーターはEBGPを介して学習したルートを独自のAS内に伝播します。 これにより、プレフィックスのBGP固有の属性を送信できます。 ボーダーゲートウェイプロトコルを使用して通信するすべてのルーター間でBGPセッションを確立する必要があります。
通常、ルーター間の実際の接続には、OSPF(Open Shortest Path First)やIS-ISなどのInterior Gateway Protocol(IGP)が必要です。 ルートリフレクターは、大規模ネットワークでの完全なメッシュに起因するスケーリングの問題を回避するために使用される方法です。 各BGPルーターには、ルートリフレクターへの接続が1つだけ必要です。これは、EBGPを介して受信したすべてのルートを追跡し、IBGPを介してAS内のすべてのルーターに配布します。