👌

L2 over IPがよくわからないので整理した

2024/03/31に公開

NWスペシャリスト試験R3 午後1 問1で、L2 over IPで接続した端末間のtracerouteの結果が問われた。
https://www.ipa.go.jp/shiken/mondai-kaiotu/gmcbt8000000d5ru-att/2021r03h_nw_pm1_qs.pdf

  • PC1>RT1>RT2>PC2のNW経路がある
  • 上記の経路はL2 over IPによって閉域網として通信できる

Q. このとき、PC1からtraceroute PC2 を実行したときの結果は?
A. PC2
つまり、RT1,RT2は返されないというのが回答だった。
RT1でTTL1は消費されないのかが気になったので、考えてみた

L2 over IPのRFCを読んでみる(rfc3378)

L2 over IP(EtherIP)の手順は以下の通り

  1. 送信元のEtherIPステーションがパケットを検査し、EtherIPが必要か判断する(同一LANの通信か、LANのルータ宛の通信なら不要)

  2. Ether IPヘッダーをMACフレームの前に差し込む

     +-----------------+-----------------------------+
     |                 |                             |
     |  EtherIP Header | Encapsulated Ethernet Frame |
     |                 |                             |
     +-----------------+-----------------------------+
    
  3. 対向のEtherIPステーションのIPアドレスを特定する

  4. 2.のIPアドレスで決定したIPアドレスでEther IPダイアグラムをカプセル化する

     +-----------------------+-----------------------------+
     |      |                |                             |
     |  IP  | EtherIP Header | Encapsulated Ethernet Frame |
     |      |                |                             |
     +-----------------------+-----------------------------+
    
  5. 対向のEtherIPステーションに上記のパケットを送信する
    このとき、Ethernetヘッダも含めると以下のようになる。

     +-----------------+----------------+-----------------------------+
     |           |     |                |                             |
     |  Ethernet | IP  | EtherIP Header | Encapsulated Ethernet Frame |
     |           |     |                |                             |
     +-----------------+----------------+-----------------------------+
    

以上の仕様を素直に読む限り、EtherIPステーション(RT1)は

  • L2SWとして振る舞いながらLAN内のフレームを検査する
  • EtherIPでカプセル化
  • カプセル化したパケットを対向のEtherIPステーションに送るルータとして振る舞う
    という挙動をするっぽい。
    つまり、カプセル化前のパケットを中継するルーターとしては振る舞わないので、カプセル化前のパケットのTTLを消費することはない。
    まとめると、設問は以下のような動きになる
  1. PCは以下のICMPパケットをRT1におくる

     +-------------------+
     |           |       |
     |  Ethernet | ICMP  |
     |           |       |
     +-------------------+
    
  2. RT1は以下の通りカプセル化する

     +-----------------+----------------+----------+------+
     |           |     |                |          |      |
     |  Ethernet | IP  | EtherIP Header | Ethernet | ICMP |
     |           |     |                |          |      |
     +-----------------+----------------+----------+------+
    
  3. RT2は以下の通りカプセル化を剥がす。剥がしたあと、L2SWとして振る舞い、Ethernetフレームを書き換えてフレームをPC2に転送する

     +-------------------+
     |           |       |
     |  Ethernet | ICMP  |
     |           |       |
     +-------------------+
    

Discussion