跟踪路由输出中无响应(*)和不可达(!H)主机之间的区别


15

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

Answers:


4

简单的区别是对于不可达的主机,最后一跳路由器将返回ICMP目标不可达响应。

大多数路由器将对硬件进行ACL或速率限制处理,但是ICMP响应的生成需要CPU资源,因此通常不生成它们。


16

YLearn的答案是正确的,但了解更多详细信息很重要。

  • * 表示您的机器未收到任何响应。
  • !H表示您的计算机从traceroute输出中指示的主机接收到ICMP消息“目标主机不可达” 。
  • 很少traceroute也可以指示其他不可达消息,例如!N!P(网络或协议)等。

当机器无法将IP数据包发送到网络时,它通常会发送“目标主机不可达”。在以下情况下可能会发生这种情况:

  • 没有到目的地的路线。
  • 下一个跃点IP地址或最终IP地址无法解析为L2地址(该IP地址没有ARP答复)。

就像YLearn所写的那样,可以将路由器配置为不发送ICMP消息,但也可以*代替!HACL或防火墙策略以静默方式丢弃您的请求。在安全策略中,静默丢弃是一种正常的做法。由安全策略引起的丢弃取决于所发送消息的类型traceroutetraceroute默认情况下,传统的Unix 将UDP数据包发送到“异常”端口(如33434),但它也可以使用其他方法。Windows tracert发送ICMP回显请求。


2
做好详细的ICMP消息的工作。另外,有关traceroute故障排除nanog.org/meetings/nanog45/presentations/Sunday/…
Bruno R
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.