引言:鏡像技術是一門很底層的技術,一般用于實時網絡流量監控,是在芯片處進行處理和實現的。在使用鏡像技術后,交換機會將進出交換機端口的數據流量直接由芯片直接鏡像,并將數據流量直接由交換機端口輸出,并不會交給交換機系統處理后再由交換機端口輸出。將鏡像流量與交換機系統處理后的流量進行對比,就可以發現交換機系統存在的Bug。本文就向大家介紹通過鏡像抓包,抓出交換機系統Bug的操作過程。
筆者接到一個朋友求助,所在公司新建網絡使用華為S5700-28CEI-24S交 換機(該交換機于2012年2月生產)作為對上連通交換機。在進行系統和業務試運行時,發現交換機的上聯端口存在數據間歇性爆發現象。
從網管系統上看到該端口每隔7秒左右轉發一次大流量數據,然后接著7秒左右數據收發正常,這個現象一直循環重復出現,在網管系統中的流量波形圖如圖1所示。此外,在網絡中發現大量的廣播數據包。更為嚴重的是,這種現象在持續了近2個小時后,交換機會自動重啟,交換機重新啟動后又出現上述現象。又過了2小時,交換機又自動重啟,嚴重影響系統正常運行。登錄該交換機,使用display cpu-usage命令,發現交換機CPU使用率超過了72%。

圖1 網管系統流量波形圖
根據故障原因,筆者分析了造成該故障的可能原因。一是試運行的應用系統本身原因。應用系統本身存在設計問題時,數據存在間歇性地發送大量數據設計,從而導致交換機流量異常和重啟。二是病毒導致。網絡中存在木馬病毒,會周期性地觸發用于木馬病毒傳播的流量。三是網絡中存在廣播風暴。可能因為病毒或存在環路,網絡中存在大量的廣播包,造成網絡阻塞。四是交換機ISO存在Bug。當ISO存在Bug時,會對部分數據進行緩存,到了臨界點時,再一次性進行短時間內的瞬時轉發,當交換機無法處理大量的數據時,就會造成死機和重啟。
1.對應用系統服務器進行了流量監控統計。在應用系統服務器出入接口進行了流量統計,發現服務器進出流量波形圖基本處于平滑,每秒進出服務器的數據相差不大,不存在流量突變情況,排除了應用系統設計不足故障。
2.對網絡中所有的用戶終端進行了木馬病毒查殺。使用了最新的殺毒軟件對所有的用戶終端查殺了木馬病毒,雖存在有病毒,但并未發現會造成異常流量和廣播風暴的木馬病毒。
3.檢查了網絡鏈路。通過使用交換機環路檢測命令和對所有的鏈路節點進行檢查,沒有發現存在物理網絡環路。
4.抓包驗證。采用了全鏡像、輸入流量、輸出流量三種抓包方式進行流量統計。對上聯端口的進出流量進行了全鏡像抓包。在抓了3分鐘30秒后,發現流量傳輸波形比較平滑,沒有出現轉發的中斷和流量突發(如圖2)。
對上聯端口的接收流量進行了全鏡像抓包,并進行分析,抓包后的接收流量波形圖如圖3所示。可以看到,接收的流量波形圖是基本平滑的,其波峰不存在較大異變。
對上聯端口的發送流量進行了全鏡像抓包,并進行分析,抓包后的發送流量波形圖如圖4所示。可以看到,發送的流量波形圖存在較大異變,但其異變周期為10秒左右,而非7秒。通過抓包發現,在發送的流量中出現一些流量的峰值,但其異變峰值平均只有173Kbps,而在網管系統中出現的峰值平均值卻高達400kbps,看來發送的流量不是造成故障的主要原因,應該屬于正常現象。

圖2 交換機全鏡像流量波形圖

圖3 交換機端口接收鏡像流量波形圖

圖4 交換機端口發送鏡像流量波形圖
通過抓包,發現網絡中存在大量的廣播包,流量中的單播數據很少,跟日常的流量相比顯得怪異,流量的轉發大部分都為廣播包。后經過詢問得知,網管控制系統在設計的時候就采用的是全網廣播的形式進行數據的交互,因此產生大量的廣播包也屬正常。
此外,通過抓包還發現,無論采用哪種抓包方式,都可以看到流量是平滑的,沒有出現過流量的波動較大情況,也沒有出現流量轉發中斷的情況,這與網管軟件和交換機端口看到的流量統計情況完全不一樣。出現這種情況,基本可以判斷,這種現象應該是交換機系統存在Bug。
升級交換機系統。登錄華為官網,發現華為S5700系統交換機存在系統Bug,在Bug描述中,老版本系統在處理全網廣播的數據的時候會出現Bug,在網絡流量統計時存在一個計數Bug,即端口的統計數據包不是實時統計,而是過幾秒統計一次,而網管系統讀取的是交換機的端口信息,這樣就出現了每隔幾秒一次的波形圖。
在網站上下載了最新的交換機系統文件,對該交換機的系統進行了升級,升級完成后,又通過抓包了解到數據的轉發是正常的,是平滑的,沒有出現網管系統中的波形圖,網管系統中的流量波形圖也正常,交換機端口的流量統計也正常,故障排除。
交換機鏡像技術本身是一門很底層的技術,是在芯片級別實現的,也就是說使用該技術時,進出端口的數據流量會在進出系統處理之前就會對流量進行鏡像。
因此,通過鏡像我們可以看到流量在進出該端口的底層數據上是平滑的,而通過網管系統和交換機統計的流量不完全一致時,基本可以確定是交換機系統存在Bug。