我相信我已经实现了一个表,可以将数据包从 eth1/192.168.3.x路由到 eth1/192.168.3.x 到 192.168.3.1,以及从 eth0/192.168.1.x 到 192.168.1.1(有用的来源)。
问题:从 192.168.3.20(从 vserver 内)执行 tracepath 时,我到达kernel: [318535.927489] martian source 192.168.3.20 from 212.47.223.33, on dev eth0
或接近目标 IP,而中间跃点没有(日志如下)。
我不明白为什么这个数据包到达 eth0 而不是 eth1,即使在阅读了这个之后:
请注意,在运行 traceroute 或 tracepath 命令时,您可能会看到来自不可路由 IP 地址的数据包。虽然数据包无法路由到这些路由器,但在 2 个路由器之间发送的数据包只需要知道本地网络中下一跳的地址,该地址可能是不可路由的地址。
有人可以用人类语言解释那一段吗?根据迄今为止的短期初步试验,其他一切似乎都可以正常工作而不会导致火星人。这是否包含在跟踪路径操作的性质中,或者我是否有其他一些更大的路由问题会导致工作流量中断?
旁注:是否可以使用 tcpdump 或 wireshark 或任何类似的东西检查火星数据包?我一直无法让它自己显示出来。
vserver-20 / # tracepath -n 212.47.223.33
1: 192.168.3.2 0.064ms pmtu 1500
1: 192.168.3.1 1.076ms
1: 192.168.3.1 1.259ms
2: 90.191.8.2 1.908ms
3: 90.190.134.194 2.595ms
4: …
Run Code Online (Sandbox Code Playgroud)