Border Gateway Protocol

Border Gateway Protocol (BGP) について



Border Gateway Protocol (BGP) は、自律システム (AS) 間で経路情報を交換するために設計されたルーティングプロトコルです。インターネットサービスプロバイダ (ISP) や大規模ネットワークの相互接続において、事実上の標準プロトコルとして広く利用されています。

BGPの概要



BGPは、Exterior Gateway Protocol (EGP) の一種であり、IPネットワークや自律システム間の到達性を示すプレフィックスのルーティングテーブルを維持し、パスベクトル型ルーティングプロトコルとして動作します。技術的なメトリックは使用せず、ネットワークのポリシーに従って最適な経路を選択します。また、クラスレスドメイン間ルーティング (CIDR) をサポートし、経路集約によってルーティングテーブルの肥大化を抑制することが可能です。

BGPを利用するルーター間では、TCPセッションが確立されます。大規模ネットワークでは、BGPセッション数が多くなり、スケーラビリティの問題が生じることがあります。この問題を解決するため、ルートリフレクションという技術が用いられます。AS間の経路が変化した場合、変更された差分情報のみを交換するため、効率的なルーティングが可能です。

BGPは、NSFNETインターネットバックボーンの廃止後、複数のバックボーンネットワークを接続する分散ルーティングを実現するために、EGPに代わるルーティングプロトコルとして開発されました。これにより、インターネットは真の分散システムへと進化しました。

現在主流のBGPバージョン4は、1994年に提案され、2006年にRFC 4271として更新されました。旧バージョンは廃止されています。BGPは、巨大なプライベートIPネットワークでも利用可能で、OSPFとの連携や、マルチホーミングによるネットワーク冗長性の向上に貢献します。

一般のインターネットユーザーには馴染みが薄いかもしれませんが、ISPは他のISPとのルーティングにBGPを不可欠なツールとして利用しています。これは、電話回線業者が公衆交換電話網共通線信号No.7を利用するのに匹敵する重要性を持っています。

BGPの動作



BGPルータ間のピア関係は、TCPポート179番を通じて手動で設定されます。BGPルータ (BGPスピーカー) は、接続維持のため、定期的にキープアライブメッセージを送信します。ルーティングプロトコルの中でTCPを使用するのはBGPだけです。

自律システム内で動作するBGPは内部BGP (iBGP)、AS間を跨いで動作するBGPは外部BGP (eBGP) と呼ばれます。iBGPトラフィックに関わるルータはトランジットルータ、AS境界でeBGPを使って他のASと情報交換を行うルータはボーダルータ (またはエッジルータ) と呼ばれます。

同一AS内のBGPルータは、原則としてフルメッシュ構成を取る必要があります。これは、全てのルータが他のすべてのルータとピア接続を行うことを意味します。大規模ネットワークでは、この接続数が膨大になるため、ルートリフレクタやコンフェデレーションといった技術で接続数を減らす工夫がなされています。

ルートリフレクタは、AS内で1つ(または冗長化のために2つ)のルータをリフレクタとして指定し、他のルータはそのリフレクタとのみピア接続することで、AS内の接続数を大幅に削減します。

コンフェデレーションは、大規模ネットワークで使用される手法で、複数の小さなASを、大きなASで包み込むように構成します。ルートリフレクタと組み合わせて使用することも可能です。

有限状態機械 (FSM)



BGPピアは、シンプルな有限オートマトン (FSM) を用いて、他のBGPピアとの動作を決定します。FSMには、Idle, Connect, Active, OpenSent, OpenConfirm, Established の6つの状態があります。TCP接続が確立されると、BGPピアはセッション確立・維持に向けて状態を遷移します。

経路選択



BGPは、以下の優先順位で最適な経路を選択します。

1. ネクストホップルータへの明示的なルートが存在する。
2. Weight属性値が高い経路 (シスコ社ルータのみ適用)。
3. ローカル設定属性値が高い経路。
4. 自ルータを起源とするBGP。
5. ASパスが短い経路。
6. オリジン属性値が低い経路 (IGP < EGP < Incomplete)。
7. MED属性値が低い経路。
8. 外部経路が優先。
9. ネクストホップへのIGPメトリック値が最も低い経路。
10. 古い経路を優先。
11. BGP IDが最も低いネクストホップルータを優先。

ポリシーの実装



BGPにおけるポリシーは、上記経路選択の基準に基づき実装されます。具体的な手法としては、以下のようなものが挙げられます。

ローカル設定属性値: 特定ASやピアから受信した経路に固定の属性値を設定し、ルータ内のみに影響を与えます。
ASパスの追加: 他のASで経路が選択されないように、ASパスに自分のAS番号を追加します。
MED属性値: 隣接ASへの複数の接続がある場合、優先したいピアに低いMED値を設定します。
コミュニティ属性値: 経路に対して透過的なコミュニティ属性値を付与し、受信ルータで定義された処理を実行します。これにより、外部からローカル設定属性値を間接的に設定するなど、柔軟なポリシー運用が可能になります。

BGPにおける問題点と緩和策



ルートフラッピング

ルートフラッピングは、リンク障害や設定ミスによって、経路情報が頻繁に変化する現象です。これが発生すると、ルーティングが不安定になり、ネットワーク全体に悪影響を及ぼす可能性があります。ルートフラップダンピングは、この問題を軽減するためのメカニズムで、フラッピングが発生した経路情報を一時的に抑制し、安定性を確保します。ただし、状況によっては、ルートフラップダンピングが事態を悪化させる可能性も指摘されており、今後の研究と議論が求められています。

ルーティングテーブルの増大

インターネットルーティングテーブルの増大は、BGPとインターネットインフラが直面する大きな課題です。テーブルが肥大化すると、ルータのメモリやCPU負荷が増大し、正常な動作を妨げる可能性があります。そのため、CIDRや経路集約技術を駆使し、テーブルサイズを適切に維持する努力が続けられています。2014年には、ルーティングテーブルエントリ数が512Kを超え、一部ルータで処理能力不足が発生した事例もあります。

関連情報



EGP: BGPの前身となったプロトコルです。
RFC: BGPに関する重要な技術仕様がまとめられています。
* BGP実装: OpenBGPD、Quagga、Xorp、GNU Zebra、BIRDなどのソフトウェアが提供されています。


BGPは、インターネットの根幹を支える重要なプロトコルであり、その理解はネットワークエンジニアにとって不可欠です。

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。