對(duì)于諸如斷網(wǎng)、風(fēng)暴等災(zāi)難性的網(wǎng)絡(luò)故障,相信大多數(shù)管理員朋友能夠比較快速地定位并進(jìn)行排錯(cuò)。但網(wǎng)絡(luò)是復(fù)雜的,在運(yùn)維中經(jīng)常會(huì)遇到諸如網(wǎng)絡(luò)速度慢,時(shí)斷時(shí)續(xù),頻繁丟包等故障,相對(duì)來(lái)說(shuō),這些故障的排錯(cuò)是比較麻煩的。筆者做技術(shù)支持多年,看到運(yùn)維同仁在遇到此類故障時(shí)往往束手無(wú)策,此前屢試不爽的觀察法、隔離法、替代法不僅太費(fèi)時(shí)間,而且經(jīng)常讓大家走彎路,并且能否排除故障還是未知數(shù)。基于此,筆者和大家分享一些自己的經(jīng)驗(yàn),即通過(guò)捕獲網(wǎng)絡(luò)數(shù)據(jù)包并分析的手法對(duì)網(wǎng)絡(luò)故障進(jìn)行診斷,讓網(wǎng)絡(luò)排錯(cuò)從數(shù)據(jù)包分析開始。
1.數(shù)據(jù)包的捕獲方式
要進(jìn)行數(shù)據(jù)包分析,首先要在故障的網(wǎng)絡(luò)的特定節(jié)點(diǎn)捕獲數(shù)據(jù)包。因此,筆者先和大家談?wù)剶?shù)據(jù)包的捕獲方式。數(shù)據(jù)包的捕獲方式很多,最常見的是所謂的協(xié)議分析儀。它是針對(duì)OSI模型2-7層設(shè)計(jì)的,能夠在2-7層上進(jìn)行解碼,解釋450多種網(wǎng)絡(luò)協(xié)議,采用剝洋蔥方式,從低層開始,一直到第七層,甚至對(duì)ORACLE數(shù)據(jù)庫(kù)、SYBASE數(shù)據(jù)庫(kù)都可以進(jìn)行協(xié)議分析。協(xié)議分析儀有硬件和軟件相結(jié)合的專門產(chǎn)品,也有純軟件產(chǎn)品。數(shù)據(jù)包捕獲,當(dāng)然首選是專門的硬件分析儀。不過(guò)對(duì)于一般的網(wǎng)絡(luò),網(wǎng)絡(luò)管理員憑借自己的技術(shù)、經(jīng)驗(yàn),借助專門數(shù)據(jù)包捕獲軟件實(shí)施網(wǎng)絡(luò)排錯(cuò)已經(jīng)足夠。筆者通常使用的工具主要是Sniffer,此外微軟的Microsoft Network Monitor也不錯(cuò),而科來(lái)網(wǎng)絡(luò)分析工具相對(duì)容易上手,其圖形化的界面也比較形象。數(shù)據(jù)包捕獲和分析,大家靈活掌握其中的一兩款工具足矣。
2.數(shù)據(jù)包捕獲的工作原理
理解數(shù)據(jù)包捕獲的工作原理,對(duì)于管理員來(lái)說(shuō)是非常必要的,下面筆者就其工作原理做一簡(jiǎn)述。我們知道,通常在同一個(gè)網(wǎng)段的所有網(wǎng)絡(luò)接口都有訪問在物理媒體上傳輸?shù)乃袛?shù)據(jù)的能力,而每個(gè)網(wǎng)絡(luò)接口都還應(yīng)該有一個(gè)硬件地址,該硬件地址不同于網(wǎng)絡(luò)中存在的其他網(wǎng)絡(luò)接口的硬件地址,同時(shí),每個(gè)網(wǎng)絡(luò)還有廣播地址(代表所有的接口地址)。在正常情況下,一個(gè)合法的網(wǎng)絡(luò)接口應(yīng)該只響應(yīng)這樣的兩種數(shù)據(jù)幀:幀的目標(biāo)區(qū)域具有和本地網(wǎng)絡(luò)接121相匹配的硬件地址以及幀的目標(biāo)區(qū)域具有“廣播地址”。
在接收到上面兩種情況的數(shù)據(jù)包時(shí),網(wǎng)卡通過(guò)CPU產(chǎn)生一個(gè)硬件中斷。該中斷能引起操作系統(tǒng)注意,然后將幀中所包含的數(shù)據(jù)傳送給系統(tǒng)進(jìn)一步處理。而Sniffer就是一種能將本地網(wǎng)卡狀態(tài)設(shè)成混雜(Promiscuous)模式狀態(tài)的工具軟件,當(dāng)網(wǎng)卡處于這種“混雜”方式時(shí),該網(wǎng)卡具備對(duì)遭遇到的每一個(gè)幀都產(chǎn)生一個(gè)硬件中斷,以便提醒操作系統(tǒng)處理流經(jīng)該物理媒體上的每一個(gè)報(bào)文包(絕大多數(shù)的網(wǎng)卡具備Promiscuous方式的能力)。
3.協(xié)議分析儀的功能
了解協(xié)議分析儀的主要功能,以便管理員在特定情景中利用分析儀進(jìn)行數(shù)據(jù)捕獲和分析是非常有幫助的,筆者也做一概括。(1).分析從硬件分析儀中捕捉的數(shù)據(jù)包,具有完整的七層包捕捉、過(guò)濾和解碼能力。(2).實(shí)時(shí)監(jiān)測(cè)網(wǎng)絡(luò)利用率和誤碼率、幀大小分布、協(xié)議分布、最多發(fā)送者/接收者、對(duì)話矩陣、 VLAN流量分析、應(yīng)用程序響應(yīng)時(shí)間分析等。(3).智能專家故障分析、診斷功能在監(jiān)測(cè)實(shí)時(shí)流量時(shí)自動(dòng)發(fā)現(xiàn)錯(cuò)誤、快速指出問題所在并給出修改建議。(4).支持本地和遠(yuǎn)程網(wǎng)絡(luò)分析。(5)支持特殊的協(xié)議:Extreme EDP、ESRP以及Cisco CDP和VTP等。(6).停止并保存捕捉會(huì)話、發(fā)送一個(gè)SNMP陷阱、發(fā)送Email或?qū)ず敉ㄖ取?7).在日志文件中保存告警消息、啟動(dòng)一個(gè)應(yīng)用程序和過(guò)濾等。(8).協(xié)議分析儀上的功能延展就是加入網(wǎng)管功能、自動(dòng)網(wǎng)絡(luò)信息搜集功能等。
4.數(shù)據(jù)包分析排除網(wǎng)絡(luò)故障案例
通過(guò)上面的介紹,大家對(duì)網(wǎng)絡(luò)分析儀捕獲數(shù)據(jù)的方式,以及其工作原理功能有了足夠的了解。下面筆者列舉三個(gè)案例,再現(xiàn)用數(shù)據(jù)包分析排除網(wǎng)絡(luò)故障的過(guò)程。
案例一:交換機(jī)端口鎖死
(1).故障現(xiàn)象
交換機(jī)的某一端13聯(lián)接了一個(gè)HUB,HUB上面有DNS及WEB服務(wù)器。在沒有任何征兆的情況下,交換機(jī)的這一端口突然出現(xiàn)故障,端口上的所有設(shè)備不能聯(lián)網(wǎng)。
(2).故障檢查
、贀Q交換機(jī)另一個(gè)好的端口,約幾分鐘后重復(fù)上述故障。
、趹岩蛇B接交換機(jī)的HUB有物理故障,換了一個(gè)好的以后,過(guò)一段時(shí)間后故障仍然存在,可以確定不是HUB故障引起的。
③關(guān)掉交換機(jī)電源,重新加電后,原來(lái)出故障的端口恢復(fù)正常,但過(guò)一段時(shí)間后故障再次出現(xiàn)。由此判斷端口故障很可能是因某種原因鎖死,并非燒壞。依此,初步判斷故障是由DNS
或WEB服務(wù)器的硬件或軟件異常引起的。
④使用Sniffer協(xié)議分析儀接入該網(wǎng)段,測(cè)試后發(fā)現(xiàn),DNS通過(guò)HUB接入一個(gè)好的交換機(jī)端口后,很快產(chǎn)生了幾個(gè)廣播風(fēng)暴,之后交換機(jī)的端口就鎖死。廣播風(fēng)暴是造成交換機(jī)端121鎖
死的直接原因。
⑤通過(guò)解讀捕捉到的數(shù)據(jù)包內(nèi)容,可以看到,廣播風(fēng)暴產(chǎn)生的原因,是本地DNS(主)服務(wù)器,與一臺(tái)遠(yuǎn)程DNS(從)服務(wù)器之間產(chǎn)生了大量通信,通信內(nèi)容是遠(yuǎn)程DNS服務(wù)器向本地DNS服務(wù)器查詢一個(gè)主機(jī)的名字解析,而本地DNS服務(wù)器沒有設(shè)置該主機(jī)所在域的DNS服務(wù)器地址,從而造成異常的通信過(guò)程。
⑥從協(xié)議分析儀還可以看出,在1秒鐘內(nèi),2臺(tái)DNS之間有1155個(gè)這樣的包來(lái)回.這種數(shù)據(jù)包產(chǎn)生了一個(gè)廣播風(fēng)暴,造成了交換機(jī)端口鎖死。
(3).故障排除
將www.*.net(基于保密用*代替)所在域的DNS服務(wù)器的地址定義在本地DNS上,故障排除。
(4).排錯(cuò)總結(jié)
在這個(gè)例子中,遠(yuǎn)程DNS向本地DNS查詢www.*.net的地址解釋,本地DNS答復(fù)找不到以后,理論上遠(yuǎn)程DNS不應(yīng)再發(fā)出查詢請(qǐng)示,但由于軟件BUG的問題,造成了DNS系統(tǒng)異常,產(chǎn)生了一個(gè)廣播風(fēng)暴,使交換機(jī)出現(xiàn)了故障。
案例二:廣域網(wǎng)傳輸極慢
(1).故障現(xiàn)象
在DDN線路上,正常情況下Ping一個(gè)遠(yuǎn)端的IP,回包時(shí)間從三十幾毫秒到幾百毫秒。有一次回包時(shí)間達(dá)到3000~5000毫秒之間,遠(yuǎn)程訪問速度極慢。
(2).故障檢查
按筆者的經(jīng)驗(yàn),這種情況是由于DDN線路有大文件在傳輸?shù)木壒。將Sniffer協(xié)議分析儀接入廣域口,可以看到上行帶寬被占用了50%,下行帶寬被占用了近100%。再分析捕捉到的包內(nèi)容,發(fā)現(xiàn)大部分的包的交換是在地址192.128.96.23和192.3.54.133之間進(jìn)行,協(xié)議主要是HTTP。從一臺(tái)Pc瀏覽192.3.54.133,發(fā)現(xiàn)是一個(gè)個(gè)人網(wǎng)站,上面有大量游戲程序,192.128.96.23用戶正是使用了 NetAnts在該網(wǎng)頁(yè)上下載大量的游戲程序,造成了線路堵塞。
(3).故障排除
在路由器上用訪問控制列表將該個(gè)人游戲網(wǎng)站過(guò)濾,禁止任何用戶通過(guò)路由器對(duì)該網(wǎng)站進(jìn)行HTTP訪問,通信恢復(fù)正常。
案例三:局域網(wǎng)廣播風(fēng)暴故障
(1).故障現(xiàn)象
局域網(wǎng)任意兩臺(tái)主機(jī)之間互相PING時(shí),掉包非常嚴(yán)重,訪問各種服務(wù)器非常緩慢。
(2).故障檢查
、俨榭淳钟蚓W(wǎng)中心交換機(jī)的CPU使用率,競(jìng)高達(dá)99%(平時(shí)<10%),說(shuō)明其負(fù)載非常重。
、趯niffer接入網(wǎng)絡(luò)中,發(fā)現(xiàn)平均的帶寬利用率達(dá)20%(平時(shí)<5%),說(shuō)明網(wǎng)絡(luò)的的數(shù)據(jù)流量非常大。
、凼裁丛蛟斐闪巳绱司薮蟮牧髁?通過(guò)Sniffer捕捉數(shù)據(jù)包分析,可以明顯看到有一臺(tái)主機(jī)發(fā)出大量的IPX的數(shù)據(jù)包每秒大約1000個(gè)包,這顯然是不正常的。
、茉撝鳈C(jī)為何會(huì)發(fā)出IPX數(shù)據(jù)包呢?對(duì)數(shù)據(jù)包的詳細(xì)解碼發(fā)現(xiàn),該主機(jī)發(fā)出的都是SMB(ServerMessageBlock)協(xié)議的數(shù)據(jù)包,數(shù)據(jù)包的源地址和目的地址都相同,且為IPX地址,數(shù)據(jù)包的內(nèi)容是不斷地向網(wǎng)絡(luò)宣告該計(jì)算機(jī)名(HGF)。SMB協(xié)議用于實(shí)現(xiàn)局域網(wǎng)中計(jì)算機(jī)之間文檔、打印設(shè)備和其他計(jì)算機(jī)資源的共享,它可以用在TCP/IP協(xié)議之上,也可以用在IPX和NetBEUI之上。在SMB協(xié)議中,計(jì)算機(jī)為了訪問網(wǎng)絡(luò)資源,就需要了解網(wǎng)絡(luò)上存在的資源列表,這個(gè)機(jī)制稱為瀏覽,維護(hù)網(wǎng)絡(luò)中當(dāng)前資源列表的任務(wù)由網(wǎng)絡(luò)上的幾個(gè)特殊計(jì)算機(jī)完成的,這些計(jì)算機(jī)被稱為Browser。SMB 協(xié)議的Browser通過(guò)廣播方式了解當(dāng)前的網(wǎng)絡(luò)資源情況。由此判斷,該主機(jī)可能有基于IPX協(xié)議的一些應(yīng)用,且被當(dāng)作Browser。
⑤查找到主機(jī),發(fā)現(xiàn)只是一臺(tái)用于辦公,沒有任何復(fù)雜的應(yīng)用和程序。但在網(wǎng)絡(luò)協(xié)議處發(fā)現(xiàn)安裝了“IPX/SPX/NetBIOS兼容傳輸協(xié)議”,該協(xié)議的錯(cuò)誤配置使得主機(jī)被當(dāng)作SMB協(xié)議中的Browser,并不斷向外發(fā)出大量的廣播包,導(dǎo)致整個(gè)局域網(wǎng)的擁塞。
(3).故障排除
卸載該主機(jī)的“IPX/SPX/NetBIOS兼容傳輸協(xié)議”,經(jīng)20多分鐘后(廣播包在網(wǎng)絡(luò)中會(huì)存在一定時(shí)間),局域網(wǎng)恢復(fù)正常。
多掌握一種工具,在網(wǎng)絡(luò)排錯(cuò)中就會(huì)多一種選擇;诰W(wǎng)絡(luò)分析工具,通過(guò)網(wǎng)絡(luò)抓包,網(wǎng)絡(luò)協(xié)議分析的方法進(jìn)行排錯(cuò)的無(wú)疑是非常有效的,而且非常高效,這是其它傳統(tǒng)的技術(shù)方法所無(wú)法比擬的。希望網(wǎng)絡(luò)運(yùn)維的同仁們能夠盡快掌握這種方法,但愿本文能夠幫助到你。
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |