在什么情况下,traceroute 输出中同一子网中会有两个邻居跳转?据我所知,它应该只有源地址,并且每个路由器接口应该位于不同的子网中?
例如:
1 * * * Request timed out.
2 2 ms 3 ms <3 ms 10.10.0.14
3 5 ms 4 ms 3 ms 10.10.0.15
4 21 ms 22 ms 25 ms 194.221.100.49
它看起来应该像这样。
(PC) 192.168.1.2 --- 192.168.1.1 (Router1) 10.10.0.X --- 10.10.0.14 (Router2) 10.10.0.x --- 10.10.0.15 (Router3) 192.221.100.X --- 192.221.100.49 (Router4) X.X.X.X
但是在 Router2 中,有 2 个接口位于同一个子网,这不可能吗?
这可能是哪种配置?也许是帧中继?
答案1
每个路由器接口应该位于不同的子网?
您的逻辑错误在于,您假设网络拓扑总是涉及路由器,这些路由器严格地将一个子网接口上收到的数据包通过另一个子网中定义的接口传递出去。虽然这在常见的 SOHO 和中型企业环境中是正确的,但事实并非如此仅有的可用的部署模式。网络工程师可能有理由采用另一种方法,或者由于运气和配置变动,他们可能会意外地采用一种方法。
路由器在接收数据包时,可能会在多种情况下将其路由回接收数据包的同一网络。我们定义子网的方式和参考的设备很重要。例如,路由器拥有 接口是完全合法的10.0.0.1/16
,而位于其后面的设备使用子网 中的地址10.0.x.y/24
。从设备的角度来看,从 10.0.1.x 到 10.0.2.x 的数据包需要穿越一个或多个路由器,但路由器更清楚这一点。这种现象网络转播常见于企业网络的核心。虽然效率不高,但它确实有效,路由器也能正常工作。
另一种常见情况是,当从连接到 VPN 集中器的设备运行跟踪路由时,该设备会通过 VPN 将其流量隧道传输到远程设备。如果我们假设这是导致跟踪路由输出的原因,则该.14
设备可能是连接到远程端公司 LAN 的集中器。该.15
设备是集中器所连接网络的路由器。数据包在接口上接收(隧道传输).14
,然后通过同一接口返回,以路由到其目的地。这没有什么不对,并且traceroute
合法地向您显示了负责在 IP 层接触数据包的所有设备的身份。
如果不进一步精确了解网络拓扑,特别是中间路由器的配置,就不可能准确了解您遇到的情况。
答案2
Traceroute 的工作原理是有效地发送一个 TTl(生存时间)为 1 的 ping。它会到达第一个路由器,该路由器会回复 ICMP 超时消息。它会重复此操作,在您的情况下总共重复 3 次。
然后,它发送 3 个 TTL 为 2 的 ping,然后再发送 3 个,等等。它将每个路由器的响应显示为到主机的路由。
https://en.wikipedia.org/wiki/Traceroute
我的第一个猜测是,如果您的系统配置正确,那么您的第一个路由器(配置为不发送超时消息)具有到 10.10.0.14 的默认路径,该路径具有到 194.221.100.49 子网的静态路由