1. 程式人生 > >Sender IP字段為"0.0.0.0"的ARP請求報文

Sender IP字段為"0.0.0.0"的ARP請求報文

曾經 同時 暫時 連續 配置 相同 讓我 可見 mage

  今天在研究免費ARP的過程中,抓到了一種Sender IP字段為“0.0.0.0”的ARP請求報文(廣播),抓包截圖如下:

技術分享圖片

  這讓我很疑惑。一個正常的ARP請求不應該只是Target MAC字段為全0嗎?經過我多次試驗,發現在網卡在啟動的過程中會出現這個神奇的ARP請求包,具體的操作為: 拔掉網線再插上、DHCP獲取地址、手動更改網卡的IP或者掩碼時,會出現這個ARP請求包。(前提條件是網卡曾經是配置了IP地址的)

  我猜測是在網卡啟動時,網卡先進行IP沖突檢測,檢測一下是否有其他設備正在使用這個IP地址(即圖中的172.168.2.110),看這個地址是否可用。同時又因為此時網卡還在啟動,IP地址可以理解為還不存在,因此就用0.0.0.0代替IP來組裝ARP請求包。

  截圖中還可以看出,連續三次發送了這種報文,也未收到ARP應答。網卡就將自己IP暫時設為原來的172.168.2.110(此時網卡應該已經啟動完了);以防萬一,網卡還重新發了一個免費ARP(Serder IP和Target IP相同,均為172.168.2.110),再次確認網絡上是否有設備在使用這個IP地址。之後(截圖中大概是5s以後)就是進行正常的ARP請求應答了。

  這個報文在win10和win7上都能抓到,都是三個,但是後續免費ARP就只能在win10系統上抓到,win7上沒有抓到後續的那個免費ARP(操作都是相同的,幾種辦法都嘗試了)。由此可見,win7就是通過這個Sender IP字段為"0.0.0.0"的ARP請求報文來進行IP地址沖突檢測;win10就是雙重保險,兩種請求報文都有。

  

  

Sender IP字段為"0.0.0.0"的ARP請求報文