單位同事因為工作原因,每個年度都會互相搬遷一次辦公室位置。正常情況下,同事辦公室的更換,無非就是缺一條網線或者網線不夠長之類的小問題。
但是,今年在換辦公室期間的某天中午,突然出現網絡癱瘓,具體表現為:辦公VLAN內的客戶端與二級交換機和核心交換機的網關無法通訊,大部分其他的VLAN也同時斷線,如機房的VLAN下客戶機Ping二級交換機和核心交換機,都是time out。僅有一個所有物理端口都在核心交換機上的VLAN未受影響,該VLAN是給服務器用的。
在這種情況下,只有連接在核心交換機上的那些服務器網絡是通的,其他的二級交換機以及客戶端都無法通信了,基本上宣告整個網絡癱瘓。
初看整個網絡癱瘓,似乎無從著手,冷靜下來一想,既然網絡都是匯聚到核心交換機而且直連到核心交換機的服務器是通信正常的,那就可以從核心交換機s8610入手。于是,通過服務器上的telnet程序進入核心交換機,利用Ping命令測試它與二級交換機以及各VLAN網關的通信情況,發現核心交換機與二級交換機都不通,與VLAN網關通信很差。
這 時,在telnet終 端上不斷跳出類似NFPP_ARP_GRARD DOS-DETECTED 以及DOS-ATTACKED的提示信息,所有的提示信息都指向核心交換機上的一個光纖端口,而這條光纖連接的是某一幢辦公樓的二級交換機。通過核心交換機由于網絡問題已經沒法與這幢辦公樓的二級交換機通信,當然也無法用telnet登錄了。
確定了可能出問題的二級交換機位置后,趕赴該樓的分機房實地查看,那里二級交換機有5個,接入方式是4臺二級交換機接入到一臺s5750交換機,然后由s5750交換機通過光纖連接核心交換機。于是,在現場直接用銳捷的通信線通過Console口連接該樓的二級匯聚用的交換機s5750,這時要用到Windows的超級終端,Windows 7系統里沒有的話,可以到網上下載一個用。選擇比特率9600,進入交換機后,切換到Config模式還沒用命令查看,就已經跳出提示信息(如圖1)。根據提示信息,gi0/4端口有問題,查看物理連接后,發現該端口直連著一臺二級交換機,這時,范圍已經縮小到具體的一臺二級交換機。
通過Console口進入有問題的二級交換機后,用enable命令提升權限,然后用命令show interface count summary看到各端口的數據統計信息(如圖2),發現端口7和10的多播和廣播數據特別巨大,而且多播數據是廣播數據的很多倍,基本可以確定是這兩個端口的廣播風暴導致自己所在的VLAN網絡癱瘓。而且因為數據過大,導致核心交換機擁堵,影響其他VLAN的通信。
在利用技術手段檢測的同時,同步使用物理斷線的方式來判斷分析的正確性并及時緩解網絡擁堵問題。首先在檢測出可能出問題的核心交換機上的光纖端口后,先把該端口的光纖拔掉,一來可以快速驗證核心交換機和其他二級交換機的通信狀況是否好轉,二來可以緩解網絡擁堵的問題,斷開一路,先讓其他的網絡暢通。

圖1 二級匯聚交換機中的警告信息

圖2 二級交換機的端口數據信息
在找到二級交換機上可能有問題的端口的時候,也是先把這兩個端口連接的網線拔掉,然后在這臺二級交換機上接一臺筆記本,設置成與它同一網段,測試通信是否正常。這樣就可以及時驗證分析的正確性。
通過上述分析,已經確定問題出在某個二級交換機上的兩個端口,在拔掉這兩個端口網線的前提下,將核心交換機上分析時拔掉的光纖接上。這時,通過telnet登錄核心交換機,測試它與各VLAN網關的通信,都正常了。
至此,大部分二級交換機與核心交換機的通信都恢復了,但是發現一個機房的二級交換機與核心交換機上的VLAN網關不通,但核心交換機已經沒有擁堵,Ping各VLAN網關都是通的。后來,通過重啟機房二級交換機,一切恢復正常。
通過查端口分配表以及實地查看,最后發現出問題的二級交換機上的兩個端口處于同一個辦公室的墻上相鄰位置,那個辦公室的老師在接電腦的過程中,沒注意,把一條網線的兩頭分別插入了墻上的兩個口,導致網絡廣播風暴,引起網絡癱瘓。
網絡癱瘓是網管工作中經常會遇到的問題,有多種的可能性,經過這次事件,對于解決這類問題,有以下感悟。
在網絡癱瘓的時候,作為管理人員應該沉著冷靜,找準切入點,一般可以從核心上查起,逐層深入。用好交換機提供的命令,如查看端口的數據包統計信息等。必要時,用簡單的插拔線路的方式來驗證自己的判斷,這里沒有用命令的方式來開關端口,一來插拔比較方便,二來當問題解決后直接插上網線或光纖即可,不用再次登錄交換機操作。
當問題已經排除,而網絡依舊有問題的時候,尤其是二級交換機經過網絡擁堵后(已經解決了引起擁堵的問題)一直網絡不通,可以嘗試重新啟動。
網絡問題大部分是人為原因造成的,要注重使用人員的安全培訓,包括不亂接線路、不私接路由器、注意電腦病毒防護、系統補丁安裝等。
如果資金允許的話,還是應該配專業的網管軟件,這樣在軟件系統里就可以發現問題所在,并及時處理,省去了一層層去排查的時間。