同局域網計算機ping不通,該如何解決?
同一個局域網裡的兩個計算機A和B,都能ping得通計算機C,但是A和B互相ping 不通,回覆是“無法訪問主機”,匪夷所思啊。

當網絡發生故障時,相當於發生了刑事案件,偵探“亨特”前往案發現場。
偵探提取了故障代碼(ICMP Error Code),以及觀察:
1. ICMP Error Code = “ICMP HOST UNREACHABLE
2.  Host A (192.168.23.184/24) -----Gateway (192.168.23.1/24)   √
3.  Host B (192.168.23.83/24)  -----Gateway (192.168.23.1/24)   √  
4.  Host A (192.168.23.184/24) ----- Host B (192.168.23.83/24)    ×
5.  Host A ping Host B,Host A reply,  not Host B !!!
分析如下:
根據5,如果Host A可以獲取Host BMAC地址,Host A的Ping報文(ICMP Echo Request)就會從Host A物理接口發出,Host A就不會Reply 自己。
既然5發生了,含蓄地說明Host A無法獲取Host BMAC地址!
哪些情況會阻攔Host A獲取Host BMAC地址?
1. Host A、Host B接入交換機端口,交換機開啟了端口隔離(Port Isolation)。
2. Host A、Host B接入無線AP,AP開啟了端口隔離(Port Isolation)。
3. Host A開啟了個人電腦防火牆,阻攔任何主動入向的報文(Un-solicited Inbound Packet)。
4. Host B開啟了個人電腦防火牆,阻攔任何主動入向的報文(Un-solicited Inbound Packet)。
5. 以上種種情況的任意疊加。
解決方案1
如果是家庭用戶,差不多就是3、4,分別將Host A、Host B的個人防火牆permit ARP、ICMP。
問題立馬就來了,為何HostA、HostB可以Ping 通網關?
因為,網關沒有開啟防火牆。
所以,可以接收ARP Request,自然可以回覆ARP Reply。
所以,可以接收ICMP Echo Request,自然可以回覆ICMP Echo Reply。
為了驗證是否HostAHostB開啟了防火牆,只要在網關(192.168.23.1/24)上是否可以Ping通HostAHostB
Yes,說明沒有開啟。
No,說明開啟。
如果HostAHostB沒有開啟防火牆,那麼就是上文的1、2、5。即二層橋接設備(二層交換機/AP)開啟了端口隔離。阻斷了HostAHostB之間的ARP Request/Reply
如果HostA、HostB分別在ARP Table輸入對方的MAC地址,是否可以Ping通對方?
當然不可以。防火牆的入向policy = deny any any
但是故障代碼就變了,變成了ICMP Error Code = “ICMP TIMEOUT” 。
因為ICMP報文可以發出,只是被接收方的防火牆丟了,造成Timeout
修改防火牆之後的入向policy:
  • Permit arp any self
  • Permit icmp any self
  • deny any any

以上是整個破案過程。
最後,端口隔離Port Isolation)是如何實現的?
個人猜測是通過QINQ實現的。QINQ= 802.1Q IN 802.1Q的縮寫。
即使用2個VLAN TAG,1個VLAN Tag對應一個802.1Q頭。
一個簡單例子:
VLAN10沒有開啟端口隔離
主機A、主機B、網關都在VLAN 10裡,三者可以自由交換ARP Request 、Reply,以及任何Packet。這個就是通常所見。
VLAN10開啟端口隔離
主機A、主機B、網關都在VLAN 10裡。為了阻隔主機A、B之間的通信
主機A任何進入交換機的packet,添加2個802.1Q,分別是:
802.1Q (4096) + 802.1Q (10)
主機B任何進入交換機的packet,添加2個802.1Q,分別是:
802.1Q (4095) + 802.1Q (10)
網關回復主機A的Packet,添加2個802.1Q,分別是:
802.1Q (4096) + 802.1Q (10)
網關回復主機B的Packet,添加2個802.1Q,分別是:
802.1Q (4095) + 802.1Q (10)
網關在VLAN 10發出的廣播報文,只需要1個802.1Q,即
802.1Q (10)
其實,就是802.1Q Tunnel的應用。
還記得VLAN的三種工作模式(Mode)?
  • Access Mode
  • Trunk Mode
  • Tunnel Mode
對,就是Tunnel Mode實現了端口隔離技術。
推薦閱讀,排名不分先後。
文章1
文章1
文章3