ARP 與 MAC 地址解析:局域網(wǎng)通信的第一步
在局域網(wǎng)中,不論你是訪問打印機還是瀏覽網(wǎng)頁,第一步其實都是“問路”——而這個問路的過程,靠的就是 ARP 協(xié)議。它負責把我們知道的 IP 地址翻譯成真正用于通信的 MAC 地址。
一. 什么是 ARP?
ARP(Address Resolution Protocol)是地址解析協(xié)議。它的作用很簡單:
已知對方 IP 地址,向局域網(wǎng)請求它的 MAC 地址。
這個解析過程發(fā)生在二層網(wǎng)絡(數(shù)據(jù)鏈路層)和三層網(wǎng)絡(網(wǎng)絡層)之間,是 TCP/IP 協(xié)議棧中不可缺少的一環(huán)。
如下ARP工作流程圖: PC1 想與 PC2 通信(知道 IP,不知道 MAC)
ARP 的關鍵行為:
- ARP 請求是 廣播,即發(fā)給局域網(wǎng)中所有主機(目的 MAC 是 FF:FF:FF:FF:FF:FF)
- ARP 響應是 單播,即只有目標主機回應請求者
- 每臺主機有一個 ARP 緩存表,記錄已知的 IP-MAC 映射,避免頻繁廣播
ARP 在通信中的作用: 我們發(fā)送的數(shù)據(jù)幀,都需要一個目標 MAC。IP 地址只是邏輯地址,真正讓網(wǎng)卡能發(fā)出去的數(shù)據(jù),得靠 MAC 地址。ARP 就是 IP 到 MAC 的“翻譯官”。沒有 MAC 地址,局域網(wǎng)通信就沒法進行。
二. 上手實踐
神唱一直都覺得光看原理不實踐等于白看,那么接下來以 eNSP 為例去看看他是如何運作的:
首先我們查看PC1的arp:
可以看到此時的ARP表都是空的,然后我們使用PC1去請求 PC2:
通過抓包可以發(fā)現(xiàn),剛開始請求的時候回去ARP詢問 誰是192.168.1.20,告訴192.168.1.10, 然后第二條回應的就是 192.169.1.20對應的MAC地址是 54-89-98-F5-2F-D4。
現(xiàn)在我們再來看看PC1和交換機的ARP表:
可以發(fā)現(xiàn)PC1有了PC2的地址和MAC的對應信息了。
小知識:動態(tài)的ARP都是有生存時間的,也就是過段時間后這條記錄就沒有了。
三、ARP 欺騙
ARP 也有“軟肋”——因為它信任任何響應,沒有驗證機制。攻擊者可以偽造 ARP 響應,把自己冒充成網(wǎng)關,形成中間人攻擊(Man-in-the-Middle)。
防范方法:
- 使用靜態(tài) ARP 表;
- 開啟 ARP 防攻擊機制;
- 在三層交換或安全設備上設置 IP-MAC 綁定。
四、小結
- ARP 是連接 IP 與 MAC 的橋梁;
- 每次局域網(wǎng)通信,第一步都是先找 MAC 地址;
- ARP 請求是廣播,響應是單播;
- 交換機只轉發(fā),不解析;
- 安全環(huán)境下建議配合靜態(tài) ARP 或防攻擊設置。