通常情況下,免費ARP主要用于檢測IP地址沖突。筆者對免費ARP還可以防范ARP欺騙攻擊這部分內容,在交換機上配置Gratuitous ARP(免費ARP),來抵御針對網關的ARP欺騙攻擊,搭建了實驗環境進行驗證,本文就將相關心得與大家分享和探討。
ARP報文有兩種類型:一種是由發送方發出的ARP Request廣播報文;另一種是由接收方返回的ARP Reply單播報文。免費ARP(Gratuitous ARP)采用的是ARP Request廣播報文,但它的目的并不是要解析某個IP地址所對應的MAC地址,在這種ARP報文中,目的IP地址和源IP地址都是同一個,也就是發出免費ARP報文的主機IP地址。如圖1所示就是用Wireshark抓取的免費ARP報文內容。

圖1 免費ARP報文內容
免費ARP的作用主要有兩個:一是用于IP地址沖突檢測,二是用于更新ARP地址緩存表中的原有記錄。下面分別予以說明。
免費ARP的主要作用就是用于判斷當前主機所設置的IP地址是否已被別的主機所使用,當免費ARP報文以廣播的方式發送到網絡中之后,如果有某臺主機使用了當前主機的IP地址,那么它就會發回一個ARP響應,這樣當前主機就會發出IP地址沖突的警告,我們也可以得知沖突主機的MAC地址。
所以對于一臺使用靜態IP地址的主機,如果重新設置IP地址,那么就必然要先發送一個免費ARP的廣播,這點可以通過Wireshark抓包確認,在Wireshark的顯示過濾器中設置過濾條件為ARP,抓取到的免費ARP報文如圖2所示。

圖2 免費ARP報文
當某臺主機的MAC地址發生變化時,即IP地址不變,MAC地址改變,比如主機更換了網卡,這時這臺主機也會發送免費ARP廣播?!?br>