真兇何在 七天追查網絡癱瘓故障
山東某大型集團,網絡突然出現大面積癱瘓故障,并導致企業多天業務無法正常運轉。此企業系統工程師在七天的晝夜追查中,終于查出是交換機環路問題引起的,但故障真兇又是什么呢?我們又需要從中反思什么呢?
我們單位用SDH設備在山東省東部縣市之間組了一個環網,除了傳輸單位內部的辦公網(主要是互聯網)外,也傳輸其它單位的一些專網。
即SDH設備負責提供傳輸通道,交換機負責各個網絡業務的接入,這樣網絡結構比較簡單明了,實際運行的狀態也是比較穩定的,但是最近一段時間,由于泗水所用的一臺連接用戶的交換機(不是核心的華為3528交換機)出現環路故障,造成整個企業的所有業務都受到了影響,在老總的強壓下,我們經過七個晝夜,終于查到了故障真兇,并解決了問題。
首戰失利:追查ARP攻擊無果
前一段時間,東環所在的曲阜經常有人反映說上網時經常出現丟包現象,聯想到最近局域網中經常出現的ARP地址欺騙病毒,我就向曲阜分管網絡的技術人員介紹了一下排查局域網中ARP地址欺騙病毒的方法,希望通過找到并解決感染ARP地址欺騙病毒的機器來解決丟包的問題,結果,曲阜那邊還沒有查出結果,泗水那邊也反映上網時有嚴重的丟包,我也向泗水的技術人員介紹了排查局域網中ARP地址欺騙病毒的方法,結果泗水的同事很快的在局域網中就發現了感染病毒的機器,捎帶著還發現了一個問題,即由于前幾天下雨打雷,單位中有幾臺連接用戶的交換機都出現若干端口損壞的情況。
由于泗水與曲阜的故障現象極為相似,所以我們也判斷曲阜的丟包除了由于病毒的原因外,還有可能是交換機由于雷擊出現了故障,但是這些猜想都需要等到下星期正式工作日的時候才能得出結果,因為雙休日人員不在班上不好查。但是在星期天的時候,另外一個客戶Q反映故障的電話讓我們重新認識到故障的嚴重性,這是我們為該客戶在濟寧至曲阜間開通了一個專網,我先用圖示說明一下網絡結構(由于SDH可以視為透明傳輸的通道,所以在圖中只畫交換機的組網),如圖2所示,
#p#
嫌疑初現:VLAN存在環路
根據以前我們對于VLAN的理解,每個VLAN都是一個獨立的廣播域,可以有效防止VLAN之間的互相影響,但是這次Q客戶的專網也反映有頻繁的丟包發生,他們的網絡出現病毒的機率要少的多,難道一個VLAN發生故障,會影響另外一個VLAN?帶著這個疑問,我們咨詢了華為公司交換機方面的技術人員,得到華為交換機有如下特性:
當系統發現Trunk或Hybrid端口上某個VLAN中的端口被環回時,則將該Trunk或Hybrid端口處于受控工作狀態,同時刪除該端口對應的MAC地址表項。
根據華為工程師的描述,我們登錄到交換機上,查看華為3552交換機(即位于濟寧的核心交換機)上查看日志文件,果然發現了大量的告警信息,如下所示:
%Jul 21 11:11:38 2007 ZXJF_3552 DRVNI/5/LOOP BACK:
Loopback does exist on Ethernet0/2 vlan 114, please check it
%Jul 21 11:12:09 2007 ZXJF_3552 DRVNI/5/LOOP BACK:
Loopback does exist on Ethernet0/2 vlan 114, please check it
這就明確的告訴我們,是泗水上互聯網的那個VLAN存在環路,并在濟寧的第2個網口(即連接東環的那個網口)上檢測到該VLAN上有環路的存在,而且據我們對華為交換機的觀察,當檢測到環路存在時,TRUNK端口會斷一下,而這個端口就是位于濟寧3552交換機的2口,也就是連接東環的那個端口,這個端口上包括東環上所有的業務,當這個端口斷一下的時侯,整個東環的所有業務也都會跟著斷一下,這也就是所有的用戶都會感覺到丟包的原因了。
接著我們又登錄到泗水的交換機上,也發現類似的告警:
%Jul 22 15:43:56 2007 sishui-3528 DRV_NI/5/LOOP BACK:
Loopback does exist on port 24 vlan 114, please check it
%Jul 22 15:45:59 2007 sishui-3528 DRV_NI/5/LOOP BACK:
Loopback does exist on port 24 vlan 114, please check it
這又明白無誤的告訴我們是泗水交換機的第24口存在環路,下面就是我們在泗水查找故障點的過程。#p#
立案追查:分步排除環路
據我們以前的經驗,交換機上存在環路可能是由于線路上的斷路造成的,比如一根網線有8根金屬線組成,如果其中的任何兩根連在一起了,就會形成短路,從而造成交換機上面的環路,還是一種就更簡單了,把一根網線插在同一個交換機的兩個端口,一個完美的環路就形成了,嚴重的話,整個局域網就一下子癱瘓掉了。是不是泗水所帶的用戶線路由于雷擊造成了線路的短路,從而造成了交換機的環路呢?
這個結構也不復雜,當時我們思路是定位在查找具體是交換機B及交換機C上面的哪個端口存在環路,采用如下方式查找(這時要先把華為3528交換機1口(即向上的級聯口)的網線撥下來,防止查找故障的過程對上級的網絡產生影響):
1、將交換機B至交換機C的級聯的網線斷掉,這時沒有環路。
2、保持交換機B與C的斷開狀態,再將華為3528交換機至交換機B級聯的網線插到交換機C上,這時有環路產生,說明是交換機C上面的端口存在環路。#p#
誰才是幕后真兇?雷擊!
那么再判斷是交換機C上面的哪個端口存在環路,其實也有兩個方案,但是當時我們有個同事一股腦把所有連接的用戶的網線全部撥下來,仍然在華為3528交換機上檢測到有環路出現,這時我們對于故障的判斷就變成了可能是交換機本身就存在環路,而不是交換機上面的端口存在環路。
這時我們仔細觀察交換機的狀態,發現即使在不插任何網線的狀態下,交換機上面仍然有幾個端口的指示燈是亮的,到此時,我們確定判定此交換出現了環路故障。找到了故障點,更換了交換機C,故障就排除了。最近這幾天不時的登錄到華為交換機上查看日志文件,沒有發現再有環路告警產生。
問題解決了,但這個問題卻影響了公司幾天正常業務,造成了無形的巨大損失。這么嚴重的問題,到底是因為什么原因造成的呢?我們不能不找出幕后真兇。
最基本的是交換機質量不好或老化,導致機器回路,但這可能性很小,因為這個華為交換機剛買不到一年,而交換機本身回路的可能性微乎其微。
我們突然想到了這個細節:泗水的同事很快的在局域網中就發現了感染病毒的機器,捎帶著還發現了一個問題,即由于前幾天下雨打雷,單位中有幾臺連接用戶的交換機都出現若干端口損壞的情況。
有這樣的可能:雷擊不僅打交換機的端口打壞了,它還將交換機的內部電路擊穿,從而導致交換機回路。 從當前的情況看,真兇基本上可以確定是雷擊!#p#
真兇審查:它會影響整個網絡!
本來文章到這兒就可以結尾了,但是最近發生的一次故障又讓我們對于交換機本身故障產生的故障對于整個局域網的危害產生了更深刻的認識。我們手頭上有一臺舊的交換機,好長時間沒用了,正好最近需要臨時擴展一個網絡,就拿出來想試一下。
當時我們辦公室是連的互聯網(即外網),找了一個可以上網的網線,將其插到這臺交換機上,再用一臺筆記本接到這臺交換機上,看能不能上網,發現不能上網,但是很快的其它屋里面的同事就打電話過來反映說他們屋里上不去網了,這時我們才意識到可能是由于這臺交換機的原因引進的其它層里面的同事上網故障,這時重新我們這個樓層的交換機已經解決不了問題了,又重啟的核心三層交換機才解決了問題。
事后我們回憶起來,原來這臺交換機也是由于雷擊以后出現故障,當時也只是以為是損壞了幾個端口,想不到是整機都有問題。這還好是我們只影響了外網,如果將這臺交換機直接接入到要擴展的網絡(這可是一個很重要的內網啊),那問題可嚴重了。
這兩起事件讓我們對于由于雷擊對交換機的損壞有了新的認識,即會使交換機本身就產生環路,從而對于整個網絡產生嚴重的影響,如何有效的預防此類問題的產生是我們日后工作中需要重點解決的問題。
【編輯推薦】