Traceroute 到路由器的另一个接口

网络工程 路由器 跟踪路由
2022-02-19 19:01:03

当我尝试跟踪路由到远程服务器时,我发现数据包到达的第一个路由器接口很可能会响应跟踪路由。是否可以要求路由器的另一个接口响应我?

2个回答

没有机制可以告诉路由器“您希望它做什么”。它将使用接收数据包的接口的源地址生成 ICMP 消息。

如果路由器有一条不同于反向路径的返回源的路由(非对称路由),超时消息将采用不同的路由,但源地址仍然相同。

例如,如果路由器在接口 1 上接收到一个 TTL 为 1 的数据包,它将生成一个超时消息,其中包含接口 1 的源地址和原始主机(即运行跟踪路由)的目标地址。

如果路由器配置为通过接口 2 到达主机的最佳路径,则路由器会将数据包转发到接口 2,但 ICMP 数据包中的源地址仍将是接口 1。

路由器本身就是响应你的东西,它将使用离你最近的接口,因为这就是路由的工作方式。

当一个 TTL 的数据包1进入接口时,IP 会将 TTL 递减为0. 然后,设备将发回一条 ICMP 消息,告诉您数据包已超时。路由器会将 ICMP 消息包从接口发送回您,因为这就是它的路由表告诉它的路径。如果它从不同的接口发送出去,带有 ICMP 消息的数据包将不会到达你,但它会朝着不同的方向前进。

Traceroute 依赖于接收 ICMP 消息以向您显示跃点。