問題:訪問一個環境中的路由器172.16.1.1,發現ssh無法訪問,ping發現回網絡不可達
C:\Windows\System32>ping? 172.16.1.1
正在 Ping 172.16.1.1 具有 32 字節的數據:
來自 172.16.81.1 的回復: 無法訪問目標網。
來自 172.16.81.1 的回復: 無法訪問目標網。
來自 172.16.81.1 的回復: 無法訪問目標網。
來自 172.16.81.1 的回復: 無法訪問目標網。
172.16.1.1 的 Ping 統計信息:
??? 數據包: 已發送 = 4,已接收 = 4,丟失 = 0 (0% 丟失),
已知組網如下:
排查過程:
平時訪問正常,檢查路由是否正常?
發現組圖上的路由正常存在,證明網口up,配置沒有問題。因為物理口正常up,路由才存在在路由打印里。
tracert跟蹤一下,這個網絡不可達是誰發的?
C:\Windows\System32>tracert? -w 1? -d? 172.16.1.1
通過最多 30 個躍點跟蹤到 172.16.1.1 的路由
? 1? 172.16.81.1? 報告: 無法訪問目標網。
跟蹤完成。發現是172.16.81.1回的,而pc的usb網卡配置的172.16.81.100/24,這個172.16.81.1是直連路由可達的節點。arp? -a | findstr? 172.16.81.1看一下設備mac地址?
C:\Windows\System32>arp? -a | findstr? 172.16.81.1
? 172.16.81.1?????????? 64-a3-41-b2-b3-e1???? 動態
感覺有點不對勁,設備上標簽的mac是這個
64:b3:41:b2:16:21
而64-a3-41-b2-b3-e1這個mac地址是另一個設備的標簽標注的mac
為啥會從這個設備上回消息,這兩個設備默認ip地址都是172.16.81.1,難道接到一個廣播域里了?
pc上抓包看一下?pc的usb網卡抓包,過濾一下icmp消息
發現,ping的request消息發給64-a3-41-b2-b3-e1,icmp的目標不可達,原因是網絡不可達是64-a3-41-b2-b3-e1發出的
getmac? /v查看pc的mac地址
C:\Windows\System32>getmac? /v
連接名????????? 網絡適配器????? 物理地址??????????? 傳輸名稱
=============== =============== =================== ==========================================================
以太網????????? Realtek PCIe Gb CC-96-E5-23-39-3C?? \Device\Tcpip_{E23FF6BD-F5DA-4E0C-B23F-FB03429AAAB6}
WLAN??????????? Realtek 8821CE? 74-97-79-A9-A6-13?? 媒體已斷開連接
VMware Network? VMware Virtual? 00-50-56-C0-00-01?? \Device\Tcpip_{B8E81AEF-0935-4643-9CE1-94227577892E}
VMware Network? VMware Virtual? 00-50-56-C0-00-08?? \Device\Tcpip_{FAA21B1C-B7DF-42A2-AE78-E5AACA20FE59}
以太網 2??????? TAP-Win32 Adapt 00-FF-59-A6-9D-3A?? 媒體已斷開連接
以太網 4??????? Realtek USB GbE 00-0F-C9-24-10-B1?? 這是usb網卡的mac地址\Device\Tcpip_{BAD890BC-283C-4C22-845B-A085D6B91131}
確定是從usb網卡發出ping的request,而且是usb口收到的icmp網絡不可達消息。
過濾一下icmp or arp,cmd下執行arp -d? &&? ping? 172.16.1.1看看wireshark里arp查詢172.16.81.1(路由表的下一跳)是誰應答的?
發現cmd下有如此打印:
C:\Windows\System32>arp? -d? &&? ping? 172.16.1.1
正在 Ping 172.16.1.1 具有 32 字節的數據:
來自 172.16.1.1 的回復: 字節=32 時間<1ms TTL=63
來自 172.16.81.1 的回復: 無法訪問目標網。
來自 172.16.81.1 的回復: 無法訪問目標網。
來自 172.16.81.1 的回復: 無法訪問目標網。
172.16.1.1 的 Ping 統計信息:
??? 數據包: 已發送 = 4,已接收 = 4,丟失 = 0 (0% 丟失),
往返行程的估計時間(以毫秒為單位):
??? 最短 = 0ms,最長 = 0ms,平均 = 0ms
先通后回網絡網絡不可達,奇怪,看看wireshark里的情況?
wireshark里顯示,arp -d? && ping 172.16.1.1時,pc的usb網卡發出路由表里下一跳地址mac地址的arp查詢消息,正常的設備響應,在第一步ping 的request發出和reply到達后,錯誤的設備發出arp的reply消息,后三包ping的request被發給錯誤的設備mac地址,錯誤設備發出網絡不可達消息。
錯誤的設備被接入同一廣播域?檢查ac的插線情況,發現eth3口和錯誤的設備相連,斷開后,正常、
C:\Windows\System32>arp? -d? &&? ping? 172.16.1.1
正在 Ping 172.16.1.1 具有 32 字節的數據:
來自 172.16.1.1 的回復: 字節=32 時間=1ms TTL=63
來自 172.16.1.1 的回復: 字節=32 時間<1ms TTL=63
來自 172.16.1.1 的回復: 字節=32 時間<1ms TTL=63
來自 172.16.1.1 的回復: 字節=32 時間<1ms TTL=63
172.16.1.1 的 Ping 統計信息:
??? 數據包: 已發送 = 4,已接收 = 4,丟失 = 0 (0% 丟失),
往返行程的估計時間(以毫秒為單位):
??? 最短 = 0ms,最長 = 1ms,平均 = 0ms
問題解決。
正常設備的172.16.81.1的路由和子網情況:
C?????? 127.0.0.0/8 is directly connected, lo
C?????? 172.16.1.0/24 is directly connected, vlan1.3
C?????? 172.16.81.0/24 is directly connected, vlan1.1
C?????? 192.168.205.0/24 is directly connected, vlan1.205
C?????? 192.168.206.0/24 is directly connected, vlan1.206
Interface???????????? IP-Address????? Status Protocol Description
vlan1.1?????????????? 172.16.81.1???? UP???? UP????? ?
vlan1.3?????????????? 172.16.1.206??? UP???? UP?????? 3????????????????? ?
vlan1.4093??????????? 169.254.139.71? DOWN?? DOWN??? ?
vlan1.4094??????????????????????????? DOWN?? DOWN??? ?
vlan1.205???????????? 192.168.205.2?? UP???? UP?????? 205??????????????? ?
vlan1.206???????????? 192.168.206.2?? UP???? UP?????? 206??????????????? ?
顯然有172.16.1.0/24的子網,而且是up態的。
錯誤設備的路由和子網
C?????? 127.0.0.0/8 is directly connected, lo
C?????? 172.16.81.0/24 is directly connected, vlan1.1
XOS#show int brief
The brief information of interface(s) under route mode:
Status: ADM - administratively down
Interface???????????? IP-Address????? Status Protocol Description
vlan1.1?????????????? 172.16.81.1???? UP???? UP
vlan1.4093??????????????????????????? ADM??? DOWN
vlan1.4094??????????????????????????? ADM??? DOWN
顯然,沒有172.16.1.0/24的子網,而且也沒有對應的缺省路由,所以收到目的ip是172.16.1.0/24的ping的request消息,會回目的網絡不可達。
結論:
同一廣播域里存在ip沖突,會響應對應ip的arp查詢,后到的arp響應會改寫mac地址緩存表,導致ping的request消息發給錯誤設備,而錯誤設備沒有對應網絡配置,因此會回網絡不可達消息。
大多數操作系統(如Linux、Windows)的ARP緩存會以最后收到的ARP響應為準,覆蓋之前的條目。這意味著MAC地址表會動態更新為最新響應的MAC地址。