(一)windows:在windows中,打开cmd,利用tracert来追踪路由。
原理:tracert利用icmp协议,增加存活时间(TTL)值来实现其功能的。每当数据包经过一个路由器,其存活时间就会减1。当其存活时间是0时,主机便取消数据包,并发送一个ICMP TTL数据包给原数据包的发出者。
主叫方首先发出 TTL=1 的数据包,第一个路由器将 TTL 减1得0后就不再继续转发此数据包,而是返回一个 ICMP 逾时报文,主叫方从逾时报文中即可提取出数据包所经过的第一个网关地址。然后又发出一个 TTL=2 的 ICMP 数据包,可获得第二个网关地址,依次递增 TTL 便获取了沿途所有网关地址。
需要注意的是,并不是所有网关都会如实返回 ICMP 超时报文。出于安全性考虑,大多数防火墙以及启用了防火墙功能的路由器缺省配置为不返回各种 ICMP 报文,其余路由器或交换机也可被管理员主动修改配置变为不返回 ICMP 报文。因此 Traceroute 程序不一定能拿全所有的沿途网关地址。
C:\Users\joker>tracert baidu.com
通过最多 30 个跃点跟踪
到 baidu.com [123.125.115.110] 的路由:
1 1 ms 1 ms 1 ms 172.28.171.254
2 * * * 请求超时。
3 2 ms 2 ms 2 ms 120.236.245.1
4 3 ms 3 ms 18 ms 183.233.34.93
5 7 ms 8 ms * 211.136.210.29
6 9 ms 9 ms 8 ms 221.183.13.205
7 42 ms 45 ms 42 ms 221.176.24.250
8 * 50 ms 51 ms 221.183.23.78
9 50 ms 46 ms 48 ms 219.158.39.57
10 53 ms 55 ms 55 ms 219.158.5.129
11 51 ms 47 ms 56 ms 125.33.186.6
12 47 ms 49 ms 47 ms 123.126.6.118
13 49 ms 49 ms 48 ms 61.49.168.90
14 * * * 请求超时。
15 48 ms 44 ms 49 ms 123.125.115.110
(二)linux:linux中主要使用traceroute来追踪路由
原理:发出使用udp协议,接收使用icmp协议
利用了 UDP 数据包的 Traceroute 程序在数据包到达真正的目的主机时,就可能因为该主机没有提供 UDP 服务而简单将数据包抛弃,并不返回任何信息。为了解决这个问题,Traceroute 故意使用了一个大于 30000 的端口号,因 UDP 协议规定端口号必须小于 30000 ,所以目标主机收到数据包后唯一能做的事就是返回一个“端口不可达”的 ICMP 报文,于是主叫方就将端口不可达报文当作跟踪结束的标志。
由于大多数的路由器应为安全问题,只会在特定的端口开放udp端口,所以,traceroute往往得不到网关信息
[root@master ~]# traceroute baidu.com
traceroute to baidu.com (220.181.57.216), 30 hops max, 60 byte packets
1 gateway (192.168.1.2) 0.160 ms 0.109 ms 0.103 ms
2 * * *
3 * * *
4 * * *
5 * * *
6 * * *
7 * * *
8 * * *
9 * * *
10 * * *
11 * * *
12 * * *
13 * * *
14 * * *
15 * * *
16 * * *
17 * * *
18 * * *
19 * * *
20 * * *
21 * * *
22 * * *
23 * * *
24 * * *
25 * * *
26 * * *
27 * * *
28 * * *
29 * * *
30 * * *
但是traceroute是如此的强大,可以选择使用的协议。使用icmp协议,只需要附带选项--icmp
[root@master ~]# traceroute --icmp baidu.com
traceroute to baidu.com (123.125.115.110), 30 hops max, 60 byte packets
1 gateway (192.168.1.2) 0.124 ms 0.094 ms 0.123 ms
2 xxx.xxx.xxx.xxx (xxx.xxx.xxx.xxx) 2.030 ms 2.683 ms 2.655 ms
3 * * *
4 14.215.222.1 (14.215.222.1) 3.141 ms 3.127 ms 3.110 ms
5 59.38.16.185 (59.38.16.185) 7.053 ms 7.038 ms 7.022 ms
6 117.176.37.59.broad.dg.gd.dynamic.163data.com.cn (59.37.176.117) 6.050 ms 6.239 ms 6.759 ms
7 183.58.10.206 (183.58.10.206) 11.383 ms 8.321 ms 8.263 ms
8 202.97.65.105 (202.97.65.105) 44.695 ms 44.686 ms 44.678 ms
9 202.97.57.118 (202.97.57.118) 41.000 ms * *
10 219.158.44.125 (219.158.44.125) 48.152 ms 48.111 ms 48.075 ms
11 219.158.3.77 (219.158.3.77) 45.299 ms 45.284 ms 49.896 ms
12 202.96.12.82 (202.96.12.82) 45.702 ms 43.138 ms 43.776 ms
13 124.65.57.194 (124.65.57.194) 44.766 ms 44.747 ms 44.727 ms
14 123.125.248.46 (123.125.248.46) 144.885 ms * *
15 * * *
16 * * *
17 123.125.115.110 (123.125.115.110) 40.863 ms 41.588 ms 41.020 ms