我正在解决无线互联网连接不断下降。 isp说无线电信号好,所以它必须由我的思科asa 5505。我不相信他们…
讨论假设如下:
远程站点公网IP为10.1.1.50,默认网关为10.1.1.1
当我从远程位置执行tracert到10.1.1.50时,tracert的倒数第二跳始终是10.1.1.1?
当连接断开时,倒数第二跳不是10.1.1.1,但10.1.1.1是可以ping通的,我可以对其执行tracert。
我认为这是isp的路由问题。
我的逻辑有效吗? 如果10.1.1.1是可达的,不应该是在超时之前在tracert上的第二跳到最后一跳?
在99%的情况下,traceroute的倒数第二跳将不是目标主机的默认网关。 这是因为traceroute的工作方式。
所有IP数据包都有一些错误的生存时间 ( TTL )字段。 每个转发数据包的路由器都会将该字段递减1。 如果路由器将TTL递减为0,则丢弃该数据包并生成ICMP TTL超出错误数据包,并将其发回给发送原始数据包的人员。 错误数据包将具有原始数据包来源的目标IP(在这种情况下,发起跟踪路由的主机)。 错误报文的源IP通常是出接口的IP地址,即面向networking其余部分的IP地址。
Traceroute利用这个事实; 它发送具有顺序增加的TTL的数据包; 这会导致源和目标之间path中的每个路由器将ICMP不可达消息发送回执行跟踪路由的主机。 每个错误将具有探测包在丢弃之前达到的最终路由器的源IP。 这允许traceroute构build源和目标之间path的图片。
考虑下面的图表(忽略多个path的可能性):
________ 1.1____1.2 2.1____2.2 ________ |Host A|-----|Router 1|--- Internet ---|Router 2|-----|Host B| -------- ---------- ---------- --------
如果主机A正在对主机B执行跟踪路由,则倒数第二跳将是路由器2,它将接收探测包,如下所示:
SrcIP: A | DstIP: B | TTL: 1
路由器2将把TTL递减到0; 这会导致它产生一个ICMP TTL过期:
SrcIP: 2.1 | DstIP: A | TTL <default>
因此,当traceroute收到此错误消息时,它将看到倒数第二跳的IP地址将是路由器2的面向互联网的接口,而不是面向主机B的接口。