如果 traceroute 结果返回一跳中有多个网关,那么目标主机的路径是什么?

如果 traceroute 结果返回一跳中有多个网关,那么目标主机的路径是什么?

我在 Linux 中执行了跟踪路由,跟踪路由结果在每一跳中给出了多个网关。我如何找到到达目的地的路由路径?请参考以下输出:

traceroute to ipv4.google.com (216.58.199.142), 30 hops max, 38 byte packets
 1  10.10.20.1 (10.10.20.1)  0.947 ms  0.833 ms  0.870 ms
 2  abts-tn-dynamic-1.64.65.182-airtelbroadband.in (182.65.64.1)  5.296 ms  5.235 ms  4.962 ms
 3  125.17.96.17 (125.17.96.17)  5.409 ms  5.012 ms  125.17.103.181 (125.17.103.181)  7.465 ms
 4  182.79.198.22 (182.79.198.22)  4.839 ms  182.79.239.193 (182.79.239.193)  5.631 ms  182.79.198.26 (182.79.198.26)  8.211 ms
 5  72.14.211.198 (72.14.211.198)  5.258 ms  6.221 ms  5.345 ms
 6  182.79.177.69 (182.79.177.69)  11.637 ms  182.79.142.222 (182.79.142.222)  6.840 ms  182.79.177.69 (182.79.177.69)  10.703 ms
 7  216.239.41.84 (216.239.41.84)  29.267 ms  209.85.247.252 (209.85.247.252)  95.052 ms  209.85.255.160 (209.85.255.160)  29.631 ms
 8  108.170.248.193 (108.170.248.193)  32.930 ms  74.125.242.131 (74.125.242.131)  6.579 ms  108.170.248.209 (108.170.248.209)  33.016 ms
 9  72.14.236.75 (72.14.236.75)  29.411 ms  37.831 ms  108.170.248.209 (108.170.248.209)  29.900 ms
10  108.170.248.209 (108.170.248.209)  32.564 ms  bom07s01-in-f14.1e100.net (216.58.199.142)  26.744 ms  108.170.248.193 (108.170.248.193)  33.178 ms

答案1

可能有几条路径。

许多运营商使用 ECMP 或其他多路径/负载平衡技术;通常相同的流(即相同的源/目标 IP、相同的协议、相同的源/目标端口号)采用相同的路径,但具有不同端口号的数据包可能采用不同的路径。(有时路径可能导致同一位置的冗余路由器 - 或不同的城市 - 甚至不同的运营商。例如,看到奇数 IP 地址通过 Telia 而偶数地址通过 Cogent 并不罕见。)

Linux路由追踪默认情况下使用带有递增端口号的 UDP 探测,这意味着如果每个探测经过 ECMP 路由器,则可以分配不同的路径。

首先,你可以切换 traceroute 来使用--icmp探测(就像 Windows 那样)或--udp具有静态端口号。这两者都应该不受 ECMP 的影响;它们不会显示所有路径,但至少在整个跟踪过程中应该坚持相同的路径。

更先进的方法将是以下工具巴黎跟踪路由或者都柏林跟踪路由两者都声称能够规划出全部路径以某种方式。

相关内容