BGPはTCPでどのように機能しますか?


13

ルーティングプロトコルを使用してレイヤー3接続を実現していることを知っている限り、BGPがL4であるTCPを介して機能するという事実に混乱しています。事前のL3接続なしでL4 / TCPを確立するにはどうすればよいですか?

回答:


17

TCP / IPソケットは、特にアドレス指定された2つのエンドポイント間で、ネットワークを介したエンドツーエンド接続を確立します。BGPはTCP / IPを使用してルーター(ルーティング情報を交換するデバイス)間の通信を行います。交換された情報はBGPピアによって使用されます。送信します。

インターネットの端では、物事は簡単です。「すべてがこのように」インターネットプロバイダーに向かって。さらに中央には、ルーターに複数の選択肢がある場合があります。そのため、TCP / IPを使用して、ルーティングネイバー間でBGPトラフィックを移動します。次に、BGP情報は、パケットの送信先を取得する方法が複数ある場合に、どのパスを優先するかをルーターに伝えます。

エンドポイント(例えばWebブラウザ)とルータがされている話す TCP / IPを。しかし、ルータはされている使用して、彼らはルートに必要な他のTCP / IPパケットをどうするかについての話にTCP / IP(TCP / IPのパケットから構成されるBGP通信を)。


「しかし、ルーターはTCP / IPを使用して、ルーティングする必要のある他のTCP / IPパケットの処理について話し合っています」「しかし、ルーターはBGPを使用して、ルーティングする必要のある他のTCP / IPパケットの処理について話し合っています。」
オリビエデュラック14

1
...そのように書くことも考えました。私の最後の文では、さまざまなデバイスがTCP / IPでさまざまなことをどのように行っているかを強調しようとしていました。文言を微調整します。
クレイグコンスタンティン14

13

ルーティングプロトコルは、L3接続を「達成」しません。これらは、ルーターのルーティング(転送)テーブルに他のルーターから学習した情報を取り込みます。

BGPは、TCP / IP上で実行される「アプリケーション」です。つまり、BGPルーターはTCP / IPを使用して他のBGPルーターと通信し、ルーティング情報を交換します。

BGPが機能するためには、ルータ間のL3接続がすでに必要です。


鶏と卵の問題。「BGPが機能するためには、ルータ間のL3接続がすでに必要です。」BGPは事実上のインターネットルーティングプロトコルであるため、InteretでのL3接続の実現方法
ブレンド

6
鶏と卵の問題ではありません。前述したように、ルーティングプロトコルはL3接続を作成しません。eBGPスピーカーは(ほとんど)常に直接接続されています。iBGPスピーカーは、基盤となるネットワークに依存して接続を提供します。つまり、BGPを実行する前に、最初に接続が必要です。
ロントランク14

私はそれがどのように始まり、今日のアーキテクチャの背後にある理由を理解しようとしています。だから、最初はIGPを実行しているプラ​​イベートネットを持つ人が何人かいて、私たちのネットワークを接続しようと言いましたか?なぜIP / TCPで行うのか、NovellやAppletalkのような古いプロトコルについてはどうでしょう
ブレンド

これらは異なる(しかし良い)質問です。回答には、コメントセクションよりも多くのスペースが必要です。必要に応じてチャットに移動することができます
ロントランク14

6

OSIネットワークモデルとその階層化は、ホスト間のエンドツーエンド通信を理解するのに役立ちますが、実際にはネットワークコントロールプレーンの機能を説明することを意図したものではありません。完全なBGP接続の確立に固有のブートストラップの問題がありますが、このブートストラップの実行方法は十分に理解されており、循環依存関係はありません。

BGPの観点では、隣接関係が形成され、情報が交換される方法は、セッションのタイプによって異なります。

最も単純なのはeBGPです。通常、eBGPは、直接接続された2つのルーター間のTCPセッションで実行されます。この場合、両方のピアが同じサブネット上にインターフェースを持っているため、各ピアは互いに通信する方法を知っているので、外部ルーティングプロトコルを使用して隣接関係を形成する必要はありません。

iBGPでは、物事は少し複雑です。最も単純な構成では、自律システム内のすべてのルーターがフルメッシュの一部として構成され、ネットワーク内の他のすべてのルーターとのiBGPセッションが行われます。自律システム内では、OSPFやISISなどの内部ゲートウェイプロトコルが、内部ルーティングトポロジを構築します。IGPがジョブを完了すると、すべてのルーターのルーティングテーブルにすべてのiBGPネイバーへのルートが入力され、循環依存なしでTCPセッションを形成できます。

少し興味深いのは、自律システム内のすべてのルーターが完全なBGPテーブルで実行されるわけではない状況です。iBGPメッシュが完全でない場合、ネットワークの真ん中にあるルーターが、直接隣接するテーブルとは異なるビューを持っているという状況が発生する可能性があります。これにより、次善のルーティングが発生し、場合によっては、TTLが期限切れになるまでデバイス間でトラフィックがバウンスするルーティングループが発生します。


5

リンクには、BGPセッションの確立に使用される静的アドレスと関連するルーティングエントリが構成されています。BGPを使用して、ルーティングテーブルは、他のネットワークを指すエントリで拡張されます。

BGPは直接ピア間でのみ使用されるため、この時点では、反対側を指すルート以外のルートは必要ありません。

たとえば、ピアリングしたい場合、/ 30または/ 31サブネットに同意し、ネットワークの各端に1つのアドレスを割り当て、このサブネットへのネットワークルートをこのリンクに作成してから、もう一方を次のように構成します。 BGPピア。この時点で、ルーター経由で送信されることをアナウンスするすべてのネットワークの追加ルーティングエントリを取得します(これは、ローカルに静的に構成されたネットワークルートの一部です)。


サイモン、またあなたから聞いてよかった。答えはeBGPのみを対象としていますが、iBGPピアに必要なのはIGP(つまりOSPF)到達可能性のみです。iBGPケースに追加できますか?
マイクペニントン

0
                    ---        ---          ---          ---
                   | 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ソケットを開いて、ルーティングデータを交換できるようにする必要があります。


0

以前のL3接続なしで?

「L3コネクティビティ」は、すべてまたはゼロのことではありません。

ルーターをセットアップする管理者は、IPアドレスとサブネットマスクでインターフェイスを構成します。これらの構成に基づいて、ルーターが近隣と通信できるようにする暗黙のルーティングテーブルエントリが作成されます。

次に、このローカルL3接続の上でルーティングプロトコルを実行して、長距離のL3接続を確立できます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.