回答:
TCP / IPソケットは、特にアドレス指定された2つのエンドポイント間で、ネットワークを介したエンドツーエンド接続を確立します。BGPはTCP / IPを使用してルーター(ルーティング情報を交換するデバイス)間の通信を行います。交換された情報はBGPピアによって使用されます。送信します。
インターネットの端では、物事は簡単です。「すべてがこのように」インターネットプロバイダーに向かって。さらに中央には、ルーターに複数の選択肢がある場合があります。そのため、TCP / IPを使用して、ルーティングネイバー間でBGPトラフィックを移動します。次に、BGP情報は、パケットの送信先を取得する方法が複数ある場合に、どのパスを優先するかをルーターに伝えます。
エンドポイント(例えばWebブラウザ)とルータがされている話す TCP / IPを。しかし、ルータはされている使用して、彼らはルートに必要な他のTCP / IPパケットをどうするかについての話にTCP / IP(TCP / IPのパケットから構成されるBGP通信を)。
ルーティングプロトコルは、L3接続を「達成」しません。これらは、ルーターのルーティング(転送)テーブルに他のルーターから学習した情報を取り込みます。
BGPは、TCP / IP上で実行される「アプリケーション」です。つまり、BGPルーターはTCP / IPを使用して他のBGPルーターと通信し、ルーティング情報を交換します。
BGPが機能するためには、ルータ間のL3接続がすでに必要です。
OSIネットワークモデルとその階層化は、ホスト間のエンドツーエンド通信を理解するのに役立ちますが、実際にはネットワークコントロールプレーンの機能を説明することを意図したものではありません。完全なBGP接続の確立に固有のブートストラップの問題がありますが、このブートストラップの実行方法は十分に理解されており、循環依存関係はありません。
BGPの観点では、隣接関係が形成され、情報が交換される方法は、セッションのタイプによって異なります。
最も単純なのはeBGPです。通常、eBGPは、直接接続された2つのルーター間のTCPセッションで実行されます。この場合、両方のピアが同じサブネット上にインターフェースを持っているため、各ピアは互いに通信する方法を知っているので、外部ルーティングプロトコルを使用して隣接関係を形成する必要はありません。
iBGPでは、物事は少し複雑です。最も単純な構成では、自律システム内のすべてのルーターがフルメッシュの一部として構成され、ネットワーク内の他のすべてのルーターとのiBGPセッションが行われます。自律システム内では、OSPFやISISなどの内部ゲートウェイプロトコルが、内部ルーティングトポロジを構築します。IGPがジョブを完了すると、すべてのルーターのルーティングテーブルにすべてのiBGPネイバーへのルートが入力され、循環依存なしでTCPセッションを形成できます。
少し興味深いのは、自律システム内のすべてのルーターが完全なBGPテーブルで実行されるわけではない状況です。iBGPメッシュが完全でない場合、ネットワークの真ん中にあるルーターが、直接隣接するテーブルとは異なるビューを持っているという状況が発生する可能性があります。これにより、次善のルーティングが発生し、場合によっては、TTLが期限切れになるまでデバイス間でトラフィックがバウンスするルーティングループが発生します。
リンクには、BGPセッションの確立に使用される静的アドレスと関連するルーティングエントリが構成されています。BGPを使用して、ルーティングテーブルは、他のネットワークを指すエントリで拡張されます。
BGPは直接ピア間でのみ使用されるため、この時点では、反対側を指すルート以外のルートは必要ありません。
たとえば、ピアリングしたい場合、/ 30または/ 31サブネットに同意し、ネットワークの各端に1つのアドレスを割り当て、このサブネットへのネットワークルートをこのリンクに作成してから、もう一方を次のように構成します。 BGPピア。この時点で、ルーター経由で送信されることをアナウンスするすべてのネットワークの追加ルーティングエントリを取得します(これは、ローカルに静的に構成されたネットワークルートの一部です)。
--- --- --- ---
| D |------| A |--------| B |--------| C |
--- --- --- ---
AとBが(異なるまたは同じASの)ルーターであり、DとCがホストであるとします。これで、AとBは互いに接続され、通信できるようになりました。しかし、DはCと通信できるようにCの位置をどのように知るのでしょうか。Dと通信したい場合、Cについても同じことが言えます。AとBの間でBGPプロトコルを実行すると、 。簡単に言えば、AはBにDが接続されていることを伝えます。次に、BがこれをCに伝えるか、BがCのデフォルトゲートウェイである場合、いずれかの方法でCはDの位置を知ることができます。
したがって、この場合、AとBがBGPプロトコルを実行している場合、AとBの間でレイヤー3接続情報が渡されます。
そのため、レイヤー3ルーティング情報を交換するには、2つのシステム間で事前のBGP接続が必要です。クエリに答えるための簡単な例を示しました。実際のシナリオでは、BGPピア間でさらに多くのルーティングデータが交換されます。
BGPはTCPプロトコルで実行されます。したがって、それらの間でTCPソケットを開いて、ルーティングデータを交換できるようにする必要があります。