龔濤



摘要:如今隨著業務的發展、業務架構越來越復雜,承載業務系統運行的網絡規模越來越龐大。為保證業務系統安全、穩定運行,在業務訪問路徑中部署了大量網絡設備,每增加一段網絡路徑將會增大網絡延時、降低網絡性能,從而影響業務訪問質量。本文的目標是在網絡運維中建立網絡監控攝像頭,并對網絡傳輸全路徑部署監控,構建網絡全路徑性能監控體系,實現全路徑性能監控與分析定位。所涉及工作包括:選擇網絡流量分析的采集方式、建立網絡流量全路徑采集監控,建立智能化流量分析平臺、對全路徑流量采集智能分析及定位。
關鍵詞:流量采集;智能化分析;全路徑;丟包
前言
日常生活中,監控攝像頭是一個發現問題、定位問題的重要設備,公安人員通過大量的監控攝像頭追蹤犯罪嫌疑人的行蹤并實現精準定位、快速抓捕。同樣我們可以在網絡環境中建設一套全路徑部署的“網絡監控攝像頭”,智能化地分析網絡數據包的流向及傳輸狀態,實現快速定位故障點。
1 網絡運維的日常困境
基于SNMP的網管軟件主要針對基礎網絡設備性能、接口狀態、網絡鏈路通斷性進行監控,能夠反映基礎網元設備情況、基礎鏈路狀態,但是否對承載于網絡之上的業務交互質量造成影響卻無從知曉。在日常運維中常見的現象是網元設備性能正常、鏈路狀態正常,但某些業務系統卻無法正常訪問,并且往往需要花費大量的時間去進行故障定位。
2 全路徑流量采集
全路徑流量采集是指端到端報文所經過的所有網絡節點,我們在每個節點處部署流量采集設備,對該節點的報文進行全量捕獲,最后通過分析引擎對所有報文進行方法運算,繪制報文途經的所有網絡節點圖,此過程便是全路徑流量采集的過程。
全路徑性能監控的實現需要構建網絡流量分流網絡、網絡流量采集、自動分析引擎。
3 全路徑性能監控實踐
3.1 全路徑丟包分析
丟包的原因1:路由錯誤
網絡路徑錯誤也會導致數據包不能到達目的主機,如主機的默認路由配置錯誤,主機發出的訪問其他網絡的數據包會被網關丟棄。但此類丟包屬于正常情況下的丟包,是意料之中的,不會對網絡造成影響。
丟包的原因2:設備故障
設備故障主要是指設備硬件方面的故障,不包含軟件配置不當造成的丟包。如網卡是壞的,交換機的某個端口出現了物理故障,光纖收發器的電端口與網絡設備接口,或兩端設備接口的雙工模式不匹配。
發現一交換機端口的光纖模塊故障造成的丟包現象,該交換機在通信一段時間后死機,即不能通信,重啟后恢復正常。在經過一段時間觀察后發現,某光纖模塊存在問題,取一塊新的模塊替換,一切正常。
究其原因,交換機會對所有接收到的數據包進行CRC錯誤檢測和長度校驗,將檢查出有錯誤的包丟棄,正確的包轉發出去。但這個過程中有些有錯誤的包在CRC錯誤檢測和長度校驗中都均未檢測出錯誤,這樣的包在轉發過程中不會被發送出去,也不會被丟棄,它們將會堆積在動態緩存中,永遠無法發送出去,等到緩存中堆積滿了,就會造成交換機死機的現象。
最終結果是:數據包無法到達目的主機。
丟包的原因3:物理線路故障
發現廣域網線路時通時斷,發生這種情況時,有可能是線路出現故障,也可能是用戶方面的原因。為了分清是否是線路故障,可以做如下測試。
如果廣域網線路是通過路由器實現的,可以登錄到路由器,通過擴展ping向對端路由器廣域網接口發送大量的數據包進行測試。
如果線路是通過三層交換機實現,可在線路兩端分別接一臺計算機,并將IP地址分別設為本端三層路由交換機的廣域網接口地址,使用“ping 對端計算機地址 -t”命令進行測試。
如果上述測試沒有發生丟包現象,則說明線路運營商提供的線路是好的,引起故障的原因在于用戶自身,需要進一步查找。
如果上述測試發生丟包現象,則說明故障是由線路供應商提供的線路引起的,需要與線路供應商聯系盡快解決問題。
由物理線路引起的丟包現象還有很多,如光纖連接問題,跳線沒有對準設備接口,雙絞線及RJ-45接頭有問題等。另外,通信線路受到隨機噪聲或者突發噪聲造成的數據報錯誤,射頻信號的干擾和信號的衰減等都可能造成數據包的丟失。我們可以借助網絡測試儀來檢查線路的質量。
丟包的原因4:網絡擁塞
網絡擁塞造成丟包率上升的原因很多,主要是路由器資源被大量占用造成的。
如果發現網速慢,并且丟包率呈現上升的情況,這時應該show process cpu和show process mem,一般情況下發現IP input process占用過多的資源。接下來可以檢查fast switching在大流量外出端口是否被禁用,如果是,則需要重新使用。
再看一下Fast switching on the same interface是否被禁用,如一個接口配有多個網段并且這些網段間流量很大時,路由器工作在process-switches方式,這種情況下要在接口上執行命令“enable ip route-cache same-interface”。
接下來,用show interfaces和show interfaces switching命令識別大量包進出的端口。一旦確認進入端口后,打開IP accounting on the outgoing interface看其特征,如果是攻擊,源地址會不斷變化但是目的地址不變,可以用命令“access list”暫時解決此類問題(最好在接近攻擊源的設備上配置),最終解決辦法是停止攻擊源。
應用中遇到的造成網絡擁塞的情況還有很多,如大量的UDP流量,可以用解決spoof attack的步驟解決此問題。大量的組播流、廣播包穿越路由器,路由器配置了IP NAT并且有很多DNS包穿越路由器等。上述情況造成網絡擁塞后,通信雙方采取流量控制,丟棄不能傳輸的包。
3.2 關鍵技術實現
重發的判定:無論是業務設備或網絡線路中出現質量問題導致丟包,還是網絡擁塞導致丟包,都會引發TCP重發,具體是需要通過特定算法來對重發報文進行定義,并且在平臺監控系統中,將對徒增的重發現象進行預警顯示。
重發包定義:當前包的序列號(seq號)小于或等于前一個包的序列號(seq號),并且ipid大于上一個包的ipid,統計一個重發包,ipid是數據包的唯一識別號。
丟包的判定:對重發包進行定義后,我們會剔除由于接收方不及時回應請求,導致發起端重新發送的場景(此場景不是真正意義的丟包),此時只統計由于真實擁塞導致或網絡質量引起的丟包數量。丟包需要判定原因的場景主要包括:亂序情況、重發包丟失情況、正常丟包情況、ACK包被丟失情況等,下面針對正常的丟包場景進行說明:
在采集點2,當第2個包產生了跳號,此時需要進行異常記錄。在采集點2,判斷第三個包(seq=2 ipid=4的包)為重傳包。記錄1次丟包,所有采集點可判斷重傳數均為1(第4個包),采集點2可判斷丟包數1。
網絡物理路徑的計算:可根據丟包位置進行判別,前提需要管理員通過比對每個采集點、相同報文的時間戳的先后順序,然后進行物理路徑繪制。
一個網絡傳輸對從發起方到接收方流經的網絡環節,到底經過哪些節點,通常是需要網絡人員對網絡拓撲有很清晰的熟悉和認識。
這里主要存在兩個問題:
一、記憶不清,搞錯網絡路徑,從而影響判斷;
二、在不清楚網絡傳輸對流經的環節時,必須花時間去了解、解決傳輸路徑的問題。
具體可以通過時間戳方式自動計算路徑,能夠大幅提升效率及減少差錯。
3.3 實現功能示意
全網丟包集中展示。動態實時監控全網各個網絡節點丟包與重傳情況,統計重傳、丟包通訊對個數,計算受影響業務系統數量,為業務影響判斷提供數據。
網絡傳輸對物理路徑畫制:在出現局部、大面積丟包或重發告警時,可以選擇丟包數量較多或任意的通訊對來進行丟包位置判定,可以通過該網絡傳輸對物理路徑進行畫制。
丟包位置的判定。選擇通訊對里面某個具體的TCP會話,進行逐包對比,明確丟包位置。
3.4 業務全路徑監控
隨著業務的發展,業務系統規模越來越龐大,業務關系越來越復雜,而復雜的業務邏輯中任何一個應用環節出現異常都會影響到最終用戶的體驗。
在運維工作中,不能簡單用某一應用來判斷業務的可用性,必須依賴同網絡的其他應用和第三方如網絡服務的狀態,對業務整體可用性做出判斷。與此同時,與之相伴的如何定義應用的性能指標、網絡性能指標也成為了難題。
采用全路徑監控方案,智能梳理結合應用信息驗證的方式將多個業務系統的訪問邏輯梳理出來,將應用、系統、網絡的性能放到到所有業務的流程圖上面,進行實時的流程監控評估,可以實現對整個業務的管理與監控。此方案能夠大大減少業務故障,與此同時還能夠確定故障源頭和原因定位時間。
以業務全路徑為監控視角,集中可視化監控各個應用環節的訪問性能,通過對同一性能指標不同應用環節的監控,快速定位存在性能瓶頸的應用訪問環節,節省故障定位時間。
4 總結
全路徑性能監控技術,通過強大的主動及自動化性能分析能力,實現多點對比分析、智能發現關鍵業務系統的網絡、主機、應用性能下降,快速分析影響性能的原因并對問題發生點,從而幫助運維人員迅速排除故障,極大的縮短了排障時間。
參考文獻:
[1]梁晶. 計算機網絡服務質量優化思路及實踐路徑[J]. 淮南職業技術學院學報,2018.
[2]郭岳,彭祥禮,袁慧,等. 電力應用業務的網絡性能及故障分析[J]. 網絡安全技術與應用,2018,215(11):89+97.
[3]張志遠,劉遠健,王曉東. 多要素無線傳感監控網絡中的多路徑路由[J]. 計算機工程與科學,2014,36(6