内部ボーダーゲートウェイプロトコル(iBGP)は、2台以上のルーター間で自律システム(AS)内のルーティング情報を交換するためにインターネット上で使用されるルーティングプロトコルです。そのため、「Internal(内部)」という語が使われています。
iBGPはボーダーゲートウェイプロトコル(BGP)を基盤としており、これは自律システム間でルーティング情報を交換します。iBGPは単一のAS内でルートを伝播するために使用される一方、BGPは異なるAS間でルートを伝播するために使用されます。iBGPにより、AS内のすべてのルーターがネットワークトポロジーについて同じ認識を持ち、互いに効率的に通信できるようになります。
一方、外部ボーダーゲートウェイプロトコル(eBGP)は、2つの自律システム(AS)間で情報を交換するために使用されるルーティングプロトコルです。これもボーダーゲートウェイプロトコル(BGP)の拡張であり、異なるインターネットサービスプロバイダーに属するネットワークなど、独立したネットワークを接続するために使用されます。そのため、「External(外部)」という語が使われています。eBGPは自律システム間でネットワークプレフィックスを交換し、それらが相互に通信できるようにする役割を担います。
iBGPとeBGPの比較
iBGPとeBGPはいずれも、あらゆるネットワークインフラに不可欠な要素であり、自律システム間の信頼性の高い通信を確保するうえで重要な役割を果たします。ただし、両者にはいくつかの重要な違いがあります。
iBGPとeBGPの主な違いは、その用途にあります。iBGPが自律システム内でルートを伝播するために使用されるのに対し、eBGPは異なる自律システム間でルートを伝播するために使用されます。さらに、iBGPではルートの再配布が許可されませんが、eBGPでは許可されます。
以下の表に、iBGPとeBGPの違いをまとめます。
| 説明 | iBGP | eGBP |
|---|---|---|
| 正式名称 | 内部ボーダーゲートウェイプロトコル | 外部ボーダーゲートウェイプロトコル |
| 自律システム(AS)の種類 | 同じAS内の2台のBGPルーター間で動作 | 異なるASの2台のBGPルーター間で動作 |
| デフォルトの管理距離 | 200 | 20 |
| ルート広告 | ピアから受信したルートを別のピアに広告することはできないが、eBGPピアには広告できる | ピアから受信したルートを、eBGPピアとiBGPピアの両方にブロードキャストできる |
| フルメッシュトポロジー | 必要 | 不要 |
| 用途 | 同一組織内 | 独立したネットワーク(異なる組織やインターネットサービスプロバイダーなど) |
| ループ防止 | BGPスプリットホライズンを使用 | ループ防止にパスを使用 |
| デフォルトのピア設定 | TTL = 255 | TTL = 1 |
| ローカルプリファレンス属性 | 送信される | 送信されない |
| ピアへのルート広告時の動作 | ネクストホップは変更されない | ネクストホップがローカルルーターに変更される |
iBGPの目的とは?
iBGPの目的は、AS内の複数のルーター間の通信を可能にすることです。iBGPの主な機能には、ルーティング情報の交換と正確性の確保、冗長性とフェイルオーバー機能の提供、ルーティングループの防止などがあります。
iBGPの主な機能とその目的は次のとおりです。
- 同一AS内の異なるルーター間でルーティング情報を交換する。これにより、単一ネットワーク内でデータを効率的に転送できます。
- 他のBGPルーターに利用可能なルート情報を提供する。これにより、トラフィックが正確かつ効率的にルーティングされます。
- AS内のすべてのルーターが一貫したルーティング情報を持てるようにすることで、パケット転送時にどの経路を選択するかを判断できるようにする。
- 冗長性とフェイルオーバー機能を実現することで、特定のルートに対して複数の経路を使用できるようにする。
- ルーティングループの防止に役立てることで、いかなる時点でも特定のルートに対して1つの経路だけが使用されるようにする。
iBGPの仕組み
iBGPは、AS内の2台以上のルーター間でルーティング情報を交換することで動作します。各ルーターは、認識しているネットワークと、そのルーターからの到達方法に関する情報を含む自身のルーティングテーブルを近隣ルーターに送信します。ルーターは近隣ルーターからこの情報を受信すると、それに応じて自身のルーティングテーブルを更新し、他の近隣ルーターにも新しい情報を伝播して、それぞれのテーブルを更新できるようにします。このプロセスは、AS内のすべてのルーターが同じルーティング情報で更新されるまで続きます。
iBGPの設定
iBGPを設定するには、まず各ルーターでBGPプロセスを設定し、それぞれに一意のAS番号を割り当てます。次に、通信に使用するIPアドレスを指定して、ルーター間の近隣関係を確立します。最後に、ルートフィルタリングや認証などの追加パラメーターを設定できます。これらの手順が完了すると、ルーターはルーティング情報の交換を開始します。
iBGP設定の検証
iBGPを設定したら、正しく動作していることを検証することが重要です。これは、「show ip bgp summary」や「show ip bgp neighbors」などのコマンドを使って実行できます。これらのコマンドでは、近隣関係に関する情報や、ルーター間で交換されているルートが表示されます。また、tracerouteやpingなどのツールを使って、ネットワーク内の2地点間の接続性をテストすることもできます。
iBGPの同期
iBGPの同期は、BGPトランジットパス上のすべてのデバイスがiBGPを実行しているわけではない旧来のネットワーク設計において、トラフィックのブラックホールを防ぐためのルールです。これは、iBGPセッションを通じて学習したルートが、内部ゲートウェイプロトコル(IGP)によって検証されるまで広告されないようにすることで実現します。
これを実現する最も一般的な方法は、BGPとIGPのルート同期を有効にすることです。この場合、BGPルーターはiBGPルートを受信すると、同じルートがIGPのルーティングテーブルに存在するかどうかを確認します。存在しない場合、そのルートがIGPのルーティングテーブルに追加されるまで、ルーターはそのルートを広告しません。
別の方法は、iBGPルーターで「no synchronization」コマンドを使用することです。これにより、Enhanced Interior Gateway Routing Protocol(EIGRP)やOpen Shortest Path First(OSPF)などの内部ルーティングプロトコルとiBGPを同期しないようルーターに指示します。
iBGPの同期を実現するもう1つの方法は、トランジットAS内のすべてのルーターでiBGPを実行するよう設定することです。これにより、すべてのルーターが同じ情報にアクセスでき、ルートを広告する前に検証できるようになります。
まとめ:ネットワークでiBGPを使用する
内部ボーダーゲートウェイプロトコルは、AS内の複数のルーター間でルーティング情報を交換するための強力なツールです。ループのないルーター間通信を実現し、すべてのルーターが互いの存在を把握して、ループを発生させずに通信できるようにします。
iBGPの同期を使用すると、AS内のすべてのルーターを同じネットワークとサブネットの集合で更新できるため、ネットワーク全体で効率的なデータ伝送を実現できます。