joshu
2023-03-21 12:14:45 +08:00
1 、去程路由和回程路由不是对称的,这在互联网上极为常见
2 、traceroute 提供的是去程路径信息,对应去程路径上的每个节点,但如果中间设备配置有多个地址,你所看到的路径上的 IP 地址<很可能是>该设备到源 IP (也就是发起 traceroute 机器的外网 IP )时所使用路由出口的接口的 IP 地址
亦即想表达的意思是,假设你的机器 A 访问机器 B 时通过<路径 1>时经过 C 节点,此时你的去程流量是从 C 节点网卡 C1 进入的流量,C 此时把 TTL=0 的包返给机器 A 时查询自己的路由表,发现应该从网卡 C2 出去,此时 C 走的可能是<路径 2>,假设 C 在出口网卡 C2 配置了 IP 地址,你在 traceroute 上看到的地址其实是 C2 网卡的地址而不是 C1 ,如果 C2 没配置问题就复杂一些。
对应的,你下一跳、上一跳以及任意链路上中间设备,在返包给机器 A 时,都是根据自己的路由表得出应往哪个出口网卡发送,对应的可能就不是<路径 1>、<路径 2>,而是<路径 3>、<路径 N>之类的了
你所看到的延迟,是<路径 1>上 A 到中间设备 C 的时延+<路径 N>的时延,不对称,所以可能中间延迟就高很多