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