Traceroute,* 在第一个路由器

Traceroute,* 在第一个路由器

当我在我的 Mac 上使用traceroute它来检查任何网站的路径时,第一行总是 3 颗星。

imac:~ Jerome$ traceroute google.com
traceroute: Warning: google.com has multiple addresses; using 173.194.70.113
traceroute to google.com (173.194.70.113), 64 hops max, 52 byte packets
 1  * * *
 2  217-168-54-101.static.cablecom.ch (217.168.54.101)  9.515 ms  8.757 ms  10.104 ms
 3  172.31.208.73 (172.31.208.73)  14.512 ms  14.605 ms  14.264 ms
 4  ch-zrh01b-ra1-ae-1.aorta.net (84.116.134.142)  13.587 ms  12.892 ms  13.936 ms
 5  74.125.49.101 (74.125.49.101)  13.966 ms  14.850 ms  14.915 ms
 6  72.14.232.120 (72.14.232.120)  26.573 ms
    72.14.232.88 (72.14.232.88)  20.072 ms  19.758 ms
 7  72.14.236.68 (72.14.236.68)  26.913 ms
    72.14.236.20 (72.14.236.20)  26.825 ms
    72.14.239.62 (72.14.239.62)  25.381 ms
 8  209.85.254.118 (209.85.254.118)  22.240 ms  22.365 ms
    209.85.254.112 (209.85.254.112)  24.826 ms
 9  * * *
10  fa-in-f113.1e100.net (173.194.70.113)  25.715 ms  26.960 ms  25.191 ms

据我所知,这*意味着路由器没有应答。为什么第一行就有星号?

答案1

traceroute 的工作方式是发送一个故意设置低 TTL 计数的数据包。该计数会随着它经过的每个路由器而减少,当计数为零时,路由器会丢弃该数据包并发送一条回复,表示 TTL 已过期。

三个星号是因为 traceroute 在特定的 TTL 设置下尝试三次来获得响应。

如果任何路由器配置为在 TTL 过期的情况下不回复,它仍然会正常路由数据包,并且后续具有更高 TTL 的数据包仍会按应有的方式传递。

traceroute 发送的下一个数据包的初始 TTL 比前一个数据包高一个,使其能够到达链中更远的一个路由器,并让下一个路由器发送到期响应。这就是为什么一个没有响应的路由器不会停止 traceroute 的原因

答案2

最有可能的是,您的路由器没有响应“传输中超出 TTL”ICMP 响应,可能是因为防火墙(内置)抑制了这些响应。如果您是路由器管理员,请检查防火墙设置。否则,请忽略它。

相关内容