李 軍(西安翻譯學院,西安,710105)
?
數(shù)據(jù)包探測法在解決網(wǎng)絡故障中的應用
李 軍
(西安翻譯學院,西安,710105)
摘要:網(wǎng)絡故障排查是一個十分復雜的過程。本文分析了網(wǎng)絡故障排查的特點和常用方法,提出了以網(wǎng)絡探測數(shù)據(jù)包發(fā)送和確認為基礎的通信鏈路檢查方法。
關鍵詞:網(wǎng)絡鏈路;故障排查
網(wǎng)絡是由若干條通信鏈路組成的,通信鏈路是網(wǎng)絡運行的基礎,其傳輸質(zhì)量是數(shù)據(jù)能否正確傳輸?shù)年P鍵。一般的網(wǎng)絡中心對外有多個通信鏈路,包括內(nèi)部到各個外部節(jié)點。在實際通信過程中,經(jīng)常出現(xiàn)由于網(wǎng)絡故障,導致數(shù)據(jù)不能正常進行收發(fā)的情況。
典型的通信鏈路可以描述如圖1所示。從圖中可以看出,通信鏈路上的關鍵節(jié)點一般有:①內(nèi)部主機;②核心交換機;③通信交換機;④通信路由器;⑤對方路由器;⑥對方交換機;⑦對方主機。
當網(wǎng)絡鏈路發(fā)生故障時,最直接的處理方法就是人工對通信線路和網(wǎng)絡中的各個節(jié)點設備進行配置檢查。人工檢查能夠發(fā)現(xiàn)設備配置上的錯誤,但在某些情況下,難以直觀的從設備配置上看出故障發(fā)生的原因,即各個通信節(jié)點配置檢查都正確,但整條鏈路就是不通。而且,由于一個通信鏈路上的節(jié)點由不同的單位分管,設備配置檢查往往由各單位自行完成,難免會出現(xiàn)檢查人員水平參差不齊、對鏈路配置理解不一致和掌握不準確的情況,從而導致檢查結果不夠客觀。
圖1 典型的通信鏈路
在鏈路檢查過程中,還可以使用PING命令發(fā)送ICMP數(shù)據(jù)包來驗證鏈路的通斷性,對于有多個中間通信節(jié)點的鏈路來說,PING命令和TRACEROUTE命令結合,可以檢查出到哪個中間節(jié)點鏈路停止響應。這種方法具有使用方便的優(yōu)點。但在某些情況下卻不太適用,主要有以下幾種情況:
(1)在中間通信節(jié)點較多的情況下,為了安全,路由設置不指向所有的中間節(jié)點,僅指向鏈路兩端的目標節(jié)點。如在圖1中,節(jié)點④通信路由器配置指向節(jié)點⑦對方主機的路由,并不配置指向節(jié)點⑥對方交換機的路由。而PING數(shù)據(jù)包是需要通過返回應答包來確認鏈路正確的,由于中間節(jié)點路由配置的特點,往往對于中間節(jié)點的ICMP數(shù)據(jù)包無法收到應答信息,導致檢查過程難以進行,不能準確判斷是哪個中間節(jié)點出現(xiàn)了問題導致路由不通。
(2)對于某些有特殊安全要求的方向,設置了網(wǎng)絡加密機進行數(shù)據(jù)的加解密,網(wǎng)絡加密機對于大多數(shù)網(wǎng)絡協(xié)議進行了屏蔽和加密,必須在網(wǎng)絡中成對使用。在這種情況下,PING命令往往只能在兩個網(wǎng)絡保密機的兩端進行測試,不能跨過一個保密機到達鏈路的中間節(jié)點。導致難以實現(xiàn)故障節(jié)點的準確定位。
(3)由于PING命令發(fā)出的ICMP數(shù)據(jù)包協(xié)議類型不同于實際收發(fā)的組播或點播格式數(shù)據(jù),因此僅能夠測試路由鏈路,不能夠測試組播鏈路的正確性。
2.1 基本過程
數(shù)據(jù)包探測的基本過程如圖2所示,該方法需要在內(nèi)部網(wǎng)絡選擇一臺能夠與對方主機進行路由連接的計算機作為探測主機。主要分為以下步驟:
2.1.1 從內(nèi)網(wǎng)探測主機向?qū)Ψ街鳈C發(fā)送探測數(shù)據(jù)包。數(shù)據(jù)包的發(fā)送采用軟件自動設定參數(shù)進行,根據(jù)需要可以采用以下兩種方式:
(1)點播。該方式主要是為了驗證從內(nèi)網(wǎng)探測主機到對方主機的路由正確性。在采用點播方式發(fā)送時,目標地址為對方主機的IP地址。
(2)組播。該方式主要是為了驗證路由及組播協(xié)議配置的正確性。在采用組播方式發(fā)送時,組播地址和端口號為內(nèi)部網(wǎng)絡向該外部單位實際發(fā)送數(shù)據(jù)的地址和端口。
2.1.2 如果對方主機接收到內(nèi)網(wǎng)發(fā)送的數(shù)據(jù),說明該方向鏈路通信正常,結束探測過程。如果對方主機沒有接收到內(nèi)網(wǎng)發(fā)送的數(shù)據(jù),則說明該方向鏈路存在問題,進行下一步的檢測。
2.2 中間節(jié)點故障定位
在數(shù)據(jù)鏈路的各個中間節(jié)點上,檢查數(shù)據(jù)包的命令為:show interfaces *。其中 * 表示在該通信節(jié)點上進行數(shù)據(jù)通信的端口名稱。該命令輸出的結果信息如圖3所示,圖中加粗字體部分表示5分鐘內(nèi)輸入輸出該接口的數(shù)據(jù)量,分別以平均位計數(shù)和平均包計數(shù)進行顯示。因為發(fā)送的探測數(shù)據(jù)計量單位是包,所以僅關心平均包計數(shù)的變化。
以每秒發(fā)送50個數(shù)據(jù)包為例,假設原來該端口5分鐘內(nèi)平均輸入速率分別為每秒0個、1個、5個、10個數(shù)據(jù)包,且均勻分布,則從開始發(fā)送數(shù)據(jù)起,端口的輸入變化和時間關系如表1所示。由表中可以看出,當開始發(fā)送探測數(shù)據(jù)包后,導致端口速率發(fā)生穩(wěn)定變化,發(fā)送5分鐘后,端口速率達到穩(wěn)定值。如果端口的輸入速率符合此規(guī)律,則說明發(fā)送的探測數(shù)據(jù)包已經(jīng)到達該端口,該端口之前的各個節(jié)點配置和線路沒有問題。
表1:端口包速率變化
2.3 數(shù)據(jù)發(fā)送軟件設計
數(shù)據(jù)發(fā)送軟件設計為能夠同時向多個組播和UDP地址發(fā)送數(shù)據(jù),也能夠接收任意源和指定源組播。在發(fā)送時,可以根據(jù)需要設置每次發(fā)送數(shù)據(jù)包的長度、個數(shù)以及兩次數(shù)據(jù)發(fā)送之間的間隔,并能夠進行發(fā)送包、接收包統(tǒng)計。該軟件不僅能夠用于發(fā)送探測數(shù)據(jù)包,還可以用于通信鏈路的兩端計算機上,接收任意組播的數(shù)據(jù),達到獨立檢測和驗證鏈路正確性的目的。
(2)包計數(shù)。為了在通信鏈路兩端能夠確認數(shù)據(jù)包的唯一性,在每個發(fā)送的數(shù)據(jù)包上加入了包序號,以此來判斷是否為本軟件發(fā)送出的包,并且能夠在發(fā)生丟包的時候準確定位其在發(fā)送序列中的位置,為進一步的故障排除提供了詳細依據(jù)。簡化的發(fā)送端實現(xiàn)代碼如圖5所示。
數(shù)據(jù)包探測法在處理網(wǎng)絡鏈路故障時得到了很好的應用。不僅能夠?qū)栴}準確定位,而且效率較高,使用該方法,經(jīng)常只用幾分鐘就可以解決人工花費幾個小時甚至一天多的問題。
本文提出的方法能夠滿足日常網(wǎng)絡故障定位和問題解決的需要,該方法有以下特點:
(1)思路明確,針對性強,對網(wǎng)絡鏈路故障特點有很好的適應性。
(2)軟件界面可操作性好,工作穩(wěn)定。
(3)檢測結論明確,具有足夠的說服力。
參考文獻
[1]田萌.一種探測網(wǎng)絡拓撲的新方法及其在向量網(wǎng)的應用[D].北京交通大學,2014.
[2]何子昂.10kV架空線故障定位系統(tǒng)的研究與開發(fā)[D].華南理工大學,2012.
Application of data packet detection method in solving network fault
Li Jun
(Xi`an FanYi University,Xi`an,710105)
Abstract:Network fault investigation is a very complex process.This paper analyzes the characteristics and common methods of network fault detection, and puts forward a communication link checking method based on network detection packet transmission and confirmation.
Keywords:network link;failure investigation
基金項目:電子商務專業(yè)綜合改革試點
作者簡介
性別:男,出生:1977年7月,籍貫:陜西西安,職稱:工程師,西安翻譯學院電子工程系教師,研究方向:計算機網(wǎng)絡。