ルーティングテーブルと転送テーブルのネットワーク層の関係


0

距離ベクトルアルゴリズムなどの特定のルーティングアルゴリズムでは、次のルーターへの最短パスが決定されます。

一方、転送テーブルは、最も長いルーターインターフェースへのIPアドレスのプレフィックス一致に基づいて、転送するルーターインターフェースを示します。

各ルーターのルーティングテーブルには距離ベクトルが含まれているため、ネットワーク内の他のすべてのルーターへの最短距離(安定状態)がわかります。

これに基づいて、いくつか質問があります。

1)ルーティングテーブルにはネクストホップルーターまでの最短距離が含まれているため、転送先のルーターインターフェイスを指定する転送テーブルが必要なのはなぜですか?2つのコンセプトを調和させる方法は?または私は何かが欠けていますか

2)ルーティングアルゴリズムは、クライアントからのパケットがサーバーに到達するための最短ルートを決定する必要があります。たとえば、異なるサーバーへのTCP接続が行われるたびに、ルータールーティングテーブルを見て最短ルートが決定されます。それはどのように正確に起こりますか?私は、ルーターがネットワーク内のすべてのルーターの距離ベクトルを保存することを知っています。これは、そのネットワーク内のすべてのルーターへの最短距離です。彼らはその情報をどのように使用してパケットの最短経路を決定するのでしょうか?

私の質問が明確であることを願っています。

回答:


1

「フォワーディングテーブル」と呼ばれるものには、L2スイッチのMAC→ポートマッピングとL3ルーターのFIBの2つがあります。残りの質問に基づいて、後者について実際に質問していると仮定します。(前者を本当に意味する場合は、代わりに@harrymcの答えを参照してください。)

1)ルーティングテーブルにはネクストホップルーターまでの最短距離が含まれているため、転送先のルーターインターフェイスを指定する転送テーブルが必要なのはなぜですか?2つのコンセプトを調和させる方法は?または私は何かが欠けていますか

ルーティングプロトコルは通常、2つのデータベースを持つものとして説明されます。

  • 「RIB」(ルーティング情報ベース)には、ルーティングプロトコルが決定を行うために使用する入力が含まれています。たとえば、すべての候補ルート、距離ベクトル、リンク状態などを保存します。BGPでは、他のBGPピアから受信したすべてのルートアドバタイズメントが含まれます。RIBエントリは、ルートとそのインターフェイスの間でまだ直接関連付けられていない場合があります。

  • 「FIB」(転送情報ベース)は、ルーティングアルゴリズムの決定の結果です。解決されたゲートウェイアドレスとデバイスと共に、アルゴリズムが選択した特定のルートのみがあります。基本的には、Linux / BSDで知っている「ルーティングテーブル」です。

RIBはルーティングプロトコルデーモンによって内部的に保持され、FIBはオペレーティングシステムのルーティングテーブル(またはハードウェアアクセラレーションルーティング/転送チップ)にエクスポートされます。言い換えると、ip routeLinuxで実行したときに表示されるのは、実際にはFIBです。

最適なパスの決定は高速ではないため、分離は最適化として存在します。非常に多くのCPUとメモリを必要とする可能性があります(また、「最短」パスを常に使用するほど単純ではありません)。

ただし、すべてのパケットで最短ルートを計算するのではなく、RIBの内容が実際に変更された場合にのみ実行する必要があります。したがって、ルートは事前に計算され、FIBに配置されます。各パケットの最長一致プレフィックスを設定します。

2)ルーティングアルゴリズムは、クライアントからのパケットがサーバーに到達するための最短ルートを決定する必要があります。たとえば、異なるサーバーへのTCP接続が行われるたびに、ルータールーティングテーブルを見て最短ルートが決定されます。

いいえ。前述のように、ネットワークトポロジに変更があるたびに、「最適な」ルートが事前に計算されます。その後、それらはFIBにロードされるため、個々の接続は高速な「最長プレフィックス一致」ルックアップを行うだけで済みます。

インターネットはパケット交換ネットワークです。これは、TCP接続が確立されたときにルートルックアップが行われるだけでなく、後ですべての単一パケットに対しても行われることを意味します。(そして、はい、これは、既存のTCP接続でさえ、以前とは異なるパスを突然開始できることを意味します。)これは、回線交換ネットワークとは対照的です。

それはどのように正確に起こりますか?私は、ルーターがネットワーク内のすべてのルーターの距離ベクトルを保存することを知っています。これは、そのネットワーク内のすべてのルーターへの最短距離です。彼らはその情報をどのように使用してパケットの最短経路を決定するのでしょうか?

一般に最短経路を決定するメカニズムについては、ダイクストラのアルゴリズムが良い出発点です。これは、OSPFおよび他のいくつかのプロトコルの基礎です。

ただし、ルーティングプロトコルごとに異なる方法で行われます。BGPには独自のルールがあり、OSPFおよびIS-ISには独自のルールがあり、RIPおよびバベルには独自のルールがあります。(一部のプロトコルは距離ベクトル、一部はリンク状態、一部は両方同時にです。たとえば、OSPFはエリア内のリンク状態ですが、エリア間の距離ベクトルです。) RIPよりもOSPFルート、BGPよりもRIPなどを優先します。

すべてのルーターが自動ルーティングプロトコルを実行するわけでないことに注意してください。FIB内のすべてのルートを管理者が手動で入力することは完全に可能です。


「ただし、すべてのパケットの最短ルートを計算するのではなく、RIBの内容が実際に変更されたときにのみ行う必要があります。したがって、ルートは事前計算され、FIBに入れられます。各パケットの最長一致プレフィックスを検索します。」これに関する私の理解を確認できますか。IPパケットがデフォルトゲートウェイルーターに到達すると、既にホップしているすべてのルーターを知っていますか?または、到達するすべてのルーターのネクストホップルーターのみを知っていますか?私は後者だと思う?
calveeen

インターネット上には非常に多くのサーバーが存在するため、これらのすべてのサーバーについて、すべてのルーティングとデータが事前に計算されていますか?
calveeen

@calveeen:プレーンIPルーターは、即時のネクストホップのみを選択し、それ以降に発生することを制御できません。(MPLSネットワークなどの例外がありますが、実際にはIPではありません。)
grawity

さて、RIBに含まれる距離ベクトル(ルーティングプロトコル)の交換は、基本的に最長のプレフィックス一致であるFIBを決定するのに役立ちます。そして、すべてのサーバーへのルートはすでに事前に計算されているため、ルーターは、IPパケットのdst IPアドレスに基づいて次のルーターに転送するだけです。
calveeen

答える私の質問をありがとうともuはあなたの答えを整理方法をありがとう
calveeen

1

彼らは間違いなく同じ情報を保持しません。

ルーティングテーブルは、X.X.X.X/YIP宛先についてはz.z.z.zルーターを通過することを示すレイヤー3テーブルです。
転送テーブルは、z.z.z.zルーターと通信するために、MACアドレスにパケットを送信することを示すレイヤー2テーブル aa:bb:cc:dd:ee:ffです。

たとえば、転送テーブルは、宛先にバインドされたパケット192.168.1.0/24を物理ポートethernet1 / 2から送信する必要があると言う場合があります。

ローカルネットワークでは、転送テーブルを使用して他のホストのMACアドレスを取得し、パケットを送信します。ネットワークデバイスはarp whohas ip z.z.z.z、関連するMACアドレスを取得するためにレイヤー2でパケットをブロードキャストします。

別のサブネットのホストと通信するには、ローカルネットワーク内のルーターを介してルーティングする必要があります。ルーティングテーブルは、このルーターがどのIPを持っているかを示すため、どのルーターに到達するかは転送メカニズムを使用して行われます。

言い換えると、ルーティングテーブルには、ノードが保持しようとしているすべてのルートと、ルーティングプロトコルで使用されている情報が含まれています。転送テーブルは、ハードウェアがパケットをインターフェイスに出入りさせるために物理的に使用します。ハードウェアは、ルーティングテーブルがまだ更新されている間、転送コンテンツに基づいて転送を続けることができます。

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