Networking

連接問題 - ARP、MAC 和 IP

  • September 11, 2009

我正在嘗試診斷昨晚在設置基於 PC 的新路由器時遇到的一些連接問題。

有一段時間一切正常,但突然間我發現我無法 ping 新 PC,也無法從那台 PC 上 ping 其他機器。最終,我在我的機器上設置了wireshark 收集功能,並從新PC 上ping 了那台機器。我看到 ping 請求到達我的機器並發送了響應,但在新 PC 上我仍然什麼也沒看到。(執行嵌入式版本的 pfSense - FreeBSD 發行版)

回想一下我能看到的唯一可能性是,這與我不斷為新 PC 提供與我們現有路由器相同的 IP 地址 (192.168.1.1) 並為舊路由器分配另一個 IP 地址 (192.168.1.42) 的事實有關)。我最終這樣做了幾次並且從未重新啟動我的主 PC,所以我想知道 ARP 表是否以某種方式搞砸了。

那麼,IP 地址匹配但 MAC 地址不匹配(或相反)的數據包會發生什麼情況?他們只是被忽略了嗎?

另外,我可以使用更多的診斷工具或方法嗎?(除了只是再次打開和關閉不同的東西……)

你所描述的表明:

  • 路由器知道在 L2 網路上將您的 PC 定址到何處以發送 ping 請求——因此假定其 ARP 記憶體是正確的。
  • 但是您的 PC 不知道在哪裡定址路由器以發送 ping 響應——因此它的 ARP 記憶體可能不正確。

要排除的前兩個非常明顯的事情是:

  1. 您的舊路由器仍未嘗試調出 IP 地址 192.168.1.1
  2. 您的新路由器在 ping 請求(ICMP 回顯)進入時沒有對其進行防火牆保護。

假設不是這兩件事,那麼您可以繼續檢查 ARP 條目是否正確。請記住,除非您使用靜態 ARP 條目(我假設您不是),否則它們會根據需要動態儲存並在一段時間後過期。這意味著它們不會在重新啟動或長時間後持續存在。因此,如果您的舊路由器絕對不在舊 IP 地址上,那麼它不應該是問題的原因。

  1. 記下您的 PC 和新路由器的正確 MAC 地址是什麼。ifconfig您可以從或獲取此資訊ipconfig,取決於作業系統。
  2. 仔細檢查每台設備上的 ARP 條目。arp -a您可以使用或arp -an跳過名稱解析來查看 ARP 記憶體中的目前條目。
  3. 如果一台機器的 ARP 記憶體與另一台機器的 MAC 地址不一致,反之亦然,請嘗試使用arp -d <ip>. 如果它返回相同的地址,那麼您的網路上可能確實有一台流氓機器。

順便說一句,您還可以確保 Wireshark 擷取的請求和響應中顯示的 MAC 地址與您從機器介面記錄的 MAC 地址相匹配。

引用自:https://serverfault.com/questions/64427