龔濤



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