第十章網絡設備基本調試

    網絡按照初始目標組建配置完成後,首要的認識是檢查網絡的連通性。網絡的連通性是指一臺主機或設備上的一個IP地址到另一臺主機或設備上的一個IP地址的可達性。本章將介紹檢測網絡連通性的常用命令。

    爲了達到網絡連通性,單個網絡設備及網絡設備之間同時還運行各種協議或交互相關控制信息。有時,爲了定位這些協議或模塊是否正常運行,需要使用調試工具。本章對如何使用調試工具以及如何控制調試信息的輸出和顯示也進行了介紹。

網絡連通性測試

使用ping測試網絡的連通性

ping的實現原理

wKiom1aLa5CDZgjlAAEuw_AMCWg120.jpg

    ping實際上是基於ICMP協議開發的應用程序,它是在計算機的各種操作系統或網絡設備上廣泛使用的檢測網絡連通性的常用工具。通過使用ping命令,用戶可以檢查指定地址的主機或設備是否可達,測試網絡連接是否出現故障。

    ICMP定義了不同類型的協議報文,ping主要使用了其中Echo Request(回波請求)和Echo Reply(回波響應)兩種報文。如圖所示,在RTA命令行界面輸入ping 192.168.3.1命令,源設備RTA向目的設備RTC發送ICMP Echo Request報文;如果網絡工作正常,則目的設備在接收到該報文後,向源設備R迴應ICMP Echo Reply報文(如本例);如果網絡工作異常,源設備RTA將顯示目的地址不可達或超時等提示信息。通過這個交互過程,源設備RTA即可知道目的設備的IP層相關狀態。

ping命令的輸出

wKioL1aMi4yQUcDrAAFcw9_ylQE226.jpg

    上圖演示了ping命令的實際輸出結果。

    在本例中,RTA在超時時間內收到了目的設備RTC對每個ICMP Echo Request報文的響應,因此RTA上輸出了響應報文的字節數、報文序號、TTL(Time To Live,生存時間)、響應時間。

    在圖中最後的幾行中,輸出了ping過程報文的統計信息,主要包括髮送報文個數、接收到響應報文個數、未響應報文數百分比、響應時間的最小值、平均值和最大值。

使用ping命令

wKioL1aMjWTBdgl1AAHpXBQtajU091.jpg

ping命令提供了豐富的可選參數,數目如下:

  • -a source-ip:指定ICMP Echo Request報文中的源IP地址。

  • -c count:指定發送ICMP Echo Request報文的數目,取值範圍爲1~4294967295,默認值爲5。

  • -f:將長度大於接口MTU的報文直接丟棄,即不允許對發送的ICMP Echo Request報文進行分片。

  • -h ttl:指定ICMP Echo Request報文中的TTL值,取值範圍爲1~255,默認值爲255。

  • -i interface-type interface-number:指定發送報文的接口的類型和編號。

  • -m interval:指定發送ICMP Echo Request報文的時間間隔,取值範圍爲1~65535,單位爲毫秒,默認值爲200毫秒。如果在timeout時間內收到目的主機的響應報文,則下次ICMP Echo Request報文的發送時間間隔爲報文的實際響應時間與interval之和;如果在timeout 時間內沒有收到目的主機的響應報文,則下次ICMP Echo Request報文的發送時間間隔爲timeout與interval之和。

  • -n:不進行域名解析。默認情況下,系統將對hostname進行域名解析。

  • -p pad:指定ICMP Echo Request報文的填充字節,格式爲16進制。比如將“pad”設置爲ff,則報文將被全部填充爲ff。默認情況下,填充的字節從0x01開始,逐漸遞增,直到0x09,然後又從0x01開始循環填充。

  • -q:除統計數字外,不顯示其它詳細信息。默認情況下,系統將顯示包括統計信息在內的全部信息。

  • -r:記錄路由。默認情況下,系統不記錄路由。

  • -s packet-size:指定發送的ICMP Echo Request報文的長度(不包括IP和ICMP報文頭),取值範圍爲20~8100,單位爲字節,默認值爲56字節。

  • -t timeout:指定ICMP Echo Reply報文的超時時間,取值範圍爲1~65535,單位爲毫秒,默認值爲2000毫秒。

  • -tos tos:指定ICMP Echo Request報文中的ToS(Type of Service,服務類型)域的值,取值範圍爲0~255,默認值爲0。

  • -v:顯示收到的非Echo Reply的ICMP報文。默認情況下,系統不顯示非Echo Reply的ICMP報文。

使用tracert檢測網絡連通性

tracert的實現原理

wKiom1aNvHnRtGtQAAFiC4Sb9ys412.jpg

    通過使用tracert命令,用戶可以查看報文從源設備傳送到目的設備所經過的路由器。當網絡出現故障時,用戶可以使用該命令分析出現故障的網絡節點。

    本圖演示了在RTA上執行tracert 192.168.3.1命令的工作過程:

  1. 源設備RTA對目的設備的某個較大的端口發送一個TTL爲1的UDP報文;

  2. 由於網絡設備處理IP報文中的TTL值時,將其逐跳遞減,因此,該報文到達第一跳RTB後,TTL將變爲0,RTB於是迴應一個TTL超時的ICMP報文,該報文中含有第一跳的IP地址,這樣遠設備就得到了第一跳路由器的RTB的地址;

  3. 源設備重新發送一個TTL爲2的報文給目的設備;

  4. TTL爲2的ICMP報文首先傳遞給RTB,TTL遞減爲1,該ICMP報文到達RTC後,TTL將遞減爲0,由於RTC是ICMP的目的地,RTC將回應給RTA一個端口不可達的ICMP消息,RTA收到該消息後,將會知道已經跟蹤到目的地,因此,將停止向外發送報文。

  5. 如果RTC距離RTA有多跳,以上過程將不斷進行,直到最終到達目的設備,源設備就得到了從它到目的設備所經過的所有路由器的地址。

    tracert命令的輸出


wKioL1aNwU2zOsJBAAJrGHMWW_M317.jpg

    本圖的上半部分顯示了RTA執行tracert命令後的輸出,對於每個TTL遞增的報文,RTA都要重複發三次,因此輸出結果中顯示了每一跳接收響應的時延。最後一跳是跟蹤的目的地。

    本圖的下半部分顯示了RTA執行tracert命令後的調試信息(後面的小節將詳細講解如何獲得調試信息),調試信息顯示了中間跳路由器和最後目的跳路由器對RTA的不同響應方法。

使用tracert命令

wKiom1aNxSLgcWUqAADF16xDwhA809.jpg

tracert命令使用的可選參數含義如下:

  • -a source-ip:指明tracert報文的源IP地址。

  • -f first-ttl:指定一個初始TTL,即第一個報文所允許的跳數。取值範圍爲1~255,且小於最大TTL,默認值爲1。

  • -m max-ttl:指定一個最大TTL,即一個報文所允許的最大跳數,取值範圍爲1~255,且大於初始TTL,默認值爲30。

  • -p port:指明目的設備的UDP端口號,取值範圍爲1~65535,默認值爲33434。用戶一般不需要更改此選項。

  • -q packet-num:指明每次發送的探測報文個數,取值範圍爲1~65535,默認值爲3。

  • -w timeout:指定等待探測報文響應的報文的超時時間,取值範圍是1~65535,單位爲毫秒,默認值爲5000毫秒。

  • remote-system:目的設備的IP地址或主機名(主機名是長度爲1~20的字符串)。

系統調試

系統調試概述

系統調試介紹

  • 對網絡設備所支持的絕大部分協議和功能,系統都提供了相應的調試功能,幫助用戶對錯誤進行診斷和定位

  • 調試信息的輸出由兩個開關控制

wKiom1aNx-HwBKu1AAH_pTGzgyg448.jpg

    對於設備所支持的各種協議和特性,系統基本上都提供了相應的調試功能,幫助用戶對錯誤進行診斷和定位。

    調試信息的輸出可以由兩個開關控制:

  • 協議調試開關:也稱爲模塊調試開關,控制是否輸出某協議模塊的調試信息。

  • 屏幕輸出開關:控制是否在某個用戶屏幕上顯示調試信息。

    協議調試開關和屏幕輸出開關的關係如圖所示。用戶只有將兩個開關都打開,調試信息纔會在終端顯示出來。

系統調試操作

wKiom1aNyR7S_UQrAAINEURaDRY461.jpg

    terminal debugging命令的作用是打開調試信息的屏幕輸出開關,以控制是否在某個用戶屏幕上顯示調試信息。

    debugging命令用於打開協議調試開關。因此,該命令後面要指定相關的協議模塊名稱,如ATM、ARP。當然模塊名稱可能不只一個參數,比如關係IP層如何處理報文時,可以使用debugging ip packet命令。

    terminal monitor命令用於開啓控制檯對系統信息的監視功能,調試信息屬於系統信息的一種,因此,這是一個更高一級的開關命令,只不過該命令在需要觀察調試信息時候是可選的,因爲默認情況下,控制檯的監視功能就處於開啓狀態。

    最後,通過display debugging命令可以查看系統當前哪些協議調試信息開關是打開的。

調試信息輸出示例

wKiom1aN0Xmxic6UAAItZzgu6QU566.jpg

    這裏是一個爲了觀察ping命令執行過程,打開debug ip packet協議調試開關的例子。該例顯示了當RTA發出一個ICMP ECHO-REQUEST報文和收到一個ICMP ECHO-REPLY報文時,IP協議層處理的詳細過程。

    該例中,執行ping命令時使用了-c參數,因此只發出一個ICMP請求迴應報文。“Oct 1 17:16:21:648 2008 RTA IPFWD/7/debug_case:”位屏幕打出的系統信息,提示以下將是調試信息的輸出,並且說明了調試信息的輸出時間,及相關的模塊名IPFWD——IP轉發模塊。

    調信息分爲三個段落。第一段說明了承載該ICMP報文的IP報頭實際內容,包括報文長度、報文ID、偏移量、協議號、源地址和目的地址等。經過查找路由表/轉發表,該ICMP報文將從本地的串行接口Serial 6/0轉發出去。第二段說明RTA從Serial 6/0收到了一個報文,和第一段類似,RTA打印出了該報文IP頭的相關內容。可以看出,這個報文就是對剛剛發出的ICMP迴應請求報文的應答。最後一段與第二段描述的是同一個報文,由於RTA就是此報文的目的地,它要被遞交該本地IP轉發層的上層進行處理,因而,系統可以後續打印出“Reply from 192.168.1.2:”,證明到達192.168.1.2是可達的。

    在圖中最後的幾列中顯示了ping過程報文的統計信息,主要包括:發送了一個報文,接收到一個響應報文,由於沒有未響應報文,因此丟包率是0%,此處ping響應時間的最小值、平均值和最大值都是26毫秒(因爲只進行了一次ICMP請求和應答)。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章