BGP (Border Gateway Protocol) is a path-vector routing protocol that enables autonomous systems across the internet to exchange reachability information and select routes based on policy rather than shortest-path metrics, forming the foundation of internet routing connectivity. The protocol operates over TCP port 179 through configured peer sessions where routers exchange UPDATE messages containing prefixes and path attributes, applying import and export policies to determine the best path for each prefix. Poor BGP management and misconfigurations can lead to route leaks, hijacks, and traffic misdirection, requiring operators to implement prefix filters, route origin validation through RPKI, and comprehensive monitoring of session state and prefix changes to maintain network stability and prevent outages.
BGPの仕組み
BGPルーターは、設定されたネイバーとセッションを確立し、到達可能なプレフィックスを交換します。各ルーターは、属性やローカルポリシーに基づいて、プレフィックスごとに最適な経路を選択します。
- TCPセッションの確立:設定済みの2つのピアが、ポート179でTCP接続を開きます。これらは異なる自律システム(外部BGP)にある場合もあれば、同じ自律システム(内部BGP)にある場合もあります。
- OPENメッセージの交換:各ピアは、自身の自律システム番号、ホールドタイム、および機能情報を送信します。ピア間でパラメータの互換性が確認され、KEEPALIVEメッセージの交換を経てセッションが確立されます。
- ルートの広告:ピアは、ASパスやネクストホップなどのパス属性を伴うプレフィックスを告知する、あるいは到達不能になったプレフィックスを撤回するUPDATEメッセージを送信します。
- 最適な経路の選択:各ルーターはインポートポリシーを適用した後、候補となる経路に対して決定プロセスを実行します。ローカルプリファレンス、ASパス長、オリジンなどの属性が順に比較されます。
- インストールと再アドバタイズ:選択された経路はルーティングテーブルに登録され、エクスポートポリシーに従って他のピアにアドバタイズされる場合があります。定期的なKEEPALIVEメッセージによってセッションが維持されます。
BGPは、テーブル全体を定期的に再送信するのではなく、初期交換後に増分更新を送信します。セッションが失敗した場合、またはホールドタイマーが切れた場合、ルーターはそのピアから学習した経路を撤回します。
BGPの一般的な問題
アクティブとアイドルを繰り返し切り替えるネイバーは、通常、ポート179でのTCP接続の障害を示しています。一般的な原因としては、ファイアウォールやACLによるポートのブロック、ネイバーアドレスの誤り、またはピア側の送信元インターフェースの不一致などが挙げられます。
インバウンドおよびアウトバウンドのプレフィックスフィルタがない場合、マルチホームネットワークは、あるプロバイダの経路を別のプロバイダに再アドバタイズしてしまい、処理能力を超えるトランジットトラフィックを引き寄せてしまう可能性があります。その兆候として、ポリシー変更後にリンクが飽和状態になったり、レイテンシが急激に変化したりすることが挙げられます。
ホールドタイマーの期限切れ通知により切断されるセッションは、多くの場合、パケットロス、CPUリソース不足、または大きなUPDATEメッセージの送信を妨げるMTUの問題を反映しています。フラップが発生するたびにプレフィックスが撤回され、再アナウンスされるため、下流のピアにチャーンが生じます。
ルートがBGPテーブルに表示されていても、そのネクストホップが解決できない場合、そのルートが最良のパスになることはありません。これは、ネクストホップが内部ルーティングプロトコルで伝送されていない外部ピアアドレスである場合、内部BGPで頻繁に発生します。
ローカルプリファレンスなどの属性がASパス長よりも先に評価されるため、トラフィックはより長い、あるいはコストの高い経路を通る可能性があります。エンジニアは、最短のASパスが優先されると想定しがちで、決定順序を誤って解釈してしまうことがよくあります。