遇到網(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地址。
Traceroute 命令用于測(cè)試數(shù)據(jù)報(bào)文從發(fā)送主機(jī)到目的地所經(jīng)過的網(wǎng)關(guān)。
主要用于檢查網(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ù)庫服務(wù)器5.0.0.2,用戶抱怨訪問性能差。
2、相關(guān)信息:
在主機(jī)上ping ?5.0.0.2顯示如下:
C:Documents and Settingsc>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ù)摹?/p>
現(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)生的問題。
編輯:黃飛
評(píng)論
查看更多