遇到網(wǎng)絡(luò)故障的時(shí)候,你一般會(huì)最先使用哪條命令進(jìn)行排障?
除了Ping,還有Traceroute、Show、Telnet又或是Clear、Debug等等。
今天安排的,是Traceroute排障命令詳解,給你分享3個(gè)經(jīng)典排障案例哈。
01
Traceroute原理和功能
Traceroute是為了探測(cè)源節(jié)點(diǎn)到目的節(jié)點(diǎn)之間數(shù)據(jù)報(bào)文所經(jīng)過的路徑。
利用IP報(bào)文的TTL域在每經(jīng)過一個(gè)路由器的轉(zhuǎn)發(fā)后減一,當(dāng)TTL=0時(shí)則向源節(jié)點(diǎn)報(bào)告TTL超時(shí)這個(gè)的特性。
Traceroute首先發(fā)送一個(gè)TTL為1的Icmp request報(bào)文,因此第一跳發(fā)送回一個(gè)ICMP錯(cuò)誤消息以指明此數(shù)據(jù)報(bào)不能被發(fā)送(因?yàn)門TL超時(shí))。
之后Traceroute再發(fā)送一個(gè)TTL為2的報(bào)文,同樣第二跳返回TTL超時(shí),這個(gè)過程不斷進(jìn)行,直到到達(dá)目的地。
此時(shí),由于數(shù)據(jù)報(bào)中使用了無效的端口號(hào)(缺省為33434),目的主機(jī)會(huì)返回一個(gè)ICMP的目的地不可達(dá)消息,表明該Traceroute操作結(jié)束。
Traceroute記錄下每一個(gè)ICMP TTL超時(shí)消息的源地址,從而提供給用戶報(bào)文到達(dá)目的地所經(jīng)過的網(wǎng)關(guān)IP地址。
主要用于檢查網(wǎng)絡(luò)連接是否可達(dá),以及分析網(wǎng)絡(luò)什么地方發(fā)生了故障。
02
不同平臺(tái)的Traceroute命令
01 RGNOS平臺(tái)的Traceroute命令
舉個(gè)例子,在銳捷RG系列路由器上,Traceroute命令的格式如下:
Traceroute host 『destination』
例如:查看到目的主機(jī)10.15.50.1 中間所經(jīng)過的網(wǎng)關(guān)。
RG# traceroute 10.15.50.1
Type esc/CTRL^c/CTRL^z/q to abort.
traceroute 192.168.0.1 ......
1 10.110.40.1 1 4 ms 5 ms 5 ms
2 10.110.0.64 10 ms 5 ms 5 ms
3 10.110.7.254 10 ms 5 ms 5 ms
4 10.3.0.177 175 ms 160 ms 145 ms
5 129.9.181.254 185 ms 210 ms 260 ms
6 10.15.50.1 230 ms 185 ms 220 ms
Trace complete successfully.
02 Windows平臺(tái)的Tracert 命令
在PC機(jī)上或Windwos為平臺(tái)的服務(wù)器上,Tracert命令的格式如下:
tracert [ -d ] [ -h maximum_hops ] [ -j host-list ] [ -w timeout ] host
-d :不解析主機(jī)名。
-h:指定最大TTL大小。
-j:設(shè)定松散源地址路由列表。
-w:用于設(shè)置UDP報(bào)文的超時(shí)時(shí)間,單位毫秒;例如:查看到目的主機(jī)10.15.50.1 中間所經(jīng)過的前兩個(gè)網(wǎng)關(guān)。
:\>tracert -h 2 10.15.50.1
Tracing route to 10.15.50.1 over a maximum of 2 hops:
1 3 ms 2 ms 2 ms 10.110.40.1
2 5 ms 3 ms 2 ms 10.110.0.64
Trace complete.
03
使用Traceroute命令進(jìn)行故障排除
排障案例① 使用Traceroute命令定位不當(dāng)?shù)木W(wǎng)絡(luò)配置點(diǎn)
1、現(xiàn)象描述:
組網(wǎng)情況如下圖所示:
某校園網(wǎng)中,RouterB和RouterC同屬于一個(gè)運(yùn)行RIPv2路由協(xié)議的網(wǎng)絡(luò),主機(jī)4.0.0.2訪問數(shù)據(jù)庫(kù)服務(wù)器5.0.0.2,用戶抱怨訪問性能差。
2、相關(guān)信息:
在主機(jī)上ping 5.0.0.2顯示如下:
C:\Documents and Settings\c>ping -n 10 -l 1000 5.0.0.2
Pinging 5.0.0.2 with 1000 bytes of data:
Reply from 5.0.0.2: bytes=1000 time=552ms TTL=250
Reply from 5.0.0.2: bytes=1000 time=5735ms TTL=250
Reply from 5.0.0.2: bytes=1000 time=551ms TTL=250
Reply from 5.0.0.2: bytes=1000 time=5734ms TTL=250
Reply from 5.0.0.2: bytes=1000 time=549ms TTL=250
Reply from 5.0.0.2: bytes=1000 time=5634ms TTL=250
Reply from 5.0.0.2: bytes=1000 time=555ms TTL=250
Reply from 5.0.0.2: bytes=1000 time=5738ms TTL=250
Reply from 5.0.0.2: bytes=1000 time=455ms TTL=250
Reply from 5.0.0.2: bytes=1000 time=5811ms TTL=250
3、原因分析:
上面的Ping顯示出一個(gè)規(guī)律,奇數(shù)報(bào)文的返回時(shí)長(zhǎng)短,而偶數(shù)報(bào)文返回時(shí)長(zhǎng)很長(zhǎng)(是奇數(shù)報(bào)文的10倍多)。
可以初步判斷奇數(shù)報(bào)文和偶數(shù)報(bào)文是通過不同的路徑傳輸?shù)摹?/span>
現(xiàn)在我們需要使用Traceroute命令來追蹤這不同的路徑。在RouterC上,Traceroute遠(yuǎn)端RouterA的以太網(wǎng)接口5.0.0.1。
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 ......
1 6 ms 4 ms 4 ms 4 ms 4 ms 4 ms 4 ms 4 ms 4.0.0.1
。。。。。。(中間省略)
5 20 ms 16 ms 15 ms 16 ms 16 ms 16 ms 16 ms 16 ms 3.0.0.2
6 30 ms 278 ms 25 ms 279 ms 25 ms 278 ms 25 ms 277 ms 5.0.0.1
RouterC(config)#
從上面的顯示可看到,直至3.0.0.2,UDP探測(cè)報(bào)文的返回時(shí)長(zhǎng)都基本一。
而到5.0.0.1時(shí),則發(fā)生明顯變化,呈現(xiàn)奇數(shù)報(bào)文時(shí)長(zhǎng)短,偶數(shù)報(bào)文時(shí)長(zhǎng)長(zhǎng)的現(xiàn)象。
于是判斷,問題發(fā)生在RouterB和RouterA之間。
通過詢問該段網(wǎng)絡(luò)的管理員,得知這兩路由器間有一主一備兩串行鏈路,主鏈路為2.048Mbps(s0口之間),備份鏈路為128Kbps(s1口之間)。
網(wǎng)絡(luò)管理員在此兩路由器間配置了靜態(tài)路由。
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上如下配置:
outerA(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,由于管理員配置時(shí)沒有給出靜態(tài)路由的優(yōu)先級(jí),這兩條路由項(xiàng)的管理距離就同為缺省值1。
然后就同時(shí)出現(xiàn)在路由表中,實(shí)現(xiàn)的是負(fù)載分擔(dān),而不能達(dá)到主備的目的。
4、處理過程:
可以有兩種處理方法。
一個(gè)是,繼續(xù)使用靜態(tài)路由,進(jìn)行配置更改 RouterB上進(jìn)行如下更改:
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上進(jìn)行如下更改:
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
這樣,只有當(dāng)主鏈路發(fā)生故障,備份鏈路的路由項(xiàng)才會(huì)出線在路由表中,從而接替主鏈路完成報(bào)文轉(zhuǎn)發(fā),實(shí)現(xiàn)主備目的。
第二個(gè)是,在兩路由器上運(yùn)行動(dòng)態(tài)路由協(xié)議,如OSPF,但不要運(yùn)行RIP協(xié)議(因?yàn)镽IP協(xié)議是僅以hop作為Metric的)。
5、建議和總結(jié):
本案例的目的不是為了解釋網(wǎng)絡(luò)配置問題,而是用來展示Ping命令和Traceroute命令的相互配合來找到網(wǎng)絡(luò)問題的發(fā)生點(diǎn)。
尤其在一個(gè)大的組網(wǎng)環(huán)境中,維護(hù)人員可能無法沿著路徑逐機(jī)排查,此時(shí),能夠迅速定位出發(fā)生問題的線路或路由器就非常重要了。
排障案例② 使用Traceroute命令發(fā)現(xiàn)路由環(huán)路
1、現(xiàn)象描述:
組網(wǎng)情況如下圖所示:
三臺(tái)路由器均配置靜態(tài)路由,完成后,登錄到RouterA上Ping主機(jī)4.0.0.2,發(fā)現(xiàn)不通。
2、相關(guān)信息:
RouterA# ping 4.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 ......
1 6 ms 4 ms 4 ms 1.0.0.1(RouterB)
2 8 ms 8 ms 8 ms 1.0.0.2(RouterA)
3 12 ms 12 ms 12 ms 1.0.0.1(RouterB)
4 16 ms 16 ms 16 ms 1.0.0.2(RouterA)
。。。。。。
3、原因分析:
從上面的Traceroute命令的顯示可以立即發(fā)現(xiàn),在RouterA和RouterB間產(chǎn)生了路由環(huán)路。
由于是配置的是靜態(tài)路由,基本可以斷定是RouterA或RouterB的靜態(tài)路由配置錯(cuò)誤。
檢查RouterA的路由表,配置的是缺省靜態(tài)路由:ip route 0.0.0.0 0.0.0.0 1.0.0.1,沒有問題。
檢查RouterB的路由表,配置到4.0.0.0網(wǎng)絡(luò)的靜態(tài)路由為:ip route 4.0.0.0 255.0.0.0 1.0.0.2――下一跳配置的是1.0.0.2,而不是3.0.0.1。這正是錯(cuò)誤所在。
4、處理過程:
修改RouterB的配置如下:
RouterB(config)# no ip route 4.0.0.0 255.0.0.0 1.0.0.2
RouterB(config)# ip route 4.0.0.0 255.0.0.0 3.0.0.1
故障排除。
5、建議和總結(jié):
Traceroute命令能夠很容易發(fā)現(xiàn)路由環(huán)路等潛在問題。
當(dāng)路由器A認(rèn)為路由器B知道到達(dá)目的地的路徑,而路由器B也認(rèn)為路由器A知道目的地時(shí),就是路由環(huán)路發(fā)生了。
使用Ping命令只能知道接收端出現(xiàn)超時(shí)錯(cuò)誤,而Traceroute能夠立即發(fā)現(xiàn)環(huán)路所在――如果Traceroute命令兩次或者多次顯示同樣的接口。
當(dāng)通過Traceroute發(fā)現(xiàn)路由環(huán)路后,如果配置為:
靜態(tài)路由:幾乎可以肯定是手工配置有問題,如本案例所示。
OSPF協(xié)議:可能是地址聚合產(chǎn)生的問題。
多路由協(xié)議:可能是路由引入產(chǎn)生的問題。
聯(lián)系客服