ルーター越えの通信動作

ETHERNETを勉強するとき、最初に理解しづらいことのひとつに、ルーター越えの通信時のMACアドレスやIPアドレスの動きがあると思います。
そこで、下図のようなネットワークのとき、IPパケットがPC1からPC2へたどり着くまでのMACアドレスやIPアドレスの動きを追ってみます。

(注:MAC1などはMACアドレス(00-08-D7-00-00-00など)の省略形です)
+-----------------------------------------------------------------------
| PC1
| (mac:MAC1/ip:192.168.0.1/mask:255.255.255.0/gateway:192.168.0.100)
+-----------------------------------------------------------------------
 |
 |ETHERNET
 |
+-----------------------------------------------------------------------
| (mac:MAC2/ip:192.168.0.100/mask:255.255.255.0)
| ルーター1
+-----------------------------------------------------------------------
 |
 |この間は専用線、VPNなど多種多様
 |
+-----------------------------------------------------------------------
| ルーター2
| (mac:MAC3/ip:192.168.1.100/mask:255.255.255.0)
+-----------------------------------------------------------------------
 |
 |ETHERNET
 |
+-----------------------------------------------------------------------
| (mac:MAC4/ip:192.168.1.1/mask:255.255.255.0/gateway:192.168.1.100)
| PC2
+-----------------------------------------------------------------------

上図でPC1からPC2へIPパケットを送信するものとします。
(注:MACfはMACアドレス(FF-FF-FF-FF-FF-FF)の省略形です)
(注:MACパケットとはOSI参照モデルのデータリンク層、IPパケットとはOSI参照モデルのネットワークリンク層とします)PC1は宛先であるPC2のIPアドレスが、異なるネットワークアドレスであるため、IPパケットをデフォルトゲートであるルーター1に渡そうとします。

1.PC1は宛先であるPC2のIPアドレスが、異なるネットワークアドレスであるため、IPパケットをデフォルトゲートであるルーター1に渡そうとします。

2.PC1から次のarp requestを送信します。
送信元MAC1+192.168.0.1、宛先MACf+192.168.0.100

3.ルーター1からPC1へ次のarp replyを送信します。
送信元MAC2+192.168.0.100、宛先MAC1+192.168.0.1

4.PC1からルーター1へ次のMACパケットを送信します。
送信元MAC1+192.168.0.1、宛先MAC2+192.168.1.1

5.ルーター1はルーター2へIPパケットを渡します。
ここで渡すものはIPパケットであり、MACパケットではありません。
梱包方法は多種多様ですが、最終的には「4.」のMACパケットからIPパケットを取り出したものがそのまま渡るイメージです。

6.ルーター2から次のarp requestを送信します。
送信元MAC3+192.168.1.100、宛先MACf+192.168.1.1

7.PC2からルーター2へ次のarp replyを送信します。
送信元MAC4+192.168.1.1、宛先MAC3+192.168.1.100

8.ルーター2からPC2へ次のMACパケットを送信します。
送信元MAC3+192.168.0.1、宛先MAC4+192.168.1.1

「4.」と「8.」でMACアドレスは異なっていますがIPアドレスには変化がないことに注目してください。
OSI参照モデルなど、階層を意識するとこのようになることは当然なのですが、データリンク層のデファクトスタンダードとしてETHERNETが、ネットワークリンク層のデファクトスタンダードとしてIPがあまりにも強く、階層の意識が欠落しがちなため、理解しづらくなっているようです。

2010/02/12