IP パケットはどのゲートウェイを使用するかをどのように認識するのでしょうか?

IP パケットはどのゲートウェイを使用するかをどのように認識するのでしょうか?

同じネットワーク上に 2 つのゲートウェイが存在するとします。私の理解が正しければ、送信者のコンピュータ上の IP ルーティング テーブルによって、どのパケットがどのゲートウェイを経由してルーティングされるかが決定されます。

IP ルーティング テーブルにはゲートウェイの IP アドレスが含まれています。

IP パケットを送信するときに、ゲートウェイのこの IP アドレスはどのように使用されますか?

答え1

TL;DR: ゲートウェイのアドレスは、TCP/IPパケットを保持するイーサネットフレームにのみ保存されます。

サーバー -> スイッチ -> ルーター トラフィック、およびサーバー -> スイッチ -> サーバー トラフィックでは、IP アドレス指定は実際には意味のある役割を果たしません。これは、基盤となるプロトコル (おそらくイーサネット) の世界です。つまり、MAC アドレス指定で動作する世界です。

したがって、デフォルトゲートウェイがIPアドレスであるという混乱を解決するだけで済みます。まあ、それは人間に表示されるものですが、そのゲートウェイのIPはのみ必要なことは 1 つだけです。つまり、「このあたりで 192.168.1.1 を持っているのは誰か?」と尋ねることです。答えは、ゲートウェイが MAC 88:99:aa:bb:cc:dd:ee:ff であるというものです。(これは ARP クエリ/応答であり、2 つの世界間の翻訳機です。) 実際に使用されるのは MAC です。パケットは、IP レベルでは最終受信者のまったく関係のない宛先 IP アドレスを指定しているにもかかわらず、イーサネット レベルではその MAC に送られます。

したがって、イーサネット フレームの「宛先 MAC」フィールドを設定することで、パケットは選択されたゲートウェイに送信されるようマークされます。このフィールドは、複数のゲートウェイがある場合に、そのネットワーク上のどのゲートウェイがパケットを受信するかを決定します。(「フレーム」は、パケットまたはパケットの一部を保持する基礎となるカプセルです。)

一般化:ルートテーブルはIPの中核ですが、その中のネクストホップという列は一度もないパケットが回線を移動するときに IP アドレス指定が実装されます。ネクスト ホップは実際には常にイーサネット、MPLS、またはその他の基盤プロトコルを使用します。

$ ip route show
 192.168.98.0/24     via 192.168.99.1 dev eth0
|                   |                         |
|  <- IP world ->   | <- underlying world  -> |
|                   |                         |

192.168.99.1上記では、基礎となる世界がIP 世界の概念である のようなものに言及している場合でも、実際に文字通りそれを意味しているわけではありません。

答え2

IP データグラム ヘッダーには、送信元と宛先のアドレス情報のみが含まれます。宛先に基づいて、ルータはパケットを次にどこに転送するかを認識し、この情報はルーティング テーブルに保存されます。

可能性はある静的ルートアドレスまたはそのサブネットの情報とデフォルトゲートウェイ残りの部分には、通常、ローカルネットワークで使用されます。他のローカルネットワークへの静的ルーティングと、残りの部分、つまりインターネットへのデフォルトゲートウェイがある場合があります。デフォルトゲートウェイ0.0.0.0つまり、またはへのルートの場合::、アクティブなルートはそのルートによって選択されます。好みまたはメトリック価値。

インターネット レベルの ISP 間と同様に、宛先間に複数のルートがある場合は、状況はさらに複雑になります。ルーター間で情報を共有するには、いくつかの方法があります。ルーティング情報プロトコル(RIP)、最短経路を優先する(OSPF)、およびボーダーゲートウェイプロトコル(BGP) この情報がどのように共有されるかに関係なく、ルーティング テーブルは次のホップを認識し、IP パケットは最終的な宛先のみを認識します。

答え3

短くて簡単な答え: パケットにエンコードされません。または、見方によってはイーサネット ターゲット アドレスになります。IP/イーサネット スタックは、宛先 IP アドレスを処理するゲートウェイを確認し、ゲートウェイ IP アドレスの ARP 要求を送信して MAC アドレスを取得し、パケットをゲートウェイの MAC アドレスに送信します。ゲートウェイはパケットを転送し、同じことを繰り返します。これは、イーサネット ネットワークを想定しています。

私はあなたの質問に回答したと思います。私もかつて同じことを疑問に思いました。あなたの質問は、特定のルーティング テーブルが与えられた場合、ホストが送信パケットをどのゲートウェイに送信するかをどのように決定するか、とも解釈できます。

答え4

もちろん、確認される詳細の 1 つは、ルートが一致するかどうかです。192.0.2.55/24 に送信していて、10.55.0.0/16 へのトラフィックにルートが利用可能な場合、そのルートは適用されないため無視されます。

通常考慮される次の基準は、より具体的なルートを、より一般的なルートよりも優先させることです。「具体的な」ルートとは、より小さなサブネットを意味します。言い換えると、/CIDR 表記を使用する場合は数字が大きく、「サブネット マスク」表記を使用する場合はサブネット マスクが大きくなります。言い換えると、宛先ネットワークのアドレスの数が減ります。

したがって、「デフォルト ゲートウェイ」は「最後のゲートウェイ」とも呼ばれ、通常、0.0.0.0/0 ネットワークへのすべてのトラフィックの宛先を指定します。より小規模なネットワークのルートは、それよりも「より具体的」になり、優先されます。したがって、192.0.2.0/24 の方が優先されます。

3 番目に、ルートには通常、「メトリック」と呼ばれる別のフィールドがありますが、場合によっては「優先度」などの別の名前が付けられます。同じサイズのネットワークが複数ある場合、これが影響を与える可能性があります。

これらの「メトリック」値は、自動的に生成されるもの(たとえば、より多くのトラフィックに高速ネットワークが使用されるようにするなど)である場合もありますが、手動で調整することもできます。

取得するゲートウェイに関する情報は、送信された IP パケット内にエンコードされている場所はどこですか?

IP パケットには、宛先 IP アドレスを指定する以外のルーティングに関する情報は含まれません。ルーティングの詳細は、途中でルーティングを処理する機器によって決定され、そのような詳細は IP パケットには通常含まれません。(したがって、そのような詳細は存在しないため、機器はそのような詳細を検索しません。機器はそのような情報を検索しないため、そのような情報を含めようとしても意味がありません。)

RFC 791 ページ 11IP パケットに含まれる情報の「ASCII ART」スタイルの表を示します。その表の後に、そのドキュメントでは詳細を示します (たとえば、「オプション」セクションは 15 ページで説明されています)。

関連情報