traceroute / tracert是否显示每跳,还是跳过/隐藏路径的某些详细信息?


35

我目前正在大学攻读网络工程学士学位,我的一位教授在课堂上解释说,显示例如15个跃点的跟踪路由实际上是对路径的抽象,实际上涉及更多的节点。这是真的?

这与我在traceroute上可以找到的所有内容相矛盾。据我所知,traceroute的工作原理是将TTL从0-> n的ICMP(或UDP)数据包发送到特定目标,直到到达目标为止。沿途在每个位置连续发送出去的探测数据包将超时,从而产生ICMP“超时”答复,并在到达目的地时最终产生“端口不可达”消息。

我了解traceroute的不完善之处-例如,traceroute流量可能会被某些网关阻止,或者将回复数据包的TTL设置为探针的剩余TTL,从而使其永远不会返回给发送者。

但是,经过大量研究,在跟踪路由始终返回相同路径的情况下,我找不到任何引用跟踪路由的信息。同样,没有任何内容引用traceroute未报告的任何“额外”跃点(但* * *跃点没有应答而超时)。

我愿意进行讨论,并且我真的很想知道答案。


1
只需清楚一点,第一个icmp / udp数据包的TTL为1,而不是0
13年

1
这可能是一些你感兴趣的:nanog.org/meetings/nanog47/presentations/Sunday/...
codeY的

Answers:


40

跟踪路由将显示从A到B的第3层跳数。

但是,您可能要经过它们之间的数百个开关。您也可能要经过10台运行第2层vpn(显示为单跳)的ISP路由器。MPLS网络可以隐藏其内部,也可以向您显示其内部。您也可以在路径中具有透明防火墙。

无论哪种方式,您的教授都正确地说,您不能保证路径中的每个设备都将成为您的一跳。由于我提到了以上几点,您可能要使用50台设备,但对您来说好像是3台。

但是,这并非一直都发生。如果您看到15跳,则很可能是15跳。

这是有关TTL的MPLS设置的基本示例:http : //www.juniper.net/techpubs/en_US/junos13.2/topics/reference/configuration-statement/no-propagate-ttl-edit-protocols -mpls.html


谢谢!您指出的情况肯定会提供有关可能缺少哪些traceroute的更多信息。
WilHall

1
别担心。甚至GRE隧道之类的东西也可以隐藏底层跃点,因为GRE标头本身具有自己的TTL
13年

18

没有减小IP TTL字段值的任何设备都不会显示在traceroute路径中。例如,可以将Cisco ASA防火墙配置为递减穿过防火墙的数据包的IP TTL字段(设置连接为decrement-ttl)。默认情况下,TTL不会递减,因此会隐藏防火墙(很好)。


13

Traceroute不会向您显示不减少IP数据报的TTL字段的设备。

它也不会显示减少TTL字段并在TTL达到零时消耗数据包的设备,但是会忽略通过ICMP数据报通知此事件的发送者。但是,这并不是完全看不见的。您可以推断出traceroute中此丢失的跃点的存在,因为当使用下一个更高的TTL值时,链中的下一个设备会响应,并且我们知道该设备与上一个设备之间的某件事会导致TTL递减,但不会自己声明。传统traceroute实用程序未收到响应时会打印星号。它将为这种类型的主机打印一行星号。

还有一种很可能的可能性是,位于它们之间的某些路由器会根据它们的源地址选择性地抑制这些ICMP消息,即使它们生成了响应,也使路径的某些部分看起来不可见。


这不是一个遥不可及的可能性,它所需要的只是一个网络使用私有IP进行路由器间链接,而另一个网络丢弃所有带有私有源IP的数据包。
彼得·格林
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.