在生产环境中面临一个奇怪的问题,其中 traceroute 只显示最后一跳,输出如下所示,
***
***
***
***
***
***
dns.google [8.8.8.8] 10/10/11ms
任何目的地都是如此。尝试了 Linux 和 Windows 跟踪路由。
有一个选择性的人可以访问的防火墙,但我不确定如何将 traceroute 限制为仅显示任何目的地的最后一跳。
任何建议表示赞赏
谢谢
在生产环境中面临一个奇怪的问题,其中 traceroute 只显示最后一跳,输出如下所示,
***
***
***
***
***
***
dns.google [8.8.8.8] 10/10/11ms
任何目的地都是如此。尝试了 Linux 和 Windows 跟踪路由。
有一个选择性的人可以访问的防火墙,但我不确定如何将 traceroute 限制为仅显示任何目的地的最后一跳。
任何建议表示赞赏
谢谢
Traceroute 通过使用 ICMP 和字段“TTL”(生存时间)来工作。
它首先将 TTL 字段设置为“1”,然后第一个路由器在收到数据包时减少该字段。由于该字段为“0”,因此它不会将数据包路由到其目的地。相反,向源系统发送一个应答,通知它数据包 TTL 已过期。
Traceroute得到这个答案知道第一个路由器的ip地址...
然后 traceroute 发送一个新的数据包,其字段 TTL 为“2”,以查找第二个路由器 ip 地址。
路由器在 TTL 达到 0 时发送的应答是 ICMP 数据包,更准确地说是“ICMP 过期数据包”
防火墙可以配置为阻止特定类型的 ICMP 数据包。在您的情况下,管理员可能会阻止“ICMP TTL 过期数据包”。
但是,您可以看到最后一跳(目的地)。这可能意味着最终目标(当 TTL 未过期时)发送的正常 ICMP 应答没有被防火墙阻止
您可以在维基百科页面上找到不同类型的 ICMP 数据包: https ://en.wikipedia.org/wiki/Internet_Control_Message_Protocol