我可以 ping 通 IP 地址,但无法跟踪路由。这是怎么回事?
[USERNAME@HOSTNAME ~]$ ping CENSORED.CENSORED
PING CENSORED.CENSORED (CENSORED) 56(84) bytes of data.
64 bytes from CENSORED.CENSORED (CENSORED): icmp_req=1 ttl=49 time=52.8 ms
64 bytes from CENSORED.CENSORED (CENSORED): icmp_req=2 ttl=49 time=49.4 ms
64 bytes from CENSORED.CENSORED (CENSORED): icmp_req=3 ttl=49 time=49.2 ms
64 bytes from CENSORED.CENSORED (CENSORED): icmp_req=4 ttl=49 time=50.4 ms
^C
--- CENSORED.CENSORED ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3003ms
rtt min/avg/max/mdev = 49.276/50.494/52.804/1.401 ms
[USERNAME@HOSTNAME ~]$
[USERNAME@HOSTNAME ~]$ traceroute CENSORED.CENSORED
traceroute to CENSORED.CENSORED (CENSORED), 30 hops max, 60 byte packets
1 CENSORED (CENSORED) 5.733 ms 6.000 ms 5.977 ms
2 CENSORED (CENSORED) 0.428 ms 0.417 ms 0.393 ms
3 CENSORED (CENSORED) 1.726 ms 1.718 ms 1.682 ms
4 CENSORED (CENSORED) 26.699 ms 26.693 ms 26.670 ms
5 CENSORED (CENSORED) 27.785 ms 27.769 ms 27.746 ms
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 * * *
[USERNAME@HOSTNAME ~]$
跟踪路由中的第五个CENSORED
IP 地址与“ping CENSORED.CENSORED”中的不同。
答案1
尝试在您的跟踪路由中使用不同的方法,例如 TCP SYN 或 ICMP,而不是默认的 UDP 方法。
例如,请注意 ICMP 和 TCP 之间的区别:
x@x:~$ ping -qc4 94.254.2.51
PING 94.254.2.51 (94.254.2.51) 56(84) bytes of data.
--- 94.254.3.90 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3009ms
rtt min/avg/max/mdev = 7.781/7.807/7.836/0.067 ms
x@x:~$ sudo traceroute -I 94.254.2.51
traceroute to 94.254.2.51 (94.254.2.51), 30 hops max, 40 byte packets
1 <REDACTED>
2 <REDACTED>
3 <REDACTED>
4 <REDACTED>
5 netnod-ix-ge-a-sth-1500.bahnhof.net (194.68.123.85) 1.307 ms 1.299 ms 1.432 ms
6 sto-cr1.sto-cr3.bahnhof.net (85.24.151.165) 7.166 ms 7.364 ms 7.336 ms
7 sto-cr3.gav-cr1.bahnhof.net (85.24.151.195) 7.251 ms 7.099 ms 7.220 ms
8 zitius-a322-gw-c.bahnhof.net (85.24.153.249) 7.059 ms 7.074 ms 7.145 ms
9 h-2-51.A322.priv.bahnhof.se (94.254.2.51) 7.619 ms 7.750 ms 8.070 ms
x@x:~$ sudo traceroute -T 94.254.2.51
traceroute to 94.254.2.51 (94.254.2.51), 30 hops max, 40 byte packets
1 <REDACTED>
2 <REDACTED>
3 <REDACTED>
4 <REDACTED>
5 netnod-ix-ge-a-sth-1500.bahnhof.net (194.68.123.85) 1.621 ms 1.683 ms 1.817 ms
6 sto-cr1.sto-cr3.bahnhof.net (85.24.151.165) 8.530 ms 7.861 ms 7.820 ms
7 sto-cr3.gav-cr1.bahnhof.net (85.24.151.195) 7.724 ms 7.539 ms 7.486 ms
8 zitius-a322-gw-c.bahnhof.net (85.24.153.249) 7.572 ms 7.537 ms 7.553 ms
9 * * *
10 * * *
11 * * *
12 * * *
13 * * *
答案2
Traceroute 基于 ICMP 或 UDP 数据包。它可以有效地 ping 您和 censored.censored 之间路径上的每个路由器。它会增加其发送的每个后续数据包的生存时间 (TTL)(通常从 1 到 30),期望随着每个数据包的 TTL 比上一个数据包的 TTL 增加,路径中的下一个路由器将返回错误代码。
如果第 6 跳没有响应,则可能是它专门阻止了 ICMP/UDP 消息。因此,Ping 可以正常工作,因为您和它之间的路由器只是将 ICMP/UDP 数据包传递给它,而不是像 traceroute 那样对它们做出响应。
答案3
我没有看到任何答案为什么部分问题。
众所周知,有几家 ISP 会通过两种方式使其路由器对跟踪路由保持隐身状态:它们要么不减少 IP 数据包中的 TTL(使自己成为 IP 虫洞),要么在仍转发 ICMP 时不响应过期的 TTL。
原因是为了保持其内部网络拓扑的私密性。就是这样。
从/向多个源/目的地发出traceroute
s 会揭示有关网络拓扑的信息,这并不是每个人都能理解的。
答案4
Traceroute 依赖于 ICMP 消息,某些路由器可能配置为不响应该消息。