ISP在一条路由中两次拥有相同的IP是否正常?

亚当·林德伯格

如果我在家庭网络外跟踪路由,则在路由器之后直接连续两次看到相同的IP:

  1     1 ms     1 ms     1 ms  router
  2    17 ms    16 ms    16 ms  217.0.117.61
  3    16 ms    16 ms    16 ms  217.0.117.61
  4    17 ms    17 ms    17 ms  87.186.233.102
  5    26 ms    24 ms    24 ms  217.239.39.2
  6    24 ms    24 ms    25 ms  ...

这是正常现象,还是代表ISP的配置错误?

哈里奇

如果这种情况发生一次或很少

所有IP数据包都有一个生存时间TTL)字段。每个转发数据包的路由器都会将该字段减1。如果路由器将TTL递减为0,它将丢弃该数据包并生成ICMP TTL超出错误数据包,然后将其发送回发起方。

Traceroute使用此功能发送具有顺序增加的TTL的数据包。这允许traceroute构建源与目标之间的路径的图片。

在您的情况下,从路由器到217.0.117.61可能有两条路径,其中一条路径比另一条路径长。所以发生了什么事:

  1. 以TTL = 1发送的数据包到达了您的路由器,然后路由器回答。
  2. 以TTL = 2发送的数据包
    • 到达您的路由器,将TTL递减至1,然后继续发送,
    • 然后达到217.0.117.61,得到了回答。
  3. TTL = 3发送的报文
    • 到达您的路由器,将TTL递减至2,然后继续发送,
    • 然后到达某个未知路由器,将TTL递减至1,然后继续发送,
    • 然后达到217.0.117.61,得到了回答。

因此,这就是为什么您两次输入相同的条目。可能更糟,每个IP被列出两次,但是显然给出第一个217.0.117.61答复的路由器再也没有参与跟踪,因此以下所有数据包都通过了从未返回IP的未知路由器。

如果总是这样

正是由于您的ISP设置其网络的方式。您列表中的IP属于德国电信(Deutsche Telekom AG),该公司具有庞大的内部网络和高性能的复杂节点,其中一个似乎可以回答两次。

有两种可能的解释:

  • ISP的防火墙可以回答traceroute请求。公司防火墙本身就是一台专用计算机。如果已编程,它可以使用已编程的IP地址(可能是它正在保护的节点的IP地址)来回答路由请求。

  • 公司路由器可以从其内部和外部接口进行应答。这种高速,高吞吐量的路由器实际上是一个将专用子路由器作为组件的一体式网络。答案可能来自前向和后向子路由器,并使用相同的IP进行回答。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

一条路由中的会话变量存在,而另一条路由中为 None

两个拥有相同 ISP 的邻居是否有可能拥有相同的公共 IP?

如何在nodejs中的另一条路由中导入一个路由响应?

printf两次打印同一条语句

一条语句中有两次Bash替换?

如何判断一条路径是否与另一条路径相似?

如何判断一条路径是否是另一条路径的祖先?

VueJS-我如何只有一条路由路径来加载具有不同ID的相同组件

如何比较两个URL的最后一条路径是否匹配?

一条路由的 Flask 身份验证覆盖

React Router仅呈现一条路由

在路由器视图中保持所有路由的一条路由处于活动状态

为继承相同模型的两个不同视图集注册一条路线

抓住所有下一条路线

当sql视图中有两条记录时,列表视图显示同一条记录两次

Restlet路由-另一条路由超越了该路由

两次函数调用,但仅显示一条轨迹

如何在Powershell的一条语句中使用-replace两次

汇编OFFSET在一条指令中使用了两次,什么是offset的offset?

如何在一条路由内调用多条路由?

Angular路由器可以公开父级(当前)下一条路由吗?

苗条的框架-创建一条路由,该路由将返回可下载的文件流

只能从路由层次结构访问一条路由

Excel-如何检查某个值是否在一列中出现两次并将其与另一条件进行比较

我们如何在 Flask 中使用参数从另一条路由调用一条路由?

如何在EmberJS中将对象数组从一条路由传递到另一条路由(不使用查询参数)

有没有办法让解释器知道第二条路径与终端中的第一条路径相同?

一条路线的gzip响应

春季启动:将Servlet过滤器应用于除一条路由之外的所有路由