高彥剛:網(wǎng)絡(luò)健康分析
原創(chuàng)【51CTO.com獨(dú)家特稿】編者按:本文為2009年首屆網(wǎng)絡(luò)分析技術(shù)大會(huì)的現(xiàn)場實(shí)錄,演講嘉賓為知名網(wǎng)絡(luò)分析技術(shù)專家高彥剛先生。高先生在大會(huì)上為我們?cè)敿?xì)講解了網(wǎng)絡(luò)分析技術(shù)的發(fā)展歷史及前瞻等問題。
非常高興,能有這么多的技術(shù)精英對(duì)我們網(wǎng)絡(luò)分析技術(shù)有這么濃厚的興趣,從入場12點(diǎn)開始就有陸續(xù)聽眾入場,到現(xiàn)在我們的嘉賓已經(jīng)擠得非常滿了,而且大家都是技術(shù)精英,未來高級(jí)網(wǎng)絡(luò)技術(shù)人員或者高級(jí)安全的技術(shù)人員,包括現(xiàn)在已經(jīng)是CCNE的技術(shù)人員,在我們現(xiàn)場那么關(guān)注網(wǎng)絡(luò)分析技術(shù)。
今天我主要給大家分享一些在網(wǎng)絡(luò)健康分析方面的技術(shù)。在演講當(dāng)中給大家講一下,我理解網(wǎng)絡(luò)健康的定義,什么叫健康的網(wǎng)絡(luò)?
影響網(wǎng)絡(luò)健康一些主要的因素,如何利用分析的工具,進(jìn)行一些網(wǎng)絡(luò)健康方面的一些評(píng)估。首先我個(gè)人理解健康網(wǎng)絡(luò)的定義?能夠提供高質(zhì)量網(wǎng)絡(luò)傳輸服務(wù)的網(wǎng)絡(luò)。網(wǎng)絡(luò)健康帶有明確的業(yè)務(wù)特性,為什么這么講呢?實(shí)際上健康的定義是針對(duì)不同的對(duì)象它是不一樣的,人的健康也是一樣的,有可能我站在臺(tái)上面,大家認(rèn)為我很健康,或者說西服戈履穿得很精神,覺得他很健康,但是誰知道我怎么樣。因?yàn)榻】狄彩轻槍?duì)某種特定的需求所定義的,比如劉翔腳傷了,但是他瘸得腿比我跑得都快,對(duì)110米欄這項(xiàng)運(yùn)動(dòng)來講,他已經(jīng)失去健康的基礎(chǔ),他就不夠健康,如果再讓他跑110欄就不能勝任這個(gè)工作。這是針對(duì)性的健康。
在網(wǎng)絡(luò)傳輸?shù)倪^程中,也有針對(duì)性,你在網(wǎng)絡(luò)里邊對(duì)這個(gè)業(yè)務(wù)是健康的,每個(gè)網(wǎng)絡(luò)上的應(yīng)用對(duì)這種網(wǎng)絡(luò)的傳輸?shù)馁|(zhì)量需求是完全不一樣的,它是劃分等級(jí)的,有可能有的應(yīng)用只需要網(wǎng)絡(luò)能通就可以了,只要能p i n g g通就可以了,但是有的應(yīng)用對(duì)網(wǎng)絡(luò)的需求更高,比如對(duì)網(wǎng)絡(luò)傳輸,不能丟包,傳輸中不能丟包,丟一個(gè)包對(duì)我的業(yè)務(wù)有影響,哪怕只丟一個(gè)包,網(wǎng)絡(luò)就是不健康的,對(duì)我這個(gè)業(yè)務(wù)來講。對(duì)時(shí)延比較敏感,網(wǎng)絡(luò)傳輸有時(shí)延會(huì)影響系統(tǒng)運(yùn)輸?shù)馁|(zhì)量和性能,就不能有時(shí)延,沒有時(shí)延的網(wǎng)絡(luò)是不存在的,時(shí)延不能大于多少毫秒或者不能大于多少微妙,如果大了就影響我網(wǎng)絡(luò)的傳輸,影響業(yè)務(wù)的質(zhì)量。
有些網(wǎng)絡(luò)對(duì)抖動(dòng)比較敏感,比如像視頻、語音流,比如網(wǎng)絡(luò)的抖動(dòng)比較厲害的話,直接影響業(yè)務(wù)的運(yùn)行的質(zhì)量,我這么講其實(shí)主要是闡明這種觀點(diǎn),網(wǎng)絡(luò)的健康要根據(jù)業(yè)務(wù)需求特性進(jìn)行評(píng)估,這是非常關(guān)鍵的。有的時(shí)候在座是做網(wǎng)絡(luò)技術(shù)的人員,有一種誤區(qū),我的網(wǎng)絡(luò)能ping,ping大家都會(huì),有人打電話網(wǎng)絡(luò)為什么這么慢,你ping一下,能通,網(wǎng)絡(luò)發(fā)問題。可能沒問題,有一個(gè)很大的可能有問題,對(duì)某些業(yè)務(wù)有影響。健康網(wǎng)絡(luò)的定義是有業(yè)務(wù)特性的。
什么原因會(huì)影響網(wǎng)絡(luò)健康主要因素呢?標(biāo)志網(wǎng)絡(luò)服務(wù)質(zhì)量幾個(gè)關(guān)鍵的網(wǎng)絡(luò)參數(shù)主要包括丟包、時(shí)延、抖動(dòng),什么原因會(huì)造成網(wǎng)絡(luò)性能、運(yùn)行質(zhì)量、服務(wù)質(zhì)量的影響,我想最主要有幾個(gè)方面,包括設(shè)備的健康,本身這個(gè)網(wǎng)絡(luò)架構(gòu)設(shè)計(jì)得不合理,或者網(wǎng)絡(luò)設(shè)備有問題,這個(gè)網(wǎng)絡(luò)設(shè)備就是丟包,設(shè)備會(huì)問題了,沒有不出問題的東西,網(wǎng)絡(luò)設(shè)備也一樣,好的網(wǎng)絡(luò)設(shè)備也有可能出問題的時(shí)候,比如內(nèi)存占滿了,或者CPU耗盡了,有可能造成網(wǎng)絡(luò)設(shè)備本身在丟包,包括網(wǎng)絡(luò)的配置,比如路由的設(shè)置,形成了一些路由的問題,路由不可達(dá),像第二層的問題,包括錯(cuò)誤的配置,MTU不匹配,都有可能造成網(wǎng)絡(luò)傳輸?shù)挠绊懀ㄒ恍┬阅艿钠款i,因?yàn)樗械木W(wǎng)絡(luò)都有它的瓶頸,極限最早達(dá)到的地方就是瓶頸,這種瓶頸會(huì)導(dǎo)致整個(gè)網(wǎng)絡(luò)耐受點(diǎn)和承受力,我們有一個(gè)很大的網(wǎng),所有的網(wǎng)絡(luò)鏈路很高,比如千兆的,某一個(gè)防火墻的性能只有一百兆,整個(gè)網(wǎng)絡(luò)的性能只有一百兆,因?yàn)樗瞧款i,或者整個(gè)網(wǎng)絡(luò)帶寬都很寬,但是出口帶寬很少,只有十兆,往外訪問的時(shí)候就只有十兆,這也是一個(gè)瓶頸。
再一點(diǎn)就是網(wǎng)絡(luò)的行為,包括網(wǎng)絡(luò)上的應(yīng)用以及用戶的網(wǎng)絡(luò)行為,這些網(wǎng)絡(luò)行為是有可能導(dǎo)致網(wǎng)絡(luò)出現(xiàn)一些異常的流量,產(chǎn)生大量的連接,通過這種造成一些網(wǎng)絡(luò)資源的耗盡,比如帶寬資源的耗盡,包括連接資源的耗盡,從而導(dǎo)致網(wǎng)絡(luò)服務(wù)質(zhì)量的下降。我們?cè)谌粘碇v,我們做一個(gè)網(wǎng)絡(luò)健康狀況評(píng)估的話,因?yàn)槲乙郧耙惨恢弊骶W(wǎng)絡(luò)分析,包括很多的用戶一接觸就說,我那個(gè)網(wǎng)沒什么問題,運(yùn)行了很長時(shí)間都沒什么問題,我認(rèn)為我的網(wǎng)絡(luò)是非常健康的,實(shí)際上當(dāng)我們做了一個(gè)簡單的評(píng)估之后,它的看法就改變了。
因?yàn)樵跊]看到之前它認(rèn)為是健康的,但是做了檢查之后,它覺得還是有很多值得改進(jìn)的地方,這和我們?nèi)艘粯?,我們每年都需要做健康的體檢,我說的日常健康的檢查,就和健康的體檢一樣,不一定是特別針對(duì)某一個(gè)故障,因?yàn)槌隽斯收?,你肯定有問題,你要做分析,但是日常要定期做一些網(wǎng)絡(luò)的健康檢查,去看看,我的網(wǎng)絡(luò)運(yùn)行的狀態(tài)是什么樣子的,是不是能夠正常為我的上層業(yè)務(wù)應(yīng)用提供正常的服務(wù)或者提供高質(zhì)量的服務(wù)。
這種網(wǎng)絡(luò)健康情況要進(jìn)行針對(duì)性的分析,一般要針對(duì)相應(yīng)的業(yè)務(wù)的分析,這個(gè)網(wǎng)絡(luò)里邊運(yùn)行什么業(yè)務(wù),這些業(yè)務(wù)對(duì)網(wǎng)絡(luò)游什么樣的需求,對(duì)網(wǎng)絡(luò)的服務(wù)質(zhì)量有什么樣的需求,不同的業(yè)務(wù)對(duì)網(wǎng)絡(luò)服務(wù)的需求是不一樣的,另外針對(duì)相應(yīng)網(wǎng)絡(luò)鏈路,針對(duì)不同網(wǎng)絡(luò)鏈路進(jìn)行不同的需求,是非常有針對(duì)性的,一般來講,我們有端到端的分析,包括分段的分析,因?yàn)椴煌木W(wǎng)絡(luò)鏈路或者不同的網(wǎng)段狀況也是不一樣的,有可能這個(gè)網(wǎng)段流量沒問題,也沒什么異常,我們分析出來,但是因?yàn)槲覀兌说蕉说膽?yīng)用,有可能客戶端到服務(wù)器端經(jīng)過多個(gè)網(wǎng)段,網(wǎng)絡(luò)里面難免有瓶頸,有的地方就會(huì)形成一些異常,造成網(wǎng)絡(luò)的服務(wù)質(zhì)量下降。
這是一個(gè)簡單的例子。我們對(duì)一個(gè)用戶互聯(lián)網(wǎng)的出口網(wǎng)絡(luò)健康的分析,這個(gè)也是我們非常多的用戶比較關(guān)注比較長江的,因?yàn)榧百e上很多的用戶網(wǎng)絡(luò)里邊,就是互聯(lián)網(wǎng)出口鏈路,一是帶寬比較窄,另外就是大家都會(huì)從這個(gè)口出去,就好比高速路不會(huì)堵,但是出口那個(gè)地方會(huì)堵,內(nèi)部的帶寬非常寬,但是擠到出口很窄,會(huì)覺得不健康,針對(duì)互聯(lián)網(wǎng)出口,上邊其實(shí)用戶主要一些業(yè)務(wù)或者是主要的應(yīng)用,SMTP、HTTP,這是用戶最關(guān)注的兩個(gè)應(yīng)用,包括對(duì)外網(wǎng)站的流量,包括郵件的收發(fā),這兩個(gè)是我們很多單位連接互聯(lián)網(wǎng)主要的原因,為了收發(fā)郵件,為了上網(wǎng)瀏覽,這是最主要的業(yè)務(wù),針對(duì)鏈路就是出口,我們進(jìn)行一個(gè)評(píng)估。
首先我們可以針對(duì)業(yè)務(wù),比如說針對(duì)SMTP的業(yè)務(wù)進(jìn)行一些評(píng)估,我們可以調(diào)取我們針對(duì)性的分析方案,HTTP的分析方案,對(duì)HTTP應(yīng)用以及運(yùn)行狀態(tài)進(jìn)行評(píng)估,發(fā)現(xiàn)在傳輸層有非常多的數(shù)據(jù)沖刷。包括一些服務(wù)器響應(yīng)慢的告警,實(shí)際上服務(wù)器響應(yīng)慢一是訪問互聯(lián)網(wǎng)的服務(wù)器,很多服務(wù)器有可能比較慢,在傳輸過程中,很多的重傳,一般來講重傳是什么原因造成的TCP的重傳,主要的原因是網(wǎng)絡(luò)丟包引起的,在TCP傳輸處理過程中,如果數(shù)據(jù)包丟掉了,會(huì)有一個(gè)重傳的機(jī)制,保證數(shù)據(jù)有效性,很多的重傳,非常多的重傳,說明傳輸層有很大的問題,這條鏈路的傳輸有很大的問題,因?yàn)橹貍鞣浅6唷?我們可以針對(duì)性看某些HTTP的連接,看整個(gè)請(qǐng)求、響應(yīng)的過程、數(shù)據(jù)流。針對(duì)性地分析一些對(duì)外訪問的數(shù)據(jù)流,有些下載,數(shù)據(jù)量很小,有的只有幾十個(gè)數(shù)據(jù)包,數(shù)據(jù)過來傳輸幾十個(gè)數(shù)據(jù)包,但是傳輸?shù)倪^程非常長,這是其中一個(gè)連接、會(huì)話,HTTP請(qǐng)求的會(huì)話。數(shù)據(jù)包只有幾十個(gè),總共是80個(gè),傳輸來回基本上在40個(gè)左右,80個(gè)數(shù)據(jù)包在網(wǎng)絡(luò)中傳輸?shù)臅r(shí)間花了多長時(shí)間呢,花了11秒將近12秒,這是非常慢的,我發(fā)一個(gè)請(qǐng)求過來,請(qǐng)求過去,回來之后網(wǎng)頁打開11秒,但是問題是只有80個(gè)數(shù)據(jù)包,這么長的網(wǎng)頁,比較大的網(wǎng)頁,像新浪的首頁,很多網(wǎng)站首頁大概能傳多少個(gè)數(shù)據(jù)包呢?大概能傳將近兩千個(gè)數(shù)據(jù)包,兩兆大B左右的頁面,因?yàn)闃I(yè)務(wù)很多連接,很多的圖片,很多的動(dòng)畫,下載完之后,大概有兩千個(gè)數(shù)據(jù)包,兩千多個(gè)數(shù)據(jù)包,如果要傳的話,可能是不可完成的任務(wù)了,非常慢了,僅僅80個(gè)數(shù)據(jù)包是11秒,2000個(gè)數(shù)據(jù)包一百多秒,這是非常慢的,我們從這兒來看,這個(gè)鏈路對(duì)業(yè)務(wù)應(yīng)用來講是不健康的,是比較慢的,影響數(shù)據(jù)的傳輸,包括針對(duì)SMTP,郵件的傳輸也存在同樣的問題,數(shù)據(jù)包的重傳,影響傳輸?shù)臅r(shí)間,很多的傳輸?shù)臅r(shí)延由重傳引起了,導(dǎo)致少量的數(shù)據(jù)需要長時(shí)間傳輸,傳輸?shù)男史浅2?,首先從服?wù)質(zhì)量來講,服務(wù)質(zhì)量是差的,這是我們?cè)u(píng)估主要的切入點(diǎn)。
另外,要對(duì)問題的原因,包括主要的參數(shù)進(jìn)行一些評(píng)估,這就和我們?nèi)粘W鲶w檢一樣,日常體檢要驗(yàn)血,量血壓等,脈搏等一系列,我們通過這一系列的參數(shù)判定人體是不是在正常值內(nèi),如果不在正常值,代表身體某一部分機(jī)能出現(xiàn)了問題和異常。在網(wǎng)絡(luò)健康檢查里邊,我們最主要評(píng)估有有幾個(gè)數(shù)據(jù)的參數(shù),流量里邊一是帶寬的占用率或者比特率,網(wǎng)絡(luò)里邊的流量有多少,如果網(wǎng)絡(luò)里邊的流量非常大,超過了網(wǎng)絡(luò)的承受能力,出現(xiàn)了擁塞的話,會(huì)直接導(dǎo)致丟包,網(wǎng)絡(luò)丟包其中一點(diǎn)就是利用率過大就是擁塞,擁塞是導(dǎo)致丟包主要的原因。在利用率來講,比作是血液一樣,檢查身體的血壓一樣,如果血壓過高,人會(huì)出現(xiàn)一些危險(xiǎn)的狀況,一下子崩潰了,為什么我們要關(guān)注這些參數(shù)呢?因?yàn)樗砭W(wǎng)絡(luò)的運(yùn)行狀況、健康狀況。通過這種流量的分析,鏈路流量非常大,只有十兆的出口帶寬,每秒鐘的比特率已經(jīng)達(dá)到30多兆,不光是往外訪問,還有一些DMZ區(qū)訪問的流量,流量已經(jīng)在百分之百了,利用率在百分之百,在百分之百的利用率運(yùn)行全占滿的話肯定是擁塞。在以前互聯(lián)網(wǎng)服務(wù)質(zhì)量提升過程中,最主要靠的是帶寬的提升,加帶寬,帶寬越寬,服務(wù)質(zhì)量越高?,F(xiàn)在觀點(diǎn)有一些改變,現(xiàn)在很多的應(yīng)用,有多大的帶寬,我照樣給你占滿,以前可能沒有這種應(yīng)用,現(xiàn)在有了,而且越來越多,所以帶寬一方面是我們要增加的,另外一方面,我們也要對(duì)流量進(jìn)行一些分析性的控制或者選擇性的控制。
另外,就看比特率,比特率非常高,另外就是PPS,網(wǎng)絡(luò)里邊的數(shù)據(jù)包,網(wǎng)絡(luò)里邊數(shù)據(jù)包的數(shù)量好比脈搏一樣,數(shù)據(jù)包如果過多了,同樣會(huì)造成一些網(wǎng)絡(luò)設(shè)備的處理性能下降,一般來講,網(wǎng)絡(luò)里邊數(shù)據(jù)包的大小分布從TCP協(xié)議來講分布有一定的規(guī)律,也有一定的規(guī)律,基本上大包的數(shù)量和小包的數(shù)量基本上是相當(dāng)?shù)?,有一些協(xié)議,小包比較多,DNS都是小包,像語音流都是小包,全是小包,我們通過成分的分析,也可以判定一條鏈路是否是一個(gè)正常值,小包的數(shù)量過多,或者說小包的比例占得過多,或者是某一段大小包比例占得過多,我們可以判定它有一些異常,每秒鐘六千多個(gè)TPS,平均的包長大概是500PPs,基本上屬于正常,這個(gè)網(wǎng)絡(luò)里邊最主要非常重要的參數(shù)就是帶寬的擁塞,利用率太高。通過應(yīng)用的流量分析,我們分析到底哪些應(yīng)用更細(xì)節(jié)的成分分析了流量的大小,血壓很高,但是什么造成血壓高,成分的分析,UDP的應(yīng)用流量很大,占80%以上的帶寬,在一個(gè)互聯(lián)網(wǎng)的出口,UDP的應(yīng)用,一般來講,最主要的應(yīng)用基本上都沒有UDP的應(yīng)用,UDP都是流量比較小,都是DNS,也有語音數(shù)據(jù)流占據(jù)大量的帶寬,但是它是互聯(lián)網(wǎng)出口的鏈路,一般來講不會(huì)有這么大量DNS的流量和語音實(shí)時(shí)的流量,UDP占80%以上,有一些異常,也是比較異常的。造成帶寬擁塞主要的原因是UDP的應(yīng)用,UDP流量非常大。MSTP占到80%以上,還是比較正常的,基本上是比較正常的,進(jìn)一步做UDP分析,到底是什么流量產(chǎn)生的,發(fā)現(xiàn)有大量的UDP流量,用了大量的非規(guī)范UDP的各種各樣的斷口,而且傳輸了大量流量,進(jìn)一步分析一步步做這種分析,少量的主機(jī)占據(jù)大量的帶寬,排在流量前10位的主機(jī),排在前4位的主機(jī)占了80%的帶寬,很多主機(jī)往外訪問,其中4臺(tái)主機(jī)占了80%的帶寬,網(wǎng)絡(luò)流量大部分是這些主機(jī)產(chǎn)生的,大量UDP的貢獻(xiàn),這四臺(tái)主機(jī)發(fā)現(xiàn)大量UDP的通訊,正是他們產(chǎn)生大量的數(shù)據(jù)包,UDP的數(shù)據(jù)包有一個(gè)特點(diǎn),它不是面向連接的,TCP是連接的,有流控,TCP協(xié)議非常重要的作用就是流控,如果出現(xiàn)擁塞的話,出現(xiàn)延時(shí)或者丟包的話,它會(huì)停下,UDP不會(huì),即使再擁塞也可以往上發(fā)包,讓你更擁塞,這種流量造成網(wǎng)絡(luò)擁塞最主要的原因,這些主機(jī)和大量的互聯(lián)網(wǎng)主機(jī)之間有UDP的通訊,發(fā)現(xiàn)主機(jī)和上千個(gè)或者幾千個(gè)主機(jī)有UDP的通訊。
到底在傳輸什么呢?發(fā)現(xiàn)一些數(shù)據(jù)包的解碼,都是下載的流量,這些是典型的P2P的應(yīng)用造成流量的特征,建立大量的連接,大量使用UDP的連接,造成網(wǎng)絡(luò)擁塞,一臺(tái)主機(jī)占據(jù)大量的帶寬,用UDP傳輸?shù)姆绞?。排查一些網(wǎng)絡(luò)游木馬、蠕蟲等特殊的流量,就跟檢查身體似,查一下有沒有乙肝病毒,有沒有愛滋病毒,不是所有的體檢都會(huì)查,我們也會(huì)針對(duì)性查一下,不是說你有病毒就代表你網(wǎng)絡(luò)不健康,帶某種病毒,有可能你很健康,但是當(dāng)病毒發(fā)作的時(shí)候就不健康了,它是一種威脅,我們也會(huì)查,比如蠕蟲病毒,一個(gè)兩個(gè)不會(huì)影響到網(wǎng)絡(luò)的質(zhì)量,但是一旦爆發(fā),網(wǎng)絡(luò)游可能就會(huì)癱瘓,這都是隱患,我們也會(huì)進(jìn)行評(píng)估。
一般來講,我們是簡單做網(wǎng)絡(luò)健康分析過程,我們會(huì)給用戶提供一個(gè)報(bào)告,網(wǎng)絡(luò)健康狀況什么樣子?有沒有什么問題,運(yùn)行的情況怎么樣,運(yùn)行的參數(shù),給用戶一個(gè)報(bào)告,我們很多網(wǎng)絡(luò)技術(shù)人員來講,如果日常做這種網(wǎng)絡(luò)的運(yùn)維,網(wǎng)絡(luò)的健康分析也是必不可少的,這就是我的簡要的介紹,謝謝大家!
【51CTO.com獨(dú)家特稿,轉(zhuǎn)載請(qǐng)注明出處】
【編輯推薦】