ARP:Layer 3(IP)と Layer 2(MAC)をつなぐ翻訳係

ネットワーク通信では、IPパケットはそのまま流れない
必ず Ethernet(有線)や Wi-Fi(無線)というレイヤ2のフレームに包まれて送信される。

つまり現実はこう:

  • 通信相手は IPアドレスで指定

  • 実際の配送は MACアドレスで実施

この「IP → MAC」の変換を担当するのが ARP(Address Resolution Protocol)


なぜARPが必要なのか

IPアドレスだけでは通信できない理由は単純。

  • Ethernet / Wi-Fi は MACアドレスで相手を指定する

  • IPアドレスは レイヤ3の論理的な住所

  • 物理的な配送には MACアドレス が必要

普段はIPアドレスしか意識しないが、
同一ネットワーク内では必ずMACアドレス解決が発生している


Ethernetフレームの中身(復習)

Ethernetフレームのヘッダには次が含まれる。

  • 宛先MACアドレス

  • 送信元MACアドレス

  • Type(IPv4 など)

この中に IPパケットがカプセル化 される。

IPは主役、MACは配送ラベル。


ARPの基本動作

例:
192.168.66.89 が 192.168.66.1 と通信したい場合。

1. ARP Request

「192.168.66.1 の MACアドレスを教えてくれ!」

  • 宛先MAC:ff:ff:ff:ff:ff:ff(ブロードキャスト)

  • 送信元MAC:要求元のMAC

  • IP指定で問い合わせ

Who has 192.168.66.1? Tell 192.168.66.89

2. ARP Reply

「それ俺。MACはこれ。」

  • 宛先MAC:要求元のMAC

  • 送信元MAC:対象ホストのMAC

192.168.66.1 is at 44:df:65:d8:fe:6c

このやり取りが終わると、
IP ↔ MAC の対応がARPキャッシュに保存され、通常通信が可能になる。


パケットキャプチャの読み方

tshark 表示例

cc:5e:f8:02:21:a7 → ff:ff:ff:ff:ff:ff ARP Who has 192.168.66.1?
44:df:65:d8:fe:6c → cc:5e:f8:02:21:a7 ARP 192.168.66.1 is at 44:df:65:d8:fe:6c

tcpdump 表示例

ARP Request who-has 192.168.66.1 tell 192.168.66.89
ARP Reply 192.168.66.1 is-at 44:df:65:d8:fe:6c

ツールが違っても 意味は同じ


ARPの重要な特徴

  • IPもUDPも使わない

  • Ethernetフレームに 直接カプセル化

  • 完全に ローカルネットワーク専用

  • ルータを越えない

ここが後の攻撃ポイントになる。


ARPはレイヤ何?

よく議論になるが、

  • MACアドレスを扱う → レイヤ2

  • IP通信を支える → レイヤ3寄り

実務的にはこう覚えるのが一番正確。

ARPは Layer 3 を Layer 2 に橋渡しする翻訳プロトコル


CTF・セキュリティ視点メモ

  • ARPは 認証が一切ない

  • 「先に答えた者勝ち」

  • ARPスプーフィング / ARPポイズニング が成立する

  • MITM(中間者攻撃)の王道入口

DHCPが「住所配布」なら、
ARPは「配送ルートの最後の鍵」。

ここを理解すると、
次の ARPテーブル汚染・MITM・DNS偽装 が一本の線でつながる。


いいなと思ったら応援しよう!