文/劉晨光
網(wǎng)絡是信息化的基礎,是網(wǎng)絡業(yè)務的高速路,網(wǎng)絡本身的穩(wěn)定性、通暢性決定了網(wǎng)絡業(yè)務的發(fā)展。網(wǎng)絡普及率不斷提高,人類在執(zhí)行各種活動的時候越來越依賴網(wǎng)絡。不斷更新的應用,規(guī)模龐大,結構復雜,面臨的網(wǎng)絡故障越來越復雜,故障處理時間越來越緊張。如何快速定位,如何進行網(wǎng)絡溯源,是每個網(wǎng)絡運維人員的重要職責。
在實際網(wǎng)絡中,通常部署了大量的設備,如交換機、路由器、防火墻、VPN、均衡負載設備、各種終端、服務器等,這些設備上出現(xiàn)的應用故障,都會對業(yè)務造成影響。網(wǎng)絡分析就是通過對網(wǎng)絡數(shù)據(jù)的全面監(jiān)控分析,對網(wǎng)絡中傳輸?shù)臄?shù)據(jù)包進行解碼、檢測、分析、診斷,排除各種網(wǎng)絡應用行為造成的網(wǎng)絡故障和問題,準確并快速地定位網(wǎng)絡病癥,規(guī)避網(wǎng)絡安全風險,提高網(wǎng)絡性能,增強網(wǎng)絡可用性價值。
根據(jù)網(wǎng)絡故障的性質可以分為物理故障與邏輯故障。
(1)物理故障是指設備或線路損壞、插頭松動、網(wǎng)絡插頭誤接、線路電磁干擾等故障。
(2)邏輯故障包括配置錯誤、服務進程或端口異常,以及系統(tǒng)的負載過高、惡意攻擊等。
作為一名網(wǎng)絡管理員,在用戶反映網(wǎng)絡故障時一般會按照自下而上的順序逐層排除故障。
(1)物理層:網(wǎng)絡線纜的通斷,交換機端口連通并UP。
(2)數(shù)據(jù)鏈路層:ARP解析是否正常。
(3)網(wǎng)絡層: IP地址是否能ping通。
(4)傳輸層:網(wǎng)絡上的服務能否啟用,服務端口能否連通。
應用層:應用程序是否正常工作,用戶是否能正常使用。
針對網(wǎng)絡中一些常見的故障,如網(wǎng)絡連通性問題,通過簡單的ping,tracert命令就可以判斷。但遇到一些復雜的情況,間歇性網(wǎng)絡故障,應用時斷時通、網(wǎng)絡速度慢等復雜情況,其原因包括局域網(wǎng)內設備的問題、廣域網(wǎng)上鏈路問題、應用服務器或客戶端主機問題、應用軟件自身問題等,這就得用網(wǎng)絡分析。
(1)網(wǎng)絡分析的位置。網(wǎng)絡抓包分析的位置,取決于網(wǎng)絡拓撲圖中數(shù)據(jù)源和目的服務器,以及路由途徑的網(wǎng)絡設備。我曾經(jīng)遇到一個故障,用戶總反映DNS解析慢,部分域名解析不成功的現(xiàn)象。我們首先在用戶端抓包,確實有一部分DNS域名一直沒有回復,然后在DNS服務器端抓包,發(fā)現(xiàn)所有收到的解析請求,服務器都解析并響應了。接下來在途徑的網(wǎng)絡設備上通過端口鏡像等方法抓包分析,最后在一個防火墻內口和外口的包對比時,發(fā)現(xiàn)數(shù)據(jù)包數(shù)量有差異,這就意味著部分包被防火墻丟棄,然后對這些被丟棄的包進行分析對比,發(fā)現(xiàn)被丟掉的都是DNS大包,可見防火墻的MTU太小,會丟棄大包,修改DNS包為最小化或者修改防火墻MTU后,問題得到解決。這就是網(wǎng)絡分析位置的選取,根據(jù)網(wǎng)絡拓撲和異常數(shù)據(jù)流向設置多個數(shù)據(jù)監(jiān)控點,逐個排除。
(2)網(wǎng)絡分析的數(shù)據(jù)篩選。網(wǎng)絡上有海量的數(shù)據(jù)包,如何從這些數(shù)據(jù)中篩選出需要的部分,減少數(shù)據(jù)分析的工作量,也是數(shù)據(jù)分析的重要步驟。數(shù)據(jù)的篩選,可以在抓包之前只抓取有用的數(shù)據(jù),這適用于對故障有較清晰的認識,比如上面那個DNS丟包的問題,就可以限定只抓源地址、目的地址、協(xié)議DNS的數(shù)據(jù)包。也可以在獲取所有故障時間段的數(shù)據(jù)后再進一步篩選,該情況適合于安裝了旁路日志系統(tǒng)或者分析系統(tǒng)的情況。一般的篩選條件有限定源地址和目的地址、限定網(wǎng)卡、限定協(xié)議,限定服務端口、限定交換機端口等。
(3)通過對比的方法定位故障。將正常時期的數(shù)據(jù)與故障時的數(shù)據(jù)對比,分析找到不同點。有用戶稱在C/S模式登錄應用系統(tǒng)時,經(jīng)常登不上去,我們抓取一段時間的數(shù)據(jù),對比這個傳輸用戶名密碼的數(shù)據(jù)包時,發(fā)現(xiàn)成功登錄的數(shù)據(jù)包的大小和失敗的數(shù)據(jù)包大小不一樣,由此發(fā)現(xiàn)應用程序設計的問題。
(4)通過數(shù)據(jù)流圖的方式分析。用戶反映在A樓快,B樓慢,由此懷疑B樓的交換機性能或者傳輸策略。用測速工具測試網(wǎng)絡速率,A樓B樓速率一樣。在用戶端抓取一個完整的數(shù)據(jù)交互過程,用流程圖列出所有的交互和時間,發(fā)現(xiàn)B樓數(shù)據(jù)包有一個大約10秒鐘的間隔等待,等待一個互聯(lián)網(wǎng)域名請求超時,而A樓的終端沒有配置DNS服務器,就直接進行到下一步了,這就找到問題的原因了。
(5)通過統(tǒng)計的方法定位故障。這個是最復雜卻也是最常用的方法。有一次,用戶反映同一網(wǎng)段內用戶上網(wǎng)都很慢,對該交換機上的網(wǎng)絡總流量及進出流量做出統(tǒng)計發(fā)現(xiàn),帶寬利用率達到80%左右,瞬時的利用率甚至更高,造成大量的數(shù)據(jù)包丟失,廣播包數(shù)量驚人,端口頻閃,此時基本可以判定為廣播或路由環(huán)路故障。統(tǒng)計可以根據(jù)多種維度來進行,協(xié)議統(tǒng)計可以分析數(shù)據(jù)包中每種協(xié)議類型的占比重情況;對話統(tǒng)計可以分析特定端點間的所有流量;Http流量統(tǒng)計可以分析網(wǎng)絡某個站點的訪問情況,還有很多高級網(wǎng)絡統(tǒng)計工具。
對于一個應用在網(wǎng)絡上的傳輸性能,會受到帶寬、延遲、抖動、丟包等參數(shù)的影響,找到影響傳輸性能的瓶頸因素,從而提升傳輸性能。在國際網(wǎng)絡運維中,用戶反映備份線路啟用后,網(wǎng)絡明顯變慢,因此申請增加備線的網(wǎng)絡帶寬。但通過網(wǎng)絡統(tǒng)計分析發(fā)現(xiàn),備線的帶寬并沒有被占滿,還有很大的余量。在客戶端和服務器端抓包分析TCP協(xié)議的交互,耗時大部分發(fā)生在服務器端等待客戶端的ACK確認,但客戶端也及時回應了ACK報文,問題出在了備線的時延上,因為備線經(jīng)過迂回線路,時延大概是主線的2倍。在這種情況下,單純增加帶寬是解決不了問題的,在當前鏈路情況下,使用并發(fā)連接的應用程序,修改操作系統(tǒng)TCP窗口大小,都會使得性能得到明顯改觀。
通過抓取一段時間網(wǎng)絡流量的原始數(shù)據(jù),進行網(wǎng)絡行為規(guī)律及運行趨勢分析,可以為網(wǎng)絡性能優(yōu)化、新業(yè)務部署、帶寬規(guī)劃、安全策略等決策提供科學的依據(jù)。
通過對數(shù)據(jù)包的網(wǎng)絡行為分析,進行深度網(wǎng)絡通訊檢測,可以快速發(fā)現(xiàn)網(wǎng)絡攻擊、主動外聯(lián)、木馬通訊、隱蔽信道、異常DNS解析、違規(guī)操作等危害網(wǎng)絡安全的異常行為。要想識別網(wǎng)絡上的惡意流量攻擊,需要將網(wǎng)絡正常時的流量特征了如指掌,進而快速發(fā)現(xiàn)異常流量,比如ARP、TCP、DNS、特定IP和端口號等突發(fā)流量。有一次,大量用戶反映網(wǎng)絡變慢、卡頓。通過抓包軟件發(fā)現(xiàn)網(wǎng)絡上幾個IP,嘗試與局域網(wǎng)內所有主機建立連接,連接的端口一致且連接之間相隔時間短,流量占用較大,而且這些數(shù)據(jù)包的源IP隸屬于同一網(wǎng)段,這極有可能是感染了蠕蟲病毒的主機在掃描網(wǎng)絡。同樣可以通過TCPSYN掃描、DOS攻擊等也可以通過異常流量分析找到癥結。
以上是日常網(wǎng)絡運維中的網(wǎng)絡故障以及解決方法,通過實例介紹網(wǎng)絡分析的應用,單純的網(wǎng)絡抓包,會捕獲大量的數(shù)據(jù),而通過各種網(wǎng)絡分析的篩選和多種統(tǒng)計方法,多層網(wǎng)絡協(xié)議分析,可以盡快找出網(wǎng)絡中存在的異常。當前,網(wǎng)絡分析領域有很多工具,有wireshark、sniffer、NetFlow、Jflow、Sflow、Syslog、xlog和httpwatch、tcpdump、OmniPeak等,只要能解決問題,都是好的網(wǎng)絡分析工具。
網(wǎng)絡分析在網(wǎng)絡故障處理中發(fā)揮著越來越重要的作用,一切網(wǎng)絡分析最終依賴的是網(wǎng)絡技術人員的知識、經(jīng)驗和分析能力。