Networking
連接問題 - ARP、MAC 和 IP
我正在嘗試診斷昨晚在設置基於 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 記憶體可能不正確。
要排除的前兩個非常明顯的事情是:
- 您的舊路由器仍未嘗試調出 IP 地址 192.168.1.1
- 您的新路由器在 ping 請求(ICMP 回顯)進入時沒有對其進行防火牆保護。
假設不是這兩件事,那麼您可以繼續檢查 ARP 條目是否正確。請記住,除非您使用靜態 ARP 條目(我假設您不是),否則它們會根據需要動態儲存並在一段時間後過期。這意味著它們不會在重新啟動或長時間後持續存在。因此,如果您的舊路由器絕對不在舊 IP 地址上,那麼它不應該是問題的原因。
- 記下您的 PC 和新路由器的正確 MAC 地址是什麼。
ifconfig
您可以從或獲取此資訊ipconfig
,取決於作業系統。- 仔細檢查每台設備上的 ARP 條目。
arp -a
您可以使用或arp -an
跳過名稱解析來查看 ARP 記憶體中的目前條目。- 如果一台機器的 ARP 記憶體與另一台機器的 MAC 地址不一致,反之亦然,請嘗試使用
arp -d <ip>
. 如果它返回相同的地址,那麼您的網路上可能確實有一台流氓機器。順便說一句,您還可以確保 Wireshark 擷取的請求和響應中顯示的 MAC 地址與您從機器介面記錄的 MAC 地址相匹配。