引言:鏡像技術(shù)是一門很底層的技術(shù),一般用于實(shí)時(shí)網(wǎng)絡(luò)流量監(jiān)控,是在芯片處進(jìn)行處理和實(shí)現(xiàn)的。在使用鏡像技術(shù)后,交換機(jī)會(huì)將進(jìn)出交換機(jī)端口的數(shù)據(jù)流量直接由芯片直接鏡像,并將數(shù)據(jù)流量直接由交換機(jī)端口輸出,并不會(huì)交給交換機(jī)系統(tǒng)處理后再由交換機(jī)端口輸出。將鏡像流量與交換機(jī)系統(tǒng)處理后的流量進(jìn)行對(duì)比,就可以發(fā)現(xiàn)交換機(jī)系統(tǒng)存在的Bug。本文就向大家介紹通過鏡像抓包,抓出交換機(jī)系統(tǒng)Bug的操作過程。
筆者接到一個(gè)朋友求助,所在公司新建網(wǎng)絡(luò)使用華為S5700-28CEI-24S交 換機(jī)(該交換機(jī)于2012年2月生產(chǎn))作為對(duì)上連通交換機(jī)。在進(jìn)行系統(tǒng)和業(yè)務(wù)試運(yùn)行時(shí),發(fā)現(xiàn)交換機(jī)的上聯(lián)端口存在數(shù)據(jù)間歇性爆發(fā)現(xiàn)象。
從網(wǎng)管系統(tǒng)上看到該端口每隔7秒左右轉(zhuǎn)發(fā)一次大流量數(shù)據(jù),然后接著7秒左右數(shù)據(jù)收發(fā)正常,這個(gè)現(xiàn)象一直循環(huán)重復(fù)出現(xiàn),在網(wǎng)管系統(tǒng)中的流量波形圖如圖1所示。此外,在網(wǎng)絡(luò)中發(fā)現(xiàn)大量的廣播數(shù)據(jù)包。更為嚴(yán)重的是,這種現(xiàn)象在持續(xù)了近2個(gè)小時(shí)后,交換機(jī)會(huì)自動(dòng)重啟,交換機(jī)重新啟動(dòng)后又出現(xiàn)上述現(xiàn)象。又過了2小時(shí),交換機(jī)又自動(dòng)重啟,嚴(yán)重影響系統(tǒng)正常運(yùn)行。登錄該交換機(jī),使用display cpu-usage命令,發(fā)現(xiàn)交換機(jī)CPU使用率超過了72%。
圖1 網(wǎng)管系統(tǒng)流量波形圖
根據(jù)故障原因,筆者分析了造成該故障的可能原因。一是試運(yùn)行的應(yīng)用系統(tǒng)本身原因。應(yīng)用系統(tǒng)本身存在設(shè)計(jì)問題時(shí),數(shù)據(jù)存在間歇性地發(fā)送大量數(shù)據(jù)設(shè)計(jì),從而導(dǎo)致交換機(jī)流量異常和重啟。二是病毒導(dǎo)致。網(wǎng)絡(luò)中存在木馬病毒,會(huì)周期性地觸發(fā)用于木馬病毒傳播的流量。三是網(wǎng)絡(luò)中存在廣播風(fēng)暴??赡芤?yàn)椴《净虼嬖诃h(huán)路,網(wǎng)絡(luò)中存在大量的廣播包,造成網(wǎng)絡(luò)阻塞。四是交換機(jī)ISO存在Bug。當(dāng)ISO存在Bug時(shí),會(huì)對(duì)部分?jǐn)?shù)據(jù)進(jìn)行緩存,到了臨界點(diǎn)時(shí),再一次性進(jìn)行短時(shí)間內(nèi)的瞬時(shí)轉(zhuǎn)發(fā),當(dāng)交換機(jī)無法處理大量的數(shù)據(jù)時(shí),就會(huì)造成死機(jī)和重啟。
1.對(duì)應(yīng)用系統(tǒng)服務(wù)器進(jìn)行了流量監(jiān)控統(tǒng)計(jì)。在應(yīng)用系統(tǒng)服務(wù)器出入接口進(jìn)行了流量統(tǒng)計(jì),發(fā)現(xiàn)服務(wù)器進(jìn)出流量波形圖基本處于平滑,每秒進(jìn)出服務(wù)器的數(shù)據(jù)相差不大,不存在流量突變情況,排除了應(yīng)用系統(tǒng)設(shè)計(jì)不足故障。
2.對(duì)網(wǎng)絡(luò)中所有的用戶終端進(jìn)行了木馬病毒查殺。使用了最新的殺毒軟件對(duì)所有的用戶終端查殺了木馬病毒,雖存在有病毒,但并未發(fā)現(xiàn)會(huì)造成異常流量和廣播風(fēng)暴的木馬病毒。
3.檢查了網(wǎng)絡(luò)鏈路。通過使用交換機(jī)環(huán)路檢測(cè)命令和對(duì)所有的鏈路節(jié)點(diǎn)進(jìn)行檢查,沒有發(fā)現(xiàn)存在物理網(wǎng)絡(luò)環(huán)路。
4.抓包驗(yàn)證。采用了全鏡像、輸入流量、輸出流量三種抓包方式進(jìn)行流量統(tǒng)計(jì)。對(duì)上聯(lián)端口的進(jìn)出流量進(jìn)行了全鏡像抓包。在抓了3分鐘30秒后,發(fā)現(xiàn)流量傳輸波形比較平滑,沒有出現(xiàn)轉(zhuǎn)發(fā)的中斷和流量突發(fā)(如圖2)。
對(duì)上聯(lián)端口的接收流量進(jìn)行了全鏡像抓包,并進(jìn)行分析,抓包后的接收流量波形圖如圖3所示。可以看到,接收的流量波形圖是基本平滑的,其波峰不存在較大異變。
對(duì)上聯(lián)端口的發(fā)送流量進(jìn)行了全鏡像抓包,并進(jìn)行分析,抓包后的發(fā)送流量波形圖如圖4所示??梢钥吹剑l(fā)送的流量波形圖存在較大異變,但其異變周期為10秒左右,而非7秒。通過抓包發(fā)現(xiàn),在發(fā)送的流量中出現(xiàn)一些流量的峰值,但其異變峰值平均只有173Kbps,而在網(wǎng)管系統(tǒng)中出現(xiàn)的峰值平均值卻高達(dá)400kbps,看來發(fā)送的流量不是造成故障的主要原因,應(yīng)該屬于正?,F(xiàn)象。
圖2 交換機(jī)全鏡像流量波形圖
圖3 交換機(jī)端口接收鏡像流量波形圖
圖4 交換機(jī)端口發(fā)送鏡像流量波形圖
通過抓包,發(fā)現(xiàn)網(wǎng)絡(luò)中存在大量的廣播包,流量中的單播數(shù)據(jù)很少,跟日常的流量相比顯得怪異,流量的轉(zhuǎn)發(fā)大部分都為廣播包。后經(jīng)過詢問得知,網(wǎng)管控制系統(tǒng)在設(shè)計(jì)的時(shí)候就采用的是全網(wǎng)廣播的形式進(jìn)行數(shù)據(jù)的交互,因此產(chǎn)生大量的廣播包也屬正常。
此外,通過抓包還發(fā)現(xiàn),無論采用哪種抓包方式,都可以看到流量是平滑的,沒有出現(xiàn)過流量的波動(dòng)較大情況,也沒有出現(xiàn)流量轉(zhuǎn)發(fā)中斷的情況,這與網(wǎng)管軟件和交換機(jī)端口看到的流量統(tǒng)計(jì)情況完全不一樣。出現(xiàn)這種情況,基本可以判斷,這種現(xiàn)象應(yīng)該是交換機(jī)系統(tǒng)存在Bug。
升級(jí)交換機(jī)系統(tǒng)。登錄華為官網(wǎng),發(fā)現(xiàn)華為S5700系統(tǒng)交換機(jī)存在系統(tǒng)Bug,在Bug描述中,老版本系統(tǒng)在處理全網(wǎng)廣播的數(shù)據(jù)的時(shí)候會(huì)出現(xiàn)Bug,在網(wǎng)絡(luò)流量統(tǒng)計(jì)時(shí)存在一個(gè)計(jì)數(shù)Bug,即端口的統(tǒng)計(jì)數(shù)據(jù)包不是實(shí)時(shí)統(tǒng)計(jì),而是過幾秒統(tǒng)計(jì)一次,而網(wǎng)管系統(tǒng)讀取的是交換機(jī)的端口信息,這樣就出現(xiàn)了每隔幾秒一次的波形圖。
在網(wǎng)站上下載了最新的交換機(jī)系統(tǒng)文件,對(duì)該交換機(jī)的系統(tǒng)進(jìn)行了升級(jí),升級(jí)完成后,又通過抓包了解到數(shù)據(jù)的轉(zhuǎn)發(fā)是正常的,是平滑的,沒有出現(xiàn)網(wǎng)管系統(tǒng)中的波形圖,網(wǎng)管系統(tǒng)中的流量波形圖也正常,交換機(jī)端口的流量統(tǒng)計(jì)也正常,故障排除。
交換機(jī)鏡像技術(shù)本身是一門很底層的技術(shù),是在芯片級(jí)別實(shí)現(xiàn)的,也就是說使用該技術(shù)時(shí),進(jìn)出端口的數(shù)據(jù)流量會(huì)在進(jìn)出系統(tǒng)處理之前就會(huì)對(duì)流量進(jìn)行鏡像。
因此,通過鏡像我們可以看到流量在進(jìn)出該端口的底層數(shù)據(jù)上是平滑的,而通過網(wǎng)管系統(tǒng)和交換機(jī)統(tǒng)計(jì)的流量不完全一致時(shí),基本可以確定是交換機(jī)系統(tǒng)存在Bug。