路由相關指令和概念理解


route命令參數詳解,linux添加刪除路由命令

linux系統的route命令用於顯示和操作IP路由表(show / manipulate the IP routing table)。要實現兩個不同的子網之間的通信,需要一台連接兩個網絡的路由器,或者同時位於兩個網絡的網關來實現。在linux系統中,設置路由通常是為了解決以下問題:該linux系統在局域網中,局域網中有一個網關,能夠讓機器訪問Internet,那么就需要將這台機器的ip地址設置為linux機器的默認路由。要注意的是,直接在命令行下執行route命令添加路由,不會永久保存,當網卡重啟或機器重啟之后,該路由就失效了;可以在/etc/rc.local(開機啟動文件)中添加route命令來保證該路由設置永久有效。

1.命令格式:

route [-f] [-p] [Command [Destination] [mask Netmask] [Gateway] [metric Metric] [if Interface]]

2.命令功能:
route命令是用於操作基於內核ip路由表,它的主要作用是創建一個靜態路由讓指定一個主機或者一個網絡通過一個網絡接口,如eth0。當使用“add”或“del”參數時,路由表被修改,如果沒有參數,則顯示路由表當前的內容。

3.命令參數:

-n 不解析名字
-v 顯示詳細的處理信息
-F 顯示發送信息
-C 顯示路由緩存
-f 清除所有網關入口的路由表
-p 與add命令一起使用時使路由具有永久性

add:添加一條新路由。
del:刪除一條路由。
-net:目標地址是一個網絡。
-host:目標地址是一個主機。
netmask:當添加一個網絡路由時,需要使用網絡掩碼。
gw:路由數據包通過網關。注意,你指定的網關必須能夠達到。
metric:設置路由跳數。
Command 指定您想運行的命令 (Add/Change/Delete/Print)。 
Destination 指定該路由的網絡目標。 
mask Netmask 指定與網絡目標相關的網絡掩碼(也被稱作子網掩碼)。 
Gateway 指定網絡目標定義的地址集和子網掩碼可以到達的前進或下一躍點 IP 地址。 
metric Metric 為路由指定一個整數成本值標(從 1 至 9999),當在路由表(與轉發的數據包目標地址最匹配)的多個路由中進行選擇時可以使用。 
if Interface 為可以訪問目標的接口指定接口索引。若要獲得一個接口列表和它們相應的接口索引,使用 route print 命令的顯示功能。可以使用十進制或十六進制值進行接口索引。

4.使用實例:
實例1:顯示當前路由
命令:

route 
route -n

輸出:

[root@prometheus01 ~]# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         gateway         0.0.0.0         UG    0      0        0 ens33
link-local      0.0.0.0         255.255.0.0     U     1002   0        0 ens33
192.168.172.0   0.0.0.0         255.255.255.0   U     0      0        0 ens33

[root@prometheus01 ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.172.2   0.0.0.0         UG    0      0        0 ens33
169.254.0.0     0.0.0.0         255.255.0.0     U     1002   0        0 ens33
192.168.172.0   0.0.0.0         255.255.255.0   U     0      0        0 ens33

說明:

第3行表示主機所在網絡的地址為192.168.172.0,若數據傳送目標是在本局域網內通信,則可直接通過ens33轉發數據包
第1行表示數據傳送目的是訪問Internet,則由接口ens33,將數據包發送到網關192.168.172.2
其中Flags為路由標志,標記當前網絡節點的狀態
Flags標志說明:
U  Up,表示此路由當前為啟動狀態
H  Host,表示此網關為一主機
G  Gateway,表示此網關為一路由器
R  Reinstate Route,使用動態路由重新初始化的路由
D  Dynamically,此路由是動態性地寫入
M  Modified,此路由是由路由守護程序或導向器動態修改
!  表示此路由當前為關閉狀態

備注:
route -n(-n表示不解析名字,列出速度會比route快)

實例2:添加網關
命令:

route add -net 224.0.0.0 netmask 240.0.0.0 dev ens33

輸出:

[root@prometheus01 ~]# route add -net 224.0.0.0 netmask 240.0.0.0 dev ens33
[root@prometheus01 ~]# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         gateway         0.0.0.0         UG    0      0        0 ens33
link-local      0.0.0.0         255.255.0.0     U     1002   0        0 ens33
192.168.172.0   0.0.0.0         255.255.255.0   U     0      0        0 ens33
224.0.0.0       0.0.0.0         240.0.0.0       U     0      0        0 ens33

說明:
增加一條到達224.0.0.0的路由

實例3:屏蔽一條路由
命令:

route add -net 224.0.0.0 netmask 240.0.0.0 reject

輸出:

[root@prometheus01 ~]# route add -net 224.0.0.0 netmask 240.0.0.0 reject
[root@prometheus01 ~]# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         gateway         0.0.0.0         UG    0      0        0 ens33
link-local      0.0.0.0         255.255.0.0     U     1002   0        0 ens33
192.168.172.0   0.0.0.0         255.255.255.0   U     0      0        0 ens33
224.0.0.0       -               240.0.0.0       !     0      -        0 -
224.0.0.0       0.0.0.0         240.0.0.0       U     0      0        0 ens33

說明:
增加一條屏蔽的路由,目標地址為224.x.x.x將被拒絕

實例4:刪除路由記錄
命令:

route del -net 224.0.0.0 netmask 240.0.0.0
route del -net 224.0.0.0 netmask 240.0.0.0 reject

輸出:

[root@prometheus01 ~]# route del -net 224.0.0.0 netmask 240.0.0.0
[root@prometheus01 ~]# route del -net 224.0.0.0 netmask 240.0.0.0 reject
[root@prometheus01 ~]# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         gateway         0.0.0.0         UG    0      0        0 ens33
link-local      0.0.0.0         255.255.0.0     U     1002   0        0 ens33
192.168.172.0   0.0.0.0         255.255.255.0   U     0      0        0 ens33

實例5:刪除和添加設置默認網關
命令:

route add default gw 192.168.172.100   
route del default gw 192.168.172.100

輸出:

[root@prometheus01 ~]# route add default gw 192.168.172.100   
[root@prometheus01 ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.172.100 0.0.0.0         UG    0      0        0 ens33
0.0.0.0         192.168.172.2   0.0.0.0         UG    0      0        0 ens33
169.254.0.0     0.0.0.0         255.255.0.0     U     1002   0        0 ens33
192.168.172.0   0.0.0.0         255.255.255.0   U     0      0        0 ens33

[root@prometheus01 ~]# route del default gw 192.168.172.100
[root@prometheus01 ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.172.2   0.0.0.0         UG    0      0        0 ens33
169.254.0.0     0.0.0.0         255.255.0.0     U     1002   0        0 ens33
192.168.172.0   0.0.0.0         255.255.255.0   U     0      0        0 ens33

traceroute命令詳解

traceroute是ICMP協議的一個重要應用,主要用來偵測源主機到目的主機之間所經過的路由的情況。traceroute使用icmp報文和ip首部中的TTL字段,原理很簡單,開始時發送一個TTL字段為1的UDP數據報,而后每次收到ICMP超時報文后,再發送一個TTL字段加1的UDP數據包,以確定路徑中的每個路由器,而每個路由器在丟棄UDP數據報時都會返回一個ICMP超時報文,最終到達目的主機后,由於ICMP選擇了一個不可能的值作為UDP端口(大於30000)。這樣目的主機就會發送一個端口不可達的ICMP差錯報文。

通過traceroute我們可以知道信息從你的計算機到互聯網另一端的主機走的是什么路徑。每次數據包由某一同樣的出發點(source)到達某一同樣的目的地(destination)走的路徑可能會不一樣,但基本上來說大部分時候所走的路由是相同的。linux系統中,我們稱之為traceroute,windows里為tracert。traceroute通過發送小的數據包到目的設備直到其返回,來測量其需要多少時間。一條路徑上的每個設備traceroute要測試3次,輸出結果中包括每次測試的時間(ms)和設備的名稱(如有的話)及其IP地址。

在大多數情況下,在linux主機系統下,直接執行命令行:

traceroute hostname

而在window系統下是執行tracert的命令:

tracert hostname

1.命令格式:

traceroute [參數][主機]

2.命令功能:
traceroute指令讓你追蹤網絡數據包的路由途徑,預設數據包大小是40bytes,用戶可另行設置。
具體參數格式:

traceroute [-dFlnrvx][-f<存活數值>][-g<網關>...][-i<網絡界面>][-m<存活數值>][-p<通信端口>][-s<來源地址>][-t<服務類型>][-w<超時秒數>][主機名稱或IP地址][數據包大小]

3.命令參數:

-d 使用Socket層級的排錯功能。
-f 設置第一個檢測數據包的存活數值TTL的大小。
-F 設置勿離斷位。
-g 設置來源路由網關,最多可設置8個。
-i 使用指定的網絡界面送出數據包。
-I 使用ICMP回應取代UDP資料信息。
-m 設置檢測數據包的最大存活數值TTL的大小。
-n 直接使用IP地址而非主機名稱。
-p 設置UDP傳輸協議的通信端口。
-r 忽略普通的Routing Table,直接將數據包送到遠端主機上。
-s 設置本地主機送出數據包的IP地址。
-t 設置檢測數據包的TOS數值。
-v 詳細顯示指令的執行過程。
-w 設置等待遠端主機回報的時間。
-x 開啟或關閉數據包的正確性檢驗。

4.使用實例:
實例1:traceroute 用法簡單,最常用的用法
命令:

traceroute www.baidu.com

輸出:

[root@prometheus01 ~]# traceroute www.baidu.com
traceroute to www.baidu.com (180.101.49.11), 30 hops max, 60 byte packets
 1  172.16.108.2 (172.16.108.2)  0.388 ms 172.16.108.3 (172.16.108.3)  0.362 ms  0.446 ms
 2  172.16.90.10 (172.16.90.10)  0.082 ms  0.108 ms  0.136 ms
 3  101.226.183.193 (101.226.183.193)  24.288 ms  24.338 ms  24.414 ms
 4  114.80.98.21 (114.80.98.21)  0.746 ms  1.194 ms 114.80.98.17 (114.80.98.17)  0.800 ms
 5  101.95.208.121 (101.95.208.121)  1.233 ms 101.95.208.253 (101.95.208.253)  2.304 ms 101.95.208.225 (101.95.208.225)  2.128 ms
 6  101.95.218.221 (101.95.218.221)  1.346 ms 101.95.218.45 (101.95.218.45)  2.480 ms 101.95.218.49 (101.95.218.49)  1.824 ms
 7  202.97.74.134 (202.97.74.134)  4.057 ms 202.97.71.14 (202.97.71.14)  4.197 ms 202.97.74.122 (202.97.74.122)  4.958 ms
 8  58.213.94.146 (58.213.94.146)  7.496 ms 58.213.95.142 (58.213.95.142)  7.947 ms 58.213.94.138 (58.213.94.138)  8.492 ms
 9  * * *
10  58.213.96.58 (58.213.96.58)  7.523 ms 58.213.96.122 (58.213.96.122)  7.345 ms 58.213.96.94 (58.213.96.94)  7.378 ms
11  * * *
12  * * *
13  * * *
14  * * *
15  * * *
16  * * *
17  * * *
18  * * *
19  * * *
20  * * *
21  * * *
22  * * *
23  * * *
24  * * *
25  * * *
26  * * *
27  * * *
28  * * *
29  * * *
30  * * *

說明:
記錄按序列號從1開始,每個紀錄就是一跳 ,每跳表示一個網關,我們看到每行有三個時間,單位是 ms,其實就是-q的默認參數。探測數據包向每個網關發送三個數據包后,網關響應后返回的時間;如果用traceroute -q 4 www.baidu.com,表示向每個網關發送4個數據包。

有時我們traceroute 一台主機時,會看到有一些行是以星號表示的。出現這樣的情況,可能是防火牆封掉了ICMP的返回信息,所以我們得不到什么相關的數據包返回數據。

有時我們在某一網關處延時比較長,有可能是某台網關比較阻塞,也可能是物理設備本身的原因。當然如果某台DNS出現問題時,不能解析主機名、域名時,也會有延時長的現象;可以加-n參數來避免DNS解析,以IP格式輸出數據。

如果在局域網中的不同網段之間,可以通過traceroute來排查問題所在,是主機的問題還是網關的問題。如果我們通過遠程來訪問某台服務器遇到問題時,我們用到traceroute追蹤數據包所經過的網關,提交IDC服務商,也有助於解決問題;但目前看來在國內解決這樣的問題是比較困難的,就是我們發現問題所在,IDC服務商也不可能幫助我們解決。

實例2:跳數設置
命令:

traceroute -m 10 www.baidu.com

輸出:

[root@prometheus01 ~]# traceroute -m 10 www.baidu.com
traceroute to www.baidu.com (180.101.49.11), 10 hops max, 60 byte packets
 1  172.16.108.3 (172.16.108.3)  0.623 ms 172.16.108.2 (172.16.108.2)  0.352 ms  0.432 ms
 2  172.16.90.10 (172.16.90.10)  0.073 ms  0.109 ms  0.091 ms
 3  101.226.183.193 (101.226.183.193)  1.244 ms  1.280 ms  1.362 ms
 4  114.80.98.21 (114.80.98.21)  1.285 ms 114.80.98.17 (114.80.98.17)  7.011 ms 114.80.98.21 (114.80.98.21)  1.795 ms
 5  101.95.208.125 (101.95.208.125)  4.859 ms 101.89.240.161 (101.89.240.161)  9.176 ms 101.95.208.125 (101.95.208.125)  4.903 ms
 6  101.95.218.49 (101.95.218.49)  1.813 ms 101.95.218.237 (101.95.218.237)  1.959 ms 101.95.224.113 (101.95.224.113)  2.481 ms
 7  202.97.71.6 (202.97.71.6)  5.670 ms 202.97.66.62 (202.97.66.62)  8.000 ms 202.97.19.246 (202.97.19.246)  4.367 ms
 8  58.213.95.150 (58.213.95.150)  9.824 ms 58.213.95.158 (58.213.95.158)  8.650 ms 58.213.94.2 (58.213.94.2)  7.510 ms
 9  * 58.213.95.122 (58.213.95.122)  7.106 ms *
10  58.213.96.58 (58.213.96.58)  7.829 ms 58.213.96.66 (58.213.96.66)  7.503 ms 58.213.96.102 (58.213.96.102)  8.195 ms

實例3:顯示IP地址,不查主機名
命令:

traceroute -n www.baidu.com

輸出:

[root@prometheus01 ~]# traceroute -n  www.baidu.com   
traceroute to www.baidu.com (180.101.49.11), 30 hops max, 60 byte packets
 1  172.16.108.3  0.643 ms  0.671 ms 172.16.108.2  0.387 ms
 2  172.16.90.10  0.073 ms  0.103 ms  0.079 ms
 3  101.226.183.193  1.378 ms  1.448 ms  1.527 ms
 4  114.80.98.21  0.780 ms 114.80.98.17  0.752 ms 114.80.98.21  1.169 ms
 5  101.89.240.145  0.993 ms 101.95.208.125  1.242 ms 101.95.208.237  2.226 ms
 6  101.95.218.81  2.049 ms 101.95.218.197  1.792 ms 101.95.224.97  2.200 ms
 7  202.97.29.114  6.779 ms 202.97.66.202  8.024 ms 202.97.71.6  9.209 ms
 8  58.213.95.146  8.084 ms 58.213.94.106  7.459 ms 58.213.95.82  8.048 ms
 9  * * *
10  58.213.96.78  9.442 ms 58.213.96.130  7.112 ms 58.213.96.70  8.025 ms
11  * * *
12  * * *
13  * * *
14  * * *
15  * * *
16  * * *
17  * * *
18  * * *
19  * * *
20  * * *
21  * * *
22  * * *
23  * * *
24  * * *
25  * * *
26  * * *
27  * * *
28  * * *
29  * * *
30  * * *


[root@prometheus01 ~]# traceroute  www.baidu.com   
traceroute to www.baidu.com (180.101.49.12), 30 hops max, 60 byte packets
 1  172.16.108.2 (172.16.108.2)  0.332 ms 172.16.108.3 (172.16.108.3)  0.392 ms  0.446 ms
 2  172.16.90.10 (172.16.90.10)  0.085 ms  0.103 ms  0.088 ms
 3  101.226.183.193 (101.226.183.193)  1.558 ms  1.640 ms  1.715 ms
 4  114.80.98.17 (114.80.98.17)  1.601 ms  2.045 ms 114.80.98.21 (114.80.98.21)  0.723 ms
 5  101.89.240.161 (101.89.240.161)  0.923 ms 101.95.208.229 (101.95.208.229)  1.233 ms 101.95.208.125 (101.95.208.125)  1.349 ms
 6  101.95.218.225 (101.95.218.225)  2.181 ms 101.95.218.81 (101.95.218.81)  2.096 ms  2.117 ms
 7  202.97.29.110 (202.97.29.110)  7.198 ms 202.97.19.254 (202.97.19.254)  4.183 ms 202.97.29.122 (202.97.29.122)  6.694 ms
 8  58.213.94.82 (58.213.94.82)  9.700 ms 58.213.94.110 (58.213.94.110)  8.729 ms 58.213.95.138 (58.213.95.138)  7.452 ms
 9  * * *
10  58.213.96.118 (58.213.96.118)  7.592 ms 58.213.96.54 (58.213.96.54)  8.163 ms 58.213.96.90 (58.213.96.90)  8.507 ms
11  * * *
12  * * *
13  * * *
14  * * *
15  * * *
16  * * *
17  * * *
18  * * *
19  * * *
20  * * *
21  * * *
22  * * *
23  * * *
24  * * *
25  * * *
26  * * *
27  * * *
28  * * *
29  * * *
30  * * *

實例4:探測包使用的基本UDP端口設置6888
命令:

traceroute -p 6888 www.baidu.com

輸出:

[root@prometheus01 ~]# raceroute -p 6888 www.baidu.com
traceroute to www.baidu.com (180.101.49.12), 30 hops max, 60 byte packets
 1  172.16.108.2 (172.16.108.2)  0.379 ms  0.468 ms 172.16.108.3 (172.16.108.3)  0.443 ms
 2  172.16.90.10 (172.16.90.10)  0.075 ms  0.097 ms  0.078 ms
 3  101.226.183.193 (101.226.183.193)  1.168 ms  1.247 ms  1.364 ms
 4  114.80.98.21 (114.80.98.21)  0.627 ms 114.80.98.17 (114.80.98.17)  0.569 ms 114.80.98.21 (114.80.98.21)  0.989 ms
 5  101.95.208.229 (101.95.208.229)  1.283 ms * *
 6  * 101.95.218.225 (101.95.218.225)  2.232 ms 101.95.218.217 (101.95.218.217)  2.096 ms
 7  202.97.29.106 (202.97.29.106)  12.640 ms 202.97.101.42 (202.97.101.42)  6.908 ms 202.97.101.34 (202.97.101.34)  3.744 ms
 8  * 58.213.95.158 (58.213.95.158)  6.631 ms 58.213.94.142 (58.213.94.142)  8.190 ms
 9  * 58.213.94.126 (58.213.94.126)  7.514 ms *
10  58.213.96.110 (58.213.96.110)  7.517 ms 58.213.96.74 (58.213.96.74)  7.949 ms 58.213.96.50 (58.213.96.50)  7.467 ms
11  * * *
12  * * *
13  * * *
14  * * *
15  * * *
16  * * *
17  * * *
18  * * *
19  * * *
20  * * *
21  * * *
22  * * *
23  * * *
24  * * *
25  * * *
26  * * *
27  * * *
28  * * *
29  * * *
30  * * *

實例5:把探測包的個數設置為值4
命令:

traceroute -q 4 www.baidu.com

輸出:

[root@prometheus01 ~]# traceroute -q 4 www.baidu.com
traceroute to www.baidu.com (180.101.49.12), 30 hops max, 60 byte packets
 1  172.16.108.2 (172.16.108.2)  0.366 ms 172.16.108.3 (172.16.108.3)  0.468 ms  0.547 ms 172.16.108.2 (172.16.108.2)  0.427 ms
 2  172.16.90.10 (172.16.90.10)  0.081 ms  0.123 ms  0.117 ms  0.103 ms
 3  101.226.183.193 (101.226.183.193)  1.295 ms  1.380 ms  1.500 ms  1.580 ms
 4  114.80.98.21 (114.80.98.21)  0.687 ms 114.80.98.17 (114.80.98.17)  0.634 ms 114.80.98.21 (114.80.98.21)  1.046 ms  1.363 ms
 5  101.89.240.165 (101.89.240.165)  2.067 ms 101.95.208.217 (101.95.208.217)  2.954 ms 101.89.240.173 (101.89.240.173)  2.065 ms 101.95.208.233 (101.95.208.233)  2.201 ms
 6  101.95.218.225 (101.95.218.225)  1.991 ms 101.95.218.61 (101.95.218.61)  1.682 ms 101.95.218.73 (101.95.218.73)  2.530 ms 101.95.218.77 (101.95.218.77)  2.181 ms
 7  202.97.29.106 (202.97.29.106)  8.079 ms 202.97.101.34 (202.97.101.34)  4.216 ms 202.97.101.50 (202.97.101.50)  3.779 ms 202.97.81.118 (202.97.81.118)  16.144 ms
 8  58.213.95.146 (58.213.95.146)  7.450 ms 58.213.95.106 (58.213.95.106)  7.968 ms 58.213.94.110 (58.213.94.110)  9.789 ms  7.526 ms
 9  * * 58.213.95.90 (58.213.95.90)  7.129 ms *
10  58.213.96.94 (58.213.96.94)  7.667 ms 58.213.96.54 (58.213.96.54)  8.129 ms 58.213.96.118 (58.213.96.118)  7.551 ms 58.213.96.102 (58.213.96.102)  8.385 ms
11  * * * *
12  * * * *
13  * * * *
14  * * * *
15  * * * *
16  * * * *
17  * * * *
18  * * * *
19  * * * *
20  * * * *
21  * * * *
22  * * * *
23  * * * *
24  * * * *
25  * * * *
26  * * * *
27  * * * *
28  * * * *
29  * * * *
30  * * * *

實例6:繞過正常的路由表,直接發送到網絡相連的主機
命令:

traceroute -r www.baidu.com

輸出:

[root@prometheus01 ~]# traceroute -r www.baidu.com
traceroute to www.baidu.com (180.101.49.11), 30 hops max, 60 byte packets
connect: Network is unreachable

實例7:把對外發探測包的等待響應時間設置為3秒
命令:

traceroute -w 3 www.baidu.com

輸出:

[root@prometheus01 ~]# traceroute -w 3 www.baidu.com
traceroute to www.baidu.com (180.101.49.11), 30 hops max, 60 byte packets
 1  172.16.108.2 (172.16.108.2)  0.429 ms 172.16.108.3 (172.16.108.3)  0.338 ms  0.403 ms
 2  172.16.90.10 (172.16.90.10)  0.071 ms  0.105 ms  0.093 ms
 3  101.226.183.193 (101.226.183.193)  1.483 ms  1.561 ms  1.645 ms
 4  114.80.98.21 (114.80.98.21)  9.103 ms 114.80.98.17 (114.80.98.17)  2.126 ms 114.80.98.21 (114.80.98.21)  13.809 ms
 5  101.95.208.245 (101.95.208.245)  1.923 ms 101.89.240.173 (101.89.240.173)  4.183 ms 101.95.208.253 (101.95.208.253)  1.937 ms
 6  101.95.224.97 (101.95.224.97)  2.216 ms 101.95.218.213 (101.95.218.213)  2.240 ms 101.95.218.205 (101.95.218.205)  1.466 ms
 7  202.97.81.162 (202.97.81.162)  7.006 ms 202.97.29.126 (202.97.29.126)  7.590 ms 202.97.66.198 (202.97.66.198)  7.971 ms
 8  58.213.95.106 (58.213.95.106)  7.314 ms 58.213.95.146 (58.213.95.146)  7.386 ms 58.213.94.82 (58.213.94.82)  8.424 ms
 9  * 58.213.94.126 (58.213.94.126)  7.814 ms 58.213.94.134 (58.213.94.134)  8.626 ms
10  58.213.96.58 (58.213.96.58)  8.124 ms 58.213.96.110 (58.213.96.110)  7.296 ms 58.213.96.118 (58.213.96.118)  7.683 ms
11  * * *
12  * * *
13  * * *
14  * * *
15  * * *
16  * * *
17  * * *
18  * * *
19  * * *
20  * * *
21  * * *
22  * * *
23  * * *
24  * * *
25  * * *
26  * * *
27  * * *
28  * * *
29  * * *
30  * * *

Traceroute的工作原理:

Traceroute最簡單的基本用法是:traceroute hostname

Traceroute程序的設計是利用ICMP及IP header的TTL(Time To Live)欄位(field)。首先,traceroute送出一個TTL是1的IP datagram(其實,每次送出的為3個40字節的包,包括源地址,目的地址和包發出的時間標簽)到目的地,當路徑上的第一個路由器(router)收到這個datagram時,它將TTL減1。此時,TTL變為0了,所以該路由器會將此datagram丟掉,並送回一個「ICMP time exceeded」消息(包括發IP包的源地址,IP包的所有內容及路由器的IP地址),traceroute 收到這個消息后,便知道這個路由器存在於這個路徑上,接着traceroute 再送出另一個TTL是2 的datagram,發現第2 個路由器...... traceroute 每次將送出的datagram的TTL 加1來發現另一個路由器,這個重復的動作一直持續到某個datagram 抵達目的地。當datagram到達目的地后,該主機並不會送回ICMP time exceeded消息,因為它已是目的地了,那么traceroute如何得知目的地到達了呢?

Traceroute在送出UDP datagrams到目的地時,它所選擇送達的port number 是一個一般應用程序都不會用的號碼(30000 以上),所以當此UDP datagram 到達目的地后該主機會送回一個「ICMP port unreachable」的消息,而當traceroute 收到這個消息時,便知道目的地已經到達了。所以traceroute 在Server端也是沒有所謂的Daemon 程式。

Traceroute提取發 ICMP TTL到期消息設備的IP地址並作域名解析。每次 ,Traceroute都打印出一系列數據,包括所經過的路由設備的域名及 IP地址,三個包每次來回所花時間。

tracert詳解

格式:

tracert [-d] [-h maximum_hops] [-j host-list] [-w timeout] target_name

參數說明:

tracert [-d] [-h maximum_hops] [-j computer-list] [-w timeout] target_name

該診斷實用程序通過向目的地發送具有不同生存時間 (TL) 的 Internet 控制信息協議 (CMP) 回應報文,以確定至目的地的路由。路徑上的每個路由器都要在轉發該 ICMP 回應報文之前將其 TTL 值至少減 1,因此 TTL 是有效的跳轉計數。當報文的 TTL 值減少到 0 時,路由器向源系統發回 ICMP 超時信息。通過發送 TTL 為 1 的第一個回應報文並且在隨后的發送中每次將 TTL 值加 1,直到目標響應或達到最大 TTL 值,Tracert 可以確定路由。通過檢查中間路由器發發回的 ICMP 超時 (ime Exceeded) 信息,可以確定路由器。注意,有些路由器“安靜”地丟棄生存時間 (TLS) 過期的報文並且對 tracert 無效。

參數:

-d 指定不對計算機名解析地址。
-h maximum_hops 指定查找目標的跳轉的最大數目。
-jcomputer-list 指定在 computer-list 中松散源路由。
-w timeout 等待由 timeout 對每個應答指定的毫秒數。
target_name 目標計算機的名稱。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM