精華 | 網絡故障排除命令匯總【網工必須收藏】( 四 )


RouterC(config)#traceroute
Target IP address or host: 5.0.0.1
Maximum number of hops to search for target [30]:10
Repeat count for each echo[3]:8
Wait timeout milliseconds for each reply [2000]:
Type esc/CTRL^c/CTRL^z/q to abort.
traceroute 5.0.0.1 ......
16 ms4 ms4 ms4 ms4 ms4 ms4 ms4 ms4.0.0.1
。。。。。。(中間省略)
520 ms16 ms15 ms16 ms16 ms16 ms16 ms16 ms3.0.0.2
630 ms278 ms25 ms279 ms25 ms278 ms25 ms277 ms5.0.0.1
RouterC(config)#
從上面的顯示可看到,直至3.0.0.2,UDP探測報文的返回時長都基本一致,而到5.0.0.1時,則發生明顯變化,呈現奇數報文時長短,偶數報文時長長的現象 。于是判斷,問題發生在RouterB和RouterA之間 。
通過詢問該段網絡的管理員,得知這兩路由器間有一主一備兩串行鏈路,主鏈路為2.048Mbps(s0口之間),備份鏈路為128Kbps(s1口之間) 。網絡管理員在此兩路由器間配置了靜態路由 。
RouterB上如下配置:
RouterB(config)# ip route 5.0.0.0 255.0.0.0 1.0.0.2
RouterB(config)# ip route 5.0.0.0 255.0.0.0 2.0.0.2
RouterA上如下配置:
RouterA(config)# ip route 0.0.0.0 0.0.0.0 1.0.0.1
RouterA(config)# ip route 0.0.0.0 0.0.0.0 2.0.0.1
于是問題就清楚了 。例如RouterB,由于管理員配置時沒有給出靜態路由的優先級,這兩條路由項的管理距離就同為缺省值1,于是就同時出現在路由表中,實現的是負載分擔,而不能達到主備的目的 。
(3) 處理過程
可以有兩種處理方法:

  • 繼續使用靜態路由,進行配置更改 RouterB上進行如下更改:
RouterB(config)# ip route 5.0.0.0 255.0.0.0 1.0.0.2 (主鏈路仍使用缺省1)
RouterB(config)# ip route 5.0.0.0 255.0.0.0 2.0.0.2 100(備份鏈路的降低至100)
RouterA上進行如下更改:
RouterA(config)# ip route 0.0.0.0 0.0.0.0 1.0.0.1
RouterA(config)# ip route 0.0.0.0 0.0.0.0 2.0.0.1 100
這樣,只有當主鏈路發生故障,備份鏈路的路由項才會出線在路由表中,從而接替主鏈路完成報文轉發,實現主備目的 。
  • 在兩路由器上運行動態路由協議,如OSPF,但不要運行RIP協議(因為RIP協議是僅以hop作為Metric的)
(4) 建議和總結
本案例的目的不是為了解釋網絡配置問題,而是用來展示Ping命令和Traceroute命令的相互配合來找到網絡問題的發生點 。尤其在一個大的組網環境中,維護人員可能無法沿著路徑逐機排查,此時,能夠迅速定位出發生問題的線路或路由器就非常重要了 。
案例二:使用Traceroute命令發現路由環路(1) 現象描述
組網情況如下圖所示:

精華 | 網絡故障排除命令匯總【網工必須收藏】


三臺路由器均配置靜態路由,完成后,登錄到RouterA上Ping主機4.0.0.2,發現不通 。
(2) 相關信息顯示
RouterA# ping4.0.0.2
Sending 5, 100-byte ICMP Echos to 4.0.0.2,
timeout is 2000 milliseconds.
.....
Success rate is 0 percent (0/5)
RouterA# traceroute 4.0.0.2
Type esc/CTRL^c/CTRL^z/q to abort.
traceroute 4.0.0.2 ......
16 ms4 ms4 ms1.0.0.1(RouterB)
28 ms8 ms8 ms1.0.0.2(RouterA)
312 ms12 ms12 ms 1.0.0.1(RouterB)
416 ms16 ms16 ms 1.0.0.2(RouterA)
。。。。。。
(3) 原因分析
從上面的Traceroute命令的顯示可以立即發現,在RouterA和RouterB間產生了路由環路 。由于是配置的是靜態路由,基本可以斷定是RouterA或RouterB的靜態路由配置錯誤 。檢查RouterA的路由表,配置的是缺省靜態路由:

推薦閱讀