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