通常這種看似簡單的故障實(shí)際上很難直接判斷其產(chǎn)生的原因,有時可能是網(wǎng)絡(luò)本身的問題,或是網(wǎng)絡(luò)應(yīng)用的問題,還有時可能與網(wǎng)絡(luò)或服務(wù)設(shè)備的配置有關(guān)。因此從哪里入手進(jìn)行測試變成關(guān)鍵問題。為了進(jìn)一步了解用戶網(wǎng)絡(luò)的整體情況,我們決定首先安裝一套美國福祿克公司的網(wǎng)絡(luò)監(jiān)測管理軟件,以便能獲得更多的網(wǎng)絡(luò)信息。這套軟件采用分布式結(jié)構(gòu),我們在用戶的各個網(wǎng)段內(nèi)分別安裝一個監(jiān)測站,用我們的筆記本電腦作為監(jiān)測控制臺與各監(jiān)測站通信,獲取信息并集中顯示(見圖二)。
圖一、網(wǎng)絡(luò)的結(jié)構(gòu)示意

圖二

從上述圖中,我們可以概括了解每個網(wǎng)段中都有哪些設(shè)備(服務(wù)器、交換機(jī)、路由器、RMON設(shè)備等)?這些設(shè)備是否出現(xiàn)了嚴(yán)重的問題(注意紅色的圓點(diǎn))?每個站點(diǎn)的流量情況是否有異常(柱狀圖中是否出現(xiàn)紅色的部分)?在確定沒有太大問題后,我們開始查看網(wǎng)段的詳細(xì)信息并找到了用戶抱怨的服務(wù)器,見圖三。

在沒有得到直接有價值的信息后,我們使用“交換路由追蹤”功能測試一下某一個客戶端到該服務(wù)器的傳輸鏈路情況,見圖四。從圖中我門可以看出該客戶機(jī)和問題服務(wù)器2正好連接在同一個Cisco交換機(jī)的端口3和端口5上。該交換機(jī)連接客戶機(jī)的端口3開啟了歷史記錄功能,可以方便地得到流量、廣播、沖突和錯誤方面的統(tǒng)計信息,圖中顯示該端口沒有任何網(wǎng)絡(luò)層的問題。而連接服務(wù)器的端口5則沒有啟動歷史記錄功能,因此無法得到服務(wù)器方面的統(tǒng)計數(shù)據(jù)。
問題的根源是不是在服務(wù)器這一邊?我們立即在圖一的3位置將Optiview便攜式網(wǎng)絡(luò)綜合協(xié)議分析儀接入服務(wù)器所在的網(wǎng)段。通過網(wǎng)絡(luò)搜索功能很快找到這臺Cisco交換機(jī)并查看連接服務(wù)器的交換機(jī)第5端口的流量情況,見圖五。發(fā)現(xiàn)該端口流量并不大,不應(yīng)該造成客戶端訪問慢的故障。轉(zhuǎn)而檢查端口錯誤情況也沒有發(fā)現(xiàn)錯誤的數(shù)據(jù)包,但是存在沖突的現(xiàn)象。
圖四、交換路由追蹤

圖五、第5端口的流量情況

圖六

這個異常情況引起了我們的注意,該端口只連接服務(wù)器唯一一個設(shè)備,怎么會有沖突呢?我們切換到交換機(jī)列表狀態(tài)進(jìn)一步檢查該端口的信息(見圖六)發(fā)現(xiàn)連接速率是10M/半雙工,而該交換機(jī)是支持全雙工連接方式的,有沒有可能是服務(wù)器和交換端口雙工不匹配的原因?在征得用戶同意后,我們斷開服務(wù)器與交換機(jī)的連線,串接進(jìn)去一個網(wǎng)絡(luò)萬用表進(jìn)行測試,得到的結(jié)果證實(shí)了我們的推測(見圖七)。
服務(wù)器的網(wǎng)卡工作在全雙工模式,而交換機(jī)端口自適應(yīng)功能失敗,使其只工作于半雙工模式,這樣就造成兩端的雙工模式不匹配,產(chǎn)生沖突錯誤。初步找到故障原因后,用戶臨時將服務(wù)器的網(wǎng)絡(luò)設(shè)定為半雙工模式后,我們同樣從服務(wù)器上拷貝一個30Mbytes的文件只需要十幾秒鐘,而且采用Optiview監(jiān)視也沒有發(fā)現(xiàn)沖突現(xiàn)象。問題得到確認(rèn),解決問題的方法竟如此簡單,只需將圖七中顯示的交換機(jī)的端口工作模式手工設(shè)置成全雙工的模式即可。
圖七、雙向箭頭顯示著全/半雙工的工作狀況

背景知識:
那么不匹配的雙工模式為什么會產(chǎn)生沖突,進(jìn)而影響整個網(wǎng)絡(luò)的數(shù)據(jù)傳輸呢?因?yàn)檫\(yùn)行全雙工的設(shè)備不遵從(帶沖突檢測的載波偵聽多路訪問)過程。如果全雙工設(shè)備有數(shù)據(jù)幀要發(fā)送,它就直接發(fā)送而不關(guān)心當(dāng)前是否在接收數(shù)據(jù)。此時,如果與其相連的一個半雙工設(shè)備恰巧也正在發(fā)送數(shù)據(jù),則必定發(fā)生沖突。遵從CSMA/CD的半雙工設(shè)備會立即發(fā)送一個阻塞信號,在退避延時時間過后,它將重新發(fā)送數(shù)據(jù)并引發(fā)網(wǎng)絡(luò)性能的下降。
如果交換機(jī)內(nèi)部開啟了SNMP或具有RMON功能,則會統(tǒng)計沖突數(shù)量并記錄在MIB庫中。當(dāng)我們接入Optiview網(wǎng)絡(luò)綜合協(xié)議分析儀后,通過其讀取交換機(jī)中MIB庫的信息就可發(fā)現(xiàn)沖突發(fā)生的歷史記錄,正是這一統(tǒng)計信息引導(dǎo)我們找到了困擾用戶很長時間的網(wǎng)絡(luò)故障。
經(jīng)驗(yàn)與總結(jié)
在排除比較復(fù)雜網(wǎng)絡(luò)的故障時,我們常常要通過多種的角度來測試和分析故障的現(xiàn)象確定故障點(diǎn),我們會采用自上(網(wǎng)管系統(tǒng))而下(現(xiàn)場測試)相結(jié)合的方法,還要采用理論和經(jīng)驗(yàn)相結(jié)合的技術(shù)背景。
在分析和解決互聯(lián)的網(wǎng)絡(luò)中訪問性能的問題時,我們通常有這么幾個分析的模型和方法:
?。保邔拥木W(wǎng)絡(luò)結(jié)構(gòu)分析模型方法:從網(wǎng)絡(luò)的七層結(jié)構(gòu)的定義和功能上逐一地進(jìn)行分析和排查,這時傳統(tǒng)的而且最基礎(chǔ)的分析和測試方法。
這里有自下而上和自上而下的兩種思路。自下而上:從物理層的鏈路開始檢測直到應(yīng)用。自上而下:從應(yīng)用協(xié)議中撲捉數(shù)據(jù)包,分析數(shù)據(jù)包統(tǒng)計和流量統(tǒng)計信息以獲得有價值的資料。
?。玻W(wǎng)絡(luò)連接結(jié)構(gòu)的分析方法:從網(wǎng)絡(luò)的連接構(gòu)成來看我們可以大致分成客戶端、網(wǎng)絡(luò)鏈路、服務(wù)器端三個模塊。
a) 在分析和檢測中故障可能來自客戶端的各種情況,客戶端也具備網(wǎng)絡(luò)的七層結(jié)構(gòu),也會出現(xiàn)這樣那樣的故障,從硬件到軟件,從驅(qū)動到應(yīng)用程序,從設(shè)置錯誤到病毒等等。所以在分析和測試客戶端的過程中要有大量的背景知識,有時PC的發(fā)燒經(jīng)驗(yàn)也會有所幫助。在實(shí)際的測試過程中可以在現(xiàn)場詢問客戶端的用戶,他們反映的問題是個性的還是共性的,這個問題會非常有助于決定對客戶端的進(jìn)一步檢測的決定。
b) 來自網(wǎng)絡(luò)鏈路的問題通常需要網(wǎng)管、現(xiàn)場測試儀、甚至是協(xié)議分析儀來幫助確定問題的性質(zhì)和原因。這個方面的問題分析要有堅實(shí)的網(wǎng)絡(luò)知識和實(shí)戰(zhàn)經(jīng)驗(yàn),有時實(shí)戰(zhàn)經(jīng)驗(yàn)會決定排除故障的時間。
c) 在分析服務(wù)器端的情況時更需要有網(wǎng)絡(luò)應(yīng)用方面的豐富知識,我曾經(jīng)排除過這樣的一個故障,最終定位在服務(wù)器上的數(shù)據(jù)庫參數(shù)設(shè)置上!要了解服務(wù)器的硬件性能及配置情況、系統(tǒng)性能及配置情況、網(wǎng)絡(luò)應(yīng)用及對服務(wù)器的影響情況。
?。常ぞ咝头治龇椒ǎ河袕?qiáng)大的各種測試工具和軟件,它們的自動分析和專家系統(tǒng)能快速的給出網(wǎng)絡(luò)的各種參數(shù)甚至是故障的分析結(jié)果,這對解決60%的常見網(wǎng)絡(luò)故障有效。
?。矗C合及經(jīng)驗(yàn)型分析方法:靠時間、錯誤與成功的積累,在大多數(shù)的網(wǎng)絡(luò)測試工程師的工作中都是采用這個方法,再結(jié)合網(wǎng)管和測試工具迅速定位網(wǎng)絡(luò)的故障。
本案例的分析中,我們首先要確定問題是否是共性的、然后試探確定問題是否發(fā)生再網(wǎng)絡(luò)鏈路上、有幸的是這個問題的測試過程就到這里結(jié)束了,否則不知要動用多少的腦筋和設(shè)備進(jìn)行更多的分析了。
通過這個典型案例不難看出,要快速有效地排查網(wǎng)絡(luò)故障,簡單依靠單一手段和測試設(shè)備是很難的,只有通過多種測試儀器和經(jīng)驗(yàn)的相互配合,采用排除法逐步縮小故障范圍才能最終查找出故障原因加以排除。