同じネットワーク上に2つのゲートウェイが存在するとします。私が正しく理解していれば、送信者のコンピュータのIPルーティングテーブルが、どのパケットがどのゲートウェイ経由でルーティングされるかを決定します。
IPルーティングテーブルには、ゲートウェイのIPアドレスが含まれています。
IPパケットを送信するときに、ゲートウェイのこのIPアドレスはどのように使用されますか?
TL; DR:ゲートウェイのアドレスは、そのTCP/IPパケットを保持するイーサネットフレームにのみ保存されます
Server-> switch-> routerトラフィック、およびserver-> switch-> serverトラフィックは、IPアドレッシングが実際に意味のある役割を果たすことはありません。それは基礎となるプロトコルの世界であり、おそらくイーサネットです。つまり、MACアドレッシングで実行される世界です。
したがって、デフォルトゲートウェイがIPアドレスであるという混乱を解決するだけで済みます。それは一種の...起動時...ですが、そのゲートウェイIPパラメーターはonlyの1つを行うために必要です、つまり、質問することです:誰ここに192.168.1.1がありますか?答えは、ゲートウェイがMAC 88:99:aa:bb:cc:dd:ee:ffであることです。 (これは、ARPクエリ/応答、2つの世界の間のトランスレータです。)パケットは、IPレベルで別の宛先を保持している可能性があるにもかかわらず、イーサネットレベルでそのMACに送信されます。
そのため、パケットは、イーサネットフレームの「宛先MAC」フィールドでエンコードすることにより、選択したゲートウェイに送信するようにマークされます。複数のゲートウェイがある場合、フィールドはそのネットワーク上のどのゲートウェイがそれを取得するかを決定します。 (「フレーム」は、パケットまたはパケットの一部を保持する基本的なカプセルです。)
IPデータグラムヘッダーには、送信元と宛先のアドレス情報のみが含まれます。宛先に基づいて、ルーターは次にパケットを転送する場所を認識している必要があり、この情報はルーティングテーブルに格納されます。
静的ルートアドレスまたはそのサブネットとデフォルトゲートウェイ残りの部分に使用されます。これは通常、ローカルネットワークに当てはまります。他のローカルネットワークへの静的ルーティングと、残りのインターネット(デフォルト)のデフォルトゲートウェイが存在する可能性があります。いくつかのデフォルトゲートウェイ、つまり0.0.0.0
または::
へのルートの場合、アクティブなゲートウェイはPreferenceまたはMetric値。
インターネットレベルのISP間にあるため、宛先間にいくつかのルートがある場合、状況はさらに複雑になります。ルーター間で情報を共有する方法はいくつかあります:Routing Information Protocol(RIP)、Open Shortest Path First (OSPF)、およびBorder Gateway Protocol(BGP)。この情報の共有方法に関係なく、ルーティングテーブルはネクストホップを認識しており、IPパケットは最終的な宛先のみを認識しています。
短くてシンプルな答え:パケットにエンコードされないか、見方によってはイーサネットターゲットアドレスです。 IP/Ethernetスタックは、宛先IPアドレスを処理するゲートウェイを調べ、ゲートウェイIPアドレスのARP要求を送信してMACアドレスを取得し、次にパケットをゲートウェイのMACアドレスに送信します。次に、ゲートウェイはパケットを転送し、同じことをもう一度行います。これはイーサネットネットワークを想定しています。
私はあなたの質問に答えたと思います。私はかつて同じことを疑問に思いました。あなたの質問は、特定のルーティングテーブルを与えられたホストが、発信パケットを送信するゲートウェイをどのように決定するかも解釈できます。
1つの可能性は、ネットワークがVRRPやHSRPなどのファーストホップ冗長プロトコル(FRHP)で構成されていることです。 FHRPには、ホストが使用する仮想ゲートウェイアドレスがあり、仮想アドレスに送信されたトラフィックは、物理ルーターの1つによってピックアップされ、トラフィックが転送されます。プライマリルーターに障害が発生した場合、セカンダリルーターがそれを判断して、パケットの転送を引き継ぎます。
いずれの場合も、パケットはパケットが通過するパスを決定しません。各パケットは、ルーターのルーティングテーブルの情報に基づいて、他のパケットとは独立して個別に転送されます。ルーティングテーブルが変更された場合、同じ送信元から同じ宛先へのパケットは異なるパスを使用できます。
ルーターは3つの方法でルートを学習します。
もちろん、調べられる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ページ11 は、IPパケット内の情報の「ASCII ART」スタイルのテーブルを示しています。その表の後、そのドキュメントは詳細を示します(たとえば、「オプション」セクションは15ページで説明されています)。