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偽装 が一本の線でつながる。
