?
一、名詞解釋
Tracert(跟蹤路由)是路由跟蹤實(shí)用程序,用于確定?IP 數(shù)據(jù)包訪問目標(biāo)所采取的路徑。Tracert 命令用 IP 生存時(shí)間 (TTL) 字段和 ICMP 錯(cuò)誤消息來確定從一個(gè)主機(jī)到網(wǎng)絡(luò)上其他主機(jī)的路由。
通過向目標(biāo)發(fā)送不同IP生存時(shí)間 (TTL) 值的“Internet控制消息協(xié)議?(ICMP)”回應(yīng)數(shù)據(jù)包,Tracert診斷程序確定到目標(biāo)所采取的路由。要求路徑上的每個(gè)路由器在轉(zhuǎn)發(fā)數(shù)據(jù)包之前至少將數(shù)據(jù)包上的?TTL 遞減 1。數(shù)據(jù)包上的 TTL 減為 0 時(shí),路由器應(yīng)該將“ICMP 已超時(shí)”的消息發(fā)回源系統(tǒng)。
Tracert 先發(fā)送 TTL 為 1 的回應(yīng)數(shù)據(jù)包,并在隨后的每次發(fā)送過程將TTL遞增?1,直到目標(biāo)響應(yīng)或 TTL 達(dá)到最大值,從而確定路由。通過檢查中間路由器發(fā)回的“ICMP 已超時(shí)”的消息確定路由。某些路由器不經(jīng)詢問直接丟棄 TTL 過期的數(shù)據(jù)包,這在?Tracert 實(shí)用程序中看不到。
可以使用?tracert 命令確定數(shù)據(jù)包在網(wǎng)絡(luò)上的停止位置。
?
二、如何使用
1、IP地址或者域名:輸入要追蹤的目的地址。
2、指定源接口:指定從哪個(gè)接口去追蹤。
3、最大路由跳數(shù):設(shè)置數(shù)字幾,就顯示幾條到達(dá)目的地址經(jīng)過的路由設(shè)備和對(duì)應(yīng)地址。
4、超時(shí)等待時(shí)間:每一跳之間等待的時(shí)間。
?
三、舉例
路由追蹤,到百度經(jīng)過的路由設(shè)備和對(duì)應(yīng)地址
?
四、知識(shí)擴(kuò)展
?
1、命令行
Tracert 命令支持多種選項(xiàng),如下表所示。
用法: tracert [-d] [-h maximum_hops] [-j host-list] [-w timeout][-R] [-S srcaddr] [-4] [-6] target_name
選項(xiàng):
-d 不將地址解析成主機(jī)名。
-h maximum_hops 搜索目標(biāo)的最大躍點(diǎn)數(shù)。
-j host-list 與主機(jī)列表一起的松散源路由(僅適用于 IPv4)。
-w timeout 等待每個(gè)回復(fù)的超時(shí)時(shí)間(以毫秒為單位)。
-R 跟蹤往返行程路徑(僅適用于 IPv6)。
-S srcaddr 要使用的源地址(僅適用于 IPv6)。
-4 強(qiáng)制使用 IPv4。
-6 強(qiáng)制使用 IPv6。
target_name 目標(biāo)主機(jī)的名稱或?IP 地址。
當(dāng)我們不能通過網(wǎng)絡(luò)訪問目的設(shè)備時(shí),網(wǎng)絡(luò)管理員就需要判斷是哪里出了問題。問題不僅僅會(huì)出現(xiàn)在最終目的設(shè)備,也可能出現(xiàn)在轉(zhuǎn)發(fā)數(shù)據(jù)包的中間路由器。
有3種方式用來探測(cè)一?個(gè)數(shù)據(jù)包從源點(diǎn)到目的地經(jīng)過了哪些中轉(zhuǎn)路由器,這3種方式分別是:基于記錄路由選項(xiàng)的路由探測(cè),基于UDP協(xié)議的路由探測(cè),基于ICMP Echo Request的路由探測(cè)。三種方式都可以用來探測(cè)一個(gè)數(shù)據(jù)包到達(dá)目的設(shè)備經(jīng)過了哪些中間路由器,但實(shí)現(xiàn)的過程卻截然不同。
?
2、注意:
基于記錄路由選項(xiàng)的路由探測(cè)
1、基于Record route options(記錄路由選項(xiàng))的路由探測(cè)
這種方式是我們最容易理解的探測(cè)路由方式。比如,我想知道一封從上海發(fā)出,目的地是北京電信,中間經(jīng)過了多少個(gè)郵局轉(zhuǎn)發(fā)。這個(gè)過程很簡(jiǎn)單,只要中間郵局在轉(zhuǎn)發(fā)的信件扣上他們自己的郵戳,這封信到達(dá)目的地北京后,北京再把這封信回郵給我,當(dāng)我收到回信后,只要看信上的郵戳,便知道中間經(jīng)過哪些郵局。
ping -r www.aorb.org命令便可實(shí)現(xiàn)這種記錄中間路由的功能,返回的結(jié)果是中間路由器的IP地址。
1) ping命令發(fā)出的是類型為8的ICMP數(shù)據(jù)報(bào),當(dāng)使用ping -r時(shí),這個(gè)類型為8的ICMP數(shù)據(jù)報(bào)被裝在一個(gè)IP數(shù)據(jù)報(bào)里,IP數(shù)據(jù)報(bào)的Options(選項(xiàng))字段預(yù)留出給中間路由器扣戳的地方,這個(gè)地方不太大,只能容納9臺(tái)中轉(zhuǎn)路由器的IP地址。
2) 當(dāng)這個(gè)數(shù)據(jù)報(bào)被發(fā)送端送出后,每經(jīng)過一個(gè)中轉(zhuǎn)路由器,中轉(zhuǎn)路由器的IP軟件便會(huì)在此IP數(shù)據(jù)報(bào)的選項(xiàng)字段中加入一條這個(gè)中轉(zhuǎn)路由器的IP地址。
3) 當(dāng)這個(gè)數(shù)據(jù)包到達(dá)目的地時(shí)(如,www.aorb.org),目的設(shè)備便會(huì)生成一條類型為0的ICMP數(shù)據(jù)報(bào),這個(gè)ICMP數(shù)據(jù)報(bào)被封裝在一個(gè)新的IP數(shù)據(jù)報(bào)里,新IP數(shù)據(jù)報(bào)的Options字段中拷貝了剛才收到的IP數(shù)據(jù)報(bào)中的Options字段。
4) 當(dāng)這個(gè)新IP數(shù)據(jù)報(bào)回送到源發(fā)送端時(shí),您便會(huì)在屏幕上看見一些中間路由器的IP地址了。
基于UDP協(xié)議的路由探測(cè)
tracert是Windows下常用的命令行工具(基于ICMP協(xié)議),UNIX下與之對(duì)應(yīng)的是traceroute(基于UDP協(xié)議)。若想知道自己的電腦到www.aorb.org 經(jīng)過了多少個(gè)路由器,?可在命令行下輸入tracert www.aorb.org進(jìn)行探測(cè),返回結(jié)果也許會(huì)與ping -R相同,但它是以另一種方式實(shí)現(xiàn)的。這種方式并沒有像Record route options探測(cè)技術(shù)中使用IP協(xié)議包的Options字段,而是利用了IP協(xié)議包中的TTL字段。
基本思路是這樣的:www.aorb.org這臺(tái)服務(wù)器即賣茄子(提供HTTP服務(wù)),也賣黃瓜(提供FTP服務(wù)),但不賣土豆(未監(jiān)聽的UDP端口)。有位買家,為了知道一封信到達(dá)蔬菜供應(yīng)商www.aorb.org中間需要經(jīng)過幾個(gè)郵局(路由器),于是寫信給www.aorb.org詢問土豆的價(jià)格。
?
?
基于ICMP Echo Request的路由探測(cè)
這種探測(cè)方式與基于UDP協(xié)議的路由探測(cè)的實(shí)現(xiàn)步驟一樣,但發(fā)送端送出的不是一個(gè)UDP數(shù)據(jù)包,而發(fā)送的是一個(gè)ICMP類型為8的Echo Request(回顯請(qǐng)求)數(shù)據(jù)報(bào)文。與基于UDP協(xié)議的路由探測(cè)技術(shù)一樣,每次發(fā)送端都會(huì)把TTL值加1,每個(gè)中轉(zhuǎn)路由器都對(duì)TTL值減1,如果為0,便丟棄后給發(fā)送端發(fā)送一個(gè)超時(shí)報(bào)文,若不為0,則繼續(xù)轉(zhuǎn)發(fā)給下一跳。唯一不同的是,當(dāng)這個(gè)數(shù)據(jù)報(bào)到達(dá)最終目的節(jié)點(diǎn)時(shí),由于發(fā)送端發(fā)送的是Echo Request報(bào)文,所以接收端就會(huì)相應(yīng)一個(gè)ICMP類型為0的數(shù)據(jù)報(bào)文。這樣,當(dāng)發(fā)送端收到ICMP類型為0的數(shù)據(jù)報(bào)文時(shí),就知道了全部路由已經(jīng)查詢完畢,終止繼續(xù)探測(cè)。
Dos命令Tracert跟蹤路由詳解
Tracert
通過遞減“存在時(shí)間 (TTL)”字段的值將“Internet 控制消息協(xié)議 (ICMP)回顯請(qǐng)求”或 ICMPv6 消息發(fā)送給目標(biāo)可確定到達(dá)目標(biāo)的路徑。路徑將以列表形式顯示,其中包含源主機(jī)與目標(biāo)主機(jī)之間路徑中路由器的近側(cè)路由器接口。近側(cè)接口是距離路徑中的發(fā)送主機(jī)最近的路由器的接口。如果使用時(shí)不帶參數(shù),tracert 顯示幫助。
語法
tracert [-d] [-h MaximumHops] [-j HostList] [-w Timeout] [-R] [-S SrcAddr] [-4][-6] TargetName
參數(shù)
-d
防止?tracert 試圖將中間路由器的 IP地址解析為它們的名稱。這樣可加速顯示?tracert 的結(jié)果。
-h MaximumHops
指定搜索目標(biāo)(目的)的路徑中存在的躍點(diǎn)的最大數(shù)。默認(rèn)值為?30 個(gè)躍點(diǎn)。
-j HostList
指定回顯請(qǐng)求消息將?IP 報(bào)頭中的松散源路由選項(xiàng)與?HostList 中指定的中間目標(biāo)集一起使用。使用松散源路由時(shí),連續(xù)的中間目標(biāo)可以由一個(gè)或多個(gè)路由器分隔開。HostList 中的地址或名稱的最大數(shù)量為 9。HostList 是一系列由空格分隔的 IP 地址(用帶點(diǎn)的十進(jìn)制符號(hào)表示)。僅當(dāng)跟蹤IPv4地址時(shí)才使用該參數(shù)。
-w Timeout
指定等待“ICMP 已超時(shí)”或“回顯答復(fù)”消息(對(duì)應(yīng)于要接收的給定“回現(xiàn)請(qǐng)求”消息)的時(shí)間(以毫秒為單位)。如果超時(shí)時(shí)間內(nèi)未收到消息,則顯示一個(gè)星號(hào) (*)。默認(rèn)的超時(shí)時(shí)間為 4000(4 秒)。
-R
指定?IPv6 路由擴(kuò)展標(biāo)頭應(yīng)用來將“回顯請(qǐng)求”消息發(fā)送到本地主機(jī),使用目標(biāo)作為中間目標(biāo)并測(cè)試反向路由。
-S
指定在“回顯請(qǐng)求”消息中使用的源地址。僅當(dāng)跟蹤 IPv6 地址時(shí)才使用該參數(shù)。
-4
指定?Tracert.exe 只能將 IPv4 用于本跟蹤。
-6
指定?Tracert.exe 只能將 IPv6 用于本跟蹤。
TargetName
指定目標(biāo),可以是?IP 地址或主機(jī)名。
-?
在命令提示符下顯示幫助。
注釋
" 該診斷工具通過向目標(biāo)發(fā)送具有變化的“生存時(shí)間 (TTL)”值的“ICMP 回響請(qǐng)求”消息來確定到達(dá)目標(biāo)的路徑。要求路徑上的每個(gè)路由器在轉(zhuǎn)發(fā)數(shù)據(jù)包之?前至少將?IP 數(shù)據(jù)包中的 TTL 遞減 1。這樣,TTL 就成為最大鏈路計(jì)數(shù)器。數(shù)據(jù)包上的 TTL 到達(dá) 0 時(shí),路由器應(yīng)該將“ICMP 已超時(shí)”的消息發(fā)送回源計(jì)算機(jī)。Tracert 發(fā)送 TTL 為 1 的第一條“回響請(qǐng)求”消息,并在隨后的每次發(fā)送過程將 TTL 遞增 1,直到目標(biāo)響應(yīng)或躍點(diǎn)達(dá)到最大值,從而確定路徑。默認(rèn)情況下躍點(diǎn)的最大數(shù)量是 30,可使用 -h 參數(shù)指定。檢查中間路由器返回的“ICMP 超時(shí)”消息與目標(biāo)返回的“回顯答復(fù)”消息可確定路徑。但是,某些路由器不會(huì)為其?TTL 值已過期的數(shù)據(jù)包返回“已超時(shí)”消息,而且這些路由器對(duì)于 tracert 命令不可見。在這種情況下,將為該躍點(diǎn)顯示一行星號(hào) (*)。
" 要跟蹤路徑并為路徑中的每個(gè)路由器和鏈路提供網(wǎng)絡(luò)延遲和數(shù)據(jù)包丟失信息,請(qǐng)使用pathping命令。
" 只有當(dāng)“Internet 協(xié)議 (TCP/IP)”協(xié)議在“網(wǎng)絡(luò)連接”中安裝為網(wǎng)絡(luò)適配器屬性的組件時(shí),該命令才可用。
示例
要跟蹤名為?corp7.microsoft.com 的主機(jī)的路徑,請(qǐng)鍵入:
tracert corp7.microsoft.com
要跟蹤名為?corp7.microsoft.com 的主機(jī)的路徑并防止將每個(gè) IP地址解析為它的名稱,請(qǐng)鍵入:
tracert -d corp7.microsoft.com
要跟蹤名為?corp7.microsoft.com 的主機(jī)的路徑并使用松散源路由10.12.0.1-10.29.3.1-10.1.44.1,請(qǐng)鍵入:
tracert -j 10.12.0.1 10.29.3.1 10.1.44.1 corp7.microsoft.com
注:在使用?tracert程序測(cè)試到達(dá)目標(biāo)節(jié)點(diǎn)所經(jīng)過的路徑時(shí),默認(rèn)對(duì)每個(gè)?TTL 值 Traceroute 要測(cè)3次。
其他?:pathping
pathping是tracert和ping的混合體。命令行下輸入pathpingwww.aorb.org,返回兩部分內(nèi)容,第一部分顯示到達(dá)目的地經(jīng)過了哪些路由,第二部分顯示了路徑中每個(gè)路由器上數(shù)據(jù)包丟失方面的信息。
?
?