ルータはパケットを送信するためにネクストホップの MAC アドレスを必要としますか、それともネクストホップの IP アドレスで十分ですか?

ルータはパケットを送信するためにネクストホップの MAC アドレスを必要としますか、それともネクストホップの IP アドレスで十分ですか?

パケットがフレームに変換されると、「宛先ハードウェア アドレス」、「送信元ハードウェア アドレス」、「Ether タイプ フィールド」または「長さ」、「データ フィールド」、および「フレーム チェック シーケンス フィールド」が取得されます。

さて、この時点で、宛先ホストがローカル ネットワーク上にある場合、ネットワーク層で IP によって ARP 経由でローカル ホストのハードウェア アドレスの要求が行われ、受信されると、ハードウェア アドレスがデータ リンク層に渡され、フレームに変換されて物理リンク経由で信頼できる送信が実行されます。

しかし、パケットがリモート ホスト宛ての場合、デフォルト ゲートウェイ (または次のルータ) のハードウェア アドレスはどのようにして取得されるのでしょうか。ルータ間でパケットが送信されるたびに、データ リンク層によってフレームに変換され、受信側ルータでパケットに切り離されるためです。では、ローカル ホストの場合と同様に、データ リンク層はデフォルト ゲートウェイ (ルータ) のハードウェア アドレスをどこから取得して、「宛先ハードウェア アドレス」フィールドに入力するのでしょうか。

答え1

各ルーターの役割は、パケットを次のルーターにアドレス指定することです。そのためには、次のルーターのハードウェア アドレスだけが必要です。さらに下にあるシステムのハードウェア アドレス (またはハードウェアの種類) を知る必要はありません。

一般的なエンド ノードでは、レイヤー 2 パケットを送信するのは LAN 上の他のマシンのみであるため、それらのマシンのハードウェア アドレスのみが必要です。イーサネットの場合、この情報を取得するために ARP が使用されます。

答え2

では、データリンク層は、ローカル ホストの場合と同様に、「宛先ハードウェア アドレス」フィールドに入力するために、デフォルト ゲートウェイ (ルーター) のハードウェア アドレスをどこから取得するのでしょうか。

ローカルホストと同じ場所、つまりオペレーティングシステムから送信します。宛先アドレスを含むイーサネットフレームヘッダーは、オペレーティング·システム、下位層によってではありません。

オペレーティング システムは、ルーティング テーブルから宛先がゲートウェイである必要があることを確認し、ゲートウェイの IP アドレスに対して ARP または ND を実行し、元のターゲット ホストを IP ヘッダーに保持しながらゲートウェイのリンク アドレスを持つイーサネット フレームを作成します。

「データリンク層」は指定された宛先に送信するだけです。

関連情報