ルーター越えの通信動作

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参照モデルのネットワーク
    リンク層とします)

  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