位址解析協定(Address Resolution Protocol)
/ A-R-P /
ARP(位址解析協定)是那個小小的翻譯員,把 IP 位址轉成在區域網路上真正遞送訊框所需的 MAC 位址。主機知道它想連到的 IP 位址,但乙太網路不是依 IP 遞送——它依 MAC 遞送。所以送出前,主機必須問:這個區域網路上哪一台實體機器擁有那個 IP?ARP 就是查出答案的一問一答。它像是你知道某人的名字(IP),卻需要他的座位號(MAC)才能把紙條遞給他。
機制是一個廣播的問句加一個單播的答句。要連到 192.168.1.20,主機向 ff:ff:ff:ff:ff:ff 廣播一個 ARP 請求:「誰有 192.168.1.20?告訴我你的 MAC。」區域網路上每台機器都收到,但只有那個 IP 的擁有者單播回覆:「我有 192.168.1.20,我的 MAC 是 de:ad:be:ef:00:14。」發問者把這個對應快取在它的 ARP 表裡幾分鐘,以免再問一次,然後用那個目的 MAC 組出乙太網路訊框。當目的 IP 在不同的網路時,主機改為對它的預設閘道的 IP 做 ARP,把訊框送給路由器的 MAC,由路由器繼續轉送。
ARP 是 IP 層與乙太網路層之間必不可少的黏合劑,平常就無形地運作。誠實的提醒:經典 ARP 完全沒有驗證——任何機器都能替任何 IP 回答。攻擊者因此可以送出偽造的 ARP 回覆(ARP 欺騙/毒化),讓受害者把流量送給攻擊者,促成中間人攻擊。ARP 也只在單一區域網路/廣播網域內運作;IPv6 用鄰居探索(Neighbor Discovery)取代它,後者改用 ICMPv6 多播而非廣播。
你的筆電(192.168.1.5)想連到同一區域網路上的 192.168.1.20。它廣播「誰有 192.168.1.20?」;印表機回覆「是我,MAC de:ad:be:ef:00:14」。你的筆電把 IP 192.168.1.20 -> 那個 MAC 快取起來,並把訊框直接送過去。
廣播問句、單播答句、快取對應——在區域網路上把 IP 解析成 MAC。
ARP 未經驗證:主機會相信任何回覆。這正是 ARP 欺騙成為經典區域網路攻擊的原因,也是 ARP 只在單一廣播網域內、而非跨路由器運作的原因。