运行traceroutes时,某些跃点返回*,据我所知,这意味着主机未响应ICMP回显请求,而其他某些跃点(主要是最后一个)返回!H,根据手册页,这意味着主机不可达。不可达是什么意思?没有到该地址的已知路线?

#1 楼

简单的区别是,对于无法访问的主机,最后一跳路由器返回的是ICMP目标无法访问的响应。不生成它们的常见做法。

#2 楼

YLearn的答案是正确的,但重要的是要了解更多详细信息。您的计算机从*输出中指示的主机接收到ICMP消息“目标主机不可达”。
很少有!H可以指示其他不可达消息,例如traceroutetraceroute(网络或协议)等。 。在以下情况下可能会发生这种情况:


没有到目的地的路由。
下一跳IP地址或最终IP地址无法解析为L2地址(没有ARP答复IP地址。)

如YLearn所写,可以将路由器配置为不发送ICMP消息,但是当您的请求被ACL静默丢弃时,您也可以获得!N而不是!P防火墙策略。在安全策略中,静默掉线是正常的做法。由安全策略引起的丢弃取决于*发送的消息的类型。默认情况下,传统的Unix !H将UDP数据包发送到“异常”端口(例如33434),但它也可以使用其他方法。 Windows traceroute发送ICMP回显请求。

评论


做好详细的ICMP消息的工作。另外,有关traceroute故障排除nanog.org/meetings/nanog45/presentations/Sunday/…的不错的pdf。

– Bruno R
2015年10月17日19:19