IPv6 解析为环回/私有 IP

IPv6 解析为环回/私有 IP

我正在运行网络爬虫,并从我的数据中心收到一些有关指向私有 IP(如 10.0.0.1)的连接的报告。我在爬虫代码中实现了环回/私有 IP 检查,我意识到许多域名解析为以下 IPv6 地址。

  • 7777:772e:726f:7763:6174:6368:2e63:6f6d
  • 7777:772e:726f:7763:726f:6674:2e6f:7267

我正在使用自己的绑定 DNS 缓存,并且当我尝试在其他计算机/网络上访问这些域时,我可以毫无问题地访问它们,并且它们的所有 DNS 设置看起来都正常。

如上所示,将这些域解析为私有/环回 IPv6 地址的原因是什么?我可以做什么来检查与此问题相关的任何其他事项?

是不是因为我的 BIND DNS 缓存?是不是因为我的数据中心的路由器配置错误?

提前非常感谢...

解决方案:@kasperd 帮我解决了这个问题,他发现这是因为我的代码实现错误。

答案1

您的问题中做出了一些错误的假设。

IPv6地址空间大部分都是保留的,包括6000::/3你提到的两个地址所属的范围。

如果任何保留地址出现在 AAAA 记录中,则表明配置无效。这可能会导致连接问题,尽管正确实施的客户端将回退到使用该域的其他地址之一。

AAAA 记录中出现无效地址的第一个明显原因是,最初配置该 AAAA 记录的人犯了一个错误。如果您提到域名,我们可能会告诉您是否是这种情况。

错误配置缓存 DNS 服务器也可能导致此类无效 AAAA 记录。我认为 Bind 具有足够的灵活性来引入此类问题。

路由器配置错误本身并不足以产生这样的问题。但许多路由器都具有与路由无关的附加功能,因此从理论上讲,您的路由器可能具有一些功能,如果使用不当,则会产生此类无效记录。

如果仔细查看无效的 IPv6 地址,您会发现每个八位字节都在可打印 ASCII 字符 ( 20- 7e) 的范围内。这可能提示了无效地址的来源。

聊天调试总结。问题是由于爬虫代码中的错误导致的:

ip = ipaddress.ip_address(hostname)

该行将把任何恰好为 16 个字符长的主机名解释为 IPv6 地址。主机名上未执行任何 DNS 解析。

相关内容