李 軍(西安翻譯學院,西安,710105)
?
數據包探測法在解決網絡故障中的應用
李 軍
(西安翻譯學院,西安,710105)
摘要:網絡故障排查是一個十分復雜的過程。本文分析了網絡故障排查的特點和常用方法,提出了以網絡探測數據包發送和確認為基礎的通信鏈路檢查方法。
關鍵詞:網絡鏈路;故障排查
網絡是由若干條通信鏈路組成的,通信鏈路是網絡運行的基礎,其傳輸質量是數據能否正確傳輸的關鍵。一般的網絡中心對外有多個通信鏈路,包括內部到各個外部節點。在實際通信過程中,經常出現由于網絡故障,導致數據不能正常進行收發的情況。
典型的通信鏈路可以描述如圖1所示。從圖中可以看出,通信鏈路上的關鍵節點一般有:①內部主機;②核心交換機;③通信交換機;④通信路由器;⑤對方路由器;⑥對方交換機;⑦對方主機。
當網絡鏈路發生故障時,最直接的處理方法就是人工對通信線路和網絡中的各個節點設備進行配置檢查。人工檢查能夠發現設備配置上的錯誤,但在某些情況下,難以直觀的從設備配置上看出故障發生的原因,即各個通信節點配置檢查都正確,但整條鏈路就是不通。而且,由于一個通信鏈路上的節點由不同的單位分管,設備配置檢查往往由各單位自行完成,難免會出現檢查人員水平參差不齊、對鏈路配置理解不一致和掌握不準確的情況,從而導致檢查結果不夠客觀。

圖1 典型的通信鏈路
在鏈路檢查過程中,還可以使用PING命令發送ICMP數據包來驗證鏈路的通斷性,對于有多個中間通信節點的鏈路來說,PING命令和TRACEROUTE命令結合,可以檢查出到哪個中間節點鏈路停止響應。這種方法具有使用方便的優點。但在某些情況下卻不太適用,主要有以下幾種情況:
(1)在中間通信節點較多的情況下,為了安全,路由設置不指向所有的中間節點,僅指向鏈路兩端的目標節點。如在圖1中,節點④通信路由器配置指向節點⑦對方主機的路由,并不配置指向節點⑥對方交換機的路由。而PING數據包是需要通過返回應答包來確認鏈路正確的,由于中間節點路由配置的特點,往往對于中間節點的ICMP數據包無法收到應答信息,導致檢查過程難以進行,不能準確判斷是哪個中間節點出現了問題導致路由不通。
(2)對于某些有特殊安全要求的方向,設置了網絡加密機進行數據的加解密,網絡加密機對于大多數網絡協議進行了屏蔽和加密,必須在網絡中成對使用。在這種情況下,PING命令往往只能在兩個網絡保密機的兩端進行測試,不能跨過一個保密機到達鏈路的中間節點。導致難以實現故障節點的準確定位。
(3)由于PING命令發出的ICMP數據包協議類型不同于實際收發的組播或點播格式數據,因此僅能夠測試路由鏈路,不能夠測試組播鏈路的正確性。
2.1 基本過程
數據包探測的基本過程如圖2所示,該方法需要在內部網絡選擇一臺能夠與對方主機進行路由連接的計算機作為探測主機。主要分為以下步驟:
2.1.1 從內網探測主機向對方主機發送探測數據包。數據包的發送采用軟件自動設定參數進行,根據需要可以采用以下兩種方式:
(1)點播。該方式主要是為了驗證從內網探測主機到對方主機的路由正確性。在采用點播方式發送時,目標地址為對方主機的IP地址。
(2)組播。該方式主要是為了驗證路由及組播協議配置的正確性。在采用組播方式發送時,組播地址和端口號為內部網絡向該外部單位實際發送數據的地址和端口。
2.1.2 如果對方主機接收到內網發送的數據,說明該方向鏈路通信正常,結束探測過程。如果對方主機沒有接收到內網發送的數據,則說明該方向鏈路存在問題,進行下一步的檢測。
2.2 中間節點故障定位
在數據鏈路的各個中間節點上,檢查數據包的命令為:show interfaces *。其中 * 表示在該通信節點上進行數據通信的端口名稱。該命令輸出的結果信息如圖3所示,圖中加粗字體部分表示5分鐘內輸入輸出該接口的數據量,分別以平均位計數和平均包計數進行顯示。因為發送的探測數據計量單位是包,所以僅關心平均包計數的變化。
以每秒發送50個數據包為例,假設原來該端口5分鐘內平均輸入速率分別為每秒0個、1個、5個、10個數據包,且均勻分布,則從開始發送數據起,端口的輸入變化和時間關系如表1所示。由表中可以看出,當開始發送探測數據包后,導致端口速率發生穩定變化,發送5分鐘后,端口速率達到穩定值。如果端口的輸入速率符合此規律,則說明發送的探測數據包已經到達該端口,該端口之前的各個節點配置和線路沒有問題。

表1:端口包速率變化
2.3 數據發送軟件設計
數據發送軟件設計為能夠同時向多個組播和UDP地址發送數據,也能夠接收任意源和指定源組播。在發送時,可以根據需要設置每次發送數據包的長度、個數以及兩次數據發送之間的間隔,并能夠進行發送包、接收包統計。該軟件不僅能夠用于發送探測數據包,還可以用于通信鏈路的兩端計算機上,接收任意組播的數據,達到獨立檢測和驗證鏈路正確性的目的。
(2)包計數。為了在通信鏈路兩端能夠確認數據包的唯一性,在每個發送的數據包上加入了包序號,以此來判斷是否為本軟件發送出的包,并且能夠在發生丟包的時候準確定位其在發送序列中的位置,為進一步的故障排除提供了詳細依據。簡化的發送端實現代碼如圖5所示。
數據包探測法在處理網絡鏈路故障時得到了很好的應用。不僅能夠將問題準確定位,而且效率較高,使用該方法,經常只用幾分鐘就可以解決人工花費幾個小時甚至一天多的問題。
本文提出的方法能夠滿足日常網絡故障定位和問題解決的需要,該方法有以下特點:
(1)思路明確,針對性強,對網絡鏈路故障特點有很好的適應性。
(2)軟件界面可操作性好,工作穩定。
(3)檢測結論明確,具有足夠的說服力。
參考文獻
[1]田萌.一種探測網絡拓撲的新方法及其在向量網的應用[D].北京交通大學,2014.
[2]何子昂.10kV架空線故障定位系統的研究與開發[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
基金項目:電子商務專業綜合改革試點
作者簡介
性別:男,出生:1977年7月,籍貫:陜西西安,職稱:工程師,西安翻譯學院電子工程系教師,研究方向:計算機網絡。