我正在对不断下降的无线互联网连接进行故障排除。isp 说无线电信号很好,所以它必须由我的 cisco asa 5505 提供。我不相信他们......
讨论假设如下:
远程站点公共 ip 为 10.1.1.50,其默认网关为 10.1.1.1
当我从远程位置到 10.1.1.50 进行跟踪时,跟踪的倒数第二个跃点是否应该始终是 10.1.1.1?
当连接断开时,倒数第二个跃点不是 10.1.1.1 但是 10.1.1.1 是可 ping 的,我可以对其进行跟踪。
我认为这是 isp 的路由问题。
我的逻辑有效吗?如果 10.1.1.1 是可访问的,那么在我超时之前,它不应该是跟踪器上倒数第二个跃点吗?
在 99% 的情况下,traceroute 的倒数第二跳不会是目标主机的默认网关。这是因为 traceroute 的工作方式。
所有 IP 数据包都有一个 - 有点名不副实的 - 生存时间( TTL ) 字段。每个转发数据包的路由器都会将该字段减一。如果路由器将 TTL 减为 0,它会丢弃数据包并生成ICMP TTL 超出错误数据包,并将其发送回发送原始数据包的人。错误数据包将具有原始数据包源(在本例中为启动跟踪路由的主机)的目标 IP。错误数据包的源 IP 通常是传出接口的 IP 地址,即面向网络其余部分的 IP 地址。
Traceroute 利用了这一事实;它发送具有顺序增加的 TTL 的数据包;这会导致源和目标之间路径中的每个路由器将 ICMP 不可达消息发送回执行跟踪路由的主机。每个错误都将具有探测数据包在被丢弃之前到达的最终路由器的源 IP。这允许 traceroute 构建源和目标之间的路径图。
考虑下图(忽略多路径的可能性):
如果主机 A 正在执行到主机 B 的跟踪路由,则倒数第二跳将是路由器 2,它将接收如下探测数据包:
路由器 2 将 TTL 减为 0;这将导致它生成一个 ICMP TTL 过期:
因此,当 traceroute 收到此错误消息时,它将看到倒数第二跳的 IP 地址将是路由器 2 的面向 Internet 的接口,而不是面向主机 B 的接口。