單位局域網內劃分有多個 VLAN,兩 臺思科核心層交換機運行HSRP協議互為熱備,增強網絡的健壯性。每個VLAN有三個網關,分別為虛擬網關、主網關、備網關。核心交換機上聯防火墻接入Internet。網絡結構如圖1所示。
VLAN20內主機PC1無法上網,同為VLAN20的主機PC2、PC3卻可以正常上網。
主要考慮有以下五種可能導致PC1訪問外網失敗。
1.物理線路有問題。
2.交換機端口Down掉。
3.防火墻是否擋住。

圖1 網絡結構
4.DNS服務器解析是否正常。
5.主機獲得網關的MAC地址是否正確。
到現場后發現,PC1的本地連接并沒有斷開,查看其IP及網關地址為X.X.X.126。進入cmd,ping X.X.126是通的。排除了上述1、2點的猜測。
查看可以上網的PC2、PC3的DNS地址為202.102.152.3,和 PC1的相同,說明DNS解析是沒有問題的。排除了第3點。
查看PC2、PC3的網關地址,發現一個為X.X.X.124,另一個為X.X.X.125。將PC3的網關地址設置為其中任何一個均可以上網,唯獨設置為X.X.X.126不可以上網。后來登錄防火墻檢查配置,并沒有禁止PC1訪問外網的配置。
于是就把注意力集中在第五點上,PC1網關地址X.X.X.126對應的MAC地址是否正確。
1.查看PC1獲得網關的MAC地址。
打開PC1,進入cmd,輸入arp -a,得到如下輸出:

PC1獲得X.X.X.126網關對應的MAC地址為8c-dc-d4-9e-20-e7。
2.登錄核心交換機查看MAC地址表,如圖2所示,發現VLAN2網關地址X.X.X.126對應的MAC地址為0000.0c07.ac14
至此得出初步的結論,PC1獲取了錯誤的網關MAC地址導致無法上網。
通過使用Wireshark軟件對VLAN2進行了抓包分析,很快發現了異常記錄(注意帶線框的記錄)如圖3所示。
在圖3中,第一條線框:X.X.X.120的主機進行ARP廣播,它想知道X.X.X.126網關的MAC地址。

圖2 登錄交換機查看MAC地址表

圖3 對VLAN2抓包結果
第二條線框:MAC地址為8c:dc:d4:9e:20:e7主機立即回應X.X.X.126網關的MAC地址是它自己。
第三條線框:真正的網關回應了MAC地址,可惜為時已晚。
通過抓包分析,明確了PC1無法上網的原因是VLAN20內某臺主機中了ARP病毒,不斷發布錯誤的網關MAC地址而引起的。
最后,登錄接入交換機,通過show ip arp命令查找MAC地址為8c:dc:d4:9e:20:e7所在的交換機端口,通過shutdown命令關閉端口斷開與中毒主機的連接。
1.由于中毒主機的MAC地址沒有登記使用人,只能先在接入層交換機關閉端口。查找中毒主機用了很長時間,說明平時要注意加強對基礎運維信息的收集,遇到問題才可以很快定位。
2.核心交換機通過HSRP協議互為熱備,每個VLAN設置一虛擬網關,每臺交換機相應VLAN接口分別設置網關,如果主交換機物理上斷開,備交換機就變為主的,這樣不會影響網絡的暢通。
對于 VLAN20,X.X.X.126就是那個虛擬網關,X.X.X.124、X.X.X.125分 別設置在各自交換機。
PC2、PC3可以設置X.124、X.125為網關正常上網,但是當設置X.X.X.124網關交換機壞了,設置X.124的內網機就會無法上網,125同理。設置虛擬網關X.126就沒事,除非兩臺交換機物理斷開。
本次故障是病毒引起的而非硬件故障,所以還是建議VLAN20內的內網機將網關設置為虛擬網關X.126。