
我遇到了一個奇怪的問題,如果你們中有人可以添加信息,我將不勝感激。
我配置了兩個不同的子網路並作為測試。我正在嘗試從另一台電腦 10.10.11.1/30(在不同的子網路上)對 10.10.11.9/30(在一個子網路上)的一台電腦執行 ping 操作。 ping 不起作用(確實如此)。
但是,當我嘗試在 Wireshark 中偵測相同內容時,它不會顯示「無法存取」訊息,而是顯示正常的 ICMP 請求和回應。就好像資料包正在尋找方向...
我確實嘗試計算 IP 封包中的 headerchecksum,但即使這樣做,Wireshark 中捕獲的封包的校驗和似乎是正確的 - 而 ping 顯示所有封包都丟失了。
有人可以添加資訊嗎?
多謝
答案1
假設您的設定實際上如您所描述的那樣(沒有意外配置錯誤):除非客戶端10.10.11.1/30 有一些有關如何路由到10.10.11.9/30 的資訊(透過預設閘道、靜態路由等),否則沒有ICMP資料包應該被送出去。
在 Cisco Paket Tracer 上嘗試。設定一個包含兩個客戶端和中間一台交換器的網路。只要沒有設定預設閘道(且用戶端位於不同的廣播網域中),用戶端就不會傳送任何 ARP 封包。
這意味著您當前的配置提供了某種“路由解析”,因此 ICMP 資料包實際上正在發送和接收。可能透過預設閘道、靜態路由等。直接到客戶端還是到路由器?正如我在評論中寫道:
ICMP 封包必須透過路由器、靜態路由、一些「外來」設定(如「proxy-arp」等)傳送。 IP位址如何解析為MAC位址?我認為這將引導您找到為什麼首先會有響應(不應該有響應)的解決方案。
為什麼接收到的資料包沒有顯示在 ping 統計資料中是另一回事。可能是防火牆阻止了它們(我的猜測是因為 ping 命令沒有給出任何錯誤,也沒有關於各個 ping 的確認,它只是為您提供摘要)。
我唯一的其他解釋是,還有一些其他類型的時髦配置搞亂了系統(例如,第二個客戶端與目標具有相同的 IP 位址,並且在與來源相同的廣播網域內等)。您也可以在第 2 層檢查這一點,方法是將訊框的 MAC 位址與來自實際用戶端的 MAC 位址進行比較。
事後的想法: 難道你設定了預設網關、靜態路由等?路由器是否有 24 位元網路遮罩?在這種情況下,雖然子網路不同,但路由器和用戶端的廣播網域重疊。這可以解釋當前的行為。
答案2
您的網路狀況不佳,可能是由於網路遮罩混淆所致:
ICMP 請求之前有一個先前的 ARP 請求(緊接著或之前某個時間)。顯然,ARP 請求成功,因此某個節點知道其位置
10.10.11.9
並返回其 MAC 位址,否則 ICMP 永遠不會發送。PING 請求應該返回「網路無法存取」(或至少「主機無法存取」),但事實並非如此。這樣ICMP請求已成功發送並回傳成功代碼。
問題仍然是為什麼 ping 命令仍然報告 100% 丟包。
我只能推測 ping 指令本身已經放棄了答案,也許是因為它來自另一個網路。
我的結論是網路上的其他一些節點正在使用
10.10.11.x/24
,因此正在傳遞 ping ,這給10.10.11.1/30
節點帶來了很大的混亂。