我从 ISP 那里获得了新的互联网计划,并正在做这sudo apt update && sudo apt upgrade
件事。所以我注意到获取的地址apt
都是 IPv6 地址。不仅如此apt
,其他工具也是如此。例如ssh
和wget
。
奇怪的是,我的 ISP 不支持 IPv6。所以我猜想,虽然它正在获取 IPv6 地址,但它正在回退到 IPv4(因为强制使用 IPv4 所花费的时间要短得多)。
我还认为,即使我的 ISP 不支持 IPv6,调制解调器(事实上,我甚至不知道这是否可能)也会将 IPv4 DNS 请求封装到 IPv6 中(或类似的东西)。这可以解释上述程序选择 IPv6 的原因。
一个例子是wget
(请注意,两者 apt
具有ssh
相同的行为):
$ wget google.com
->输出
$ wget -4 google.com
->输出
除了我的 DNS 服务器很差之外,我还wget
尝试通过 IPv6 进行连接,然后放弃,最后回退到 IPv4。
我坚信我错了。那么,这一切究竟是如何运作的呢?是因为我有本地 IPv6 地址吗?顺便问一下,是调制解调器还是 SO 决定我是否要有 IPv6 本地地址?有 IPv6 本地地址重要吗?
我实在太困惑了!!
答案1
根据您的 pastebin,您做拥有 ISP 分配的全球 IPv6 地址。前缀2804:14c:5b8f:29:...
属于 – 不确定“Grupo de Segurança Vírtua”或“CLARO SA”是否正确?无论如何,它都是有效的全球地址。
因此,问题在于您的 ISP(或者可能是您的路由器)为您提供了地址,但没有提供实际的 IPv6 连接。就像评论中所说,可能是 ISP 从错误端推出了 IPv6,或者您的路由器的防火墙阻止了 IPv6 数据包。我建议您致电 ISP 的技术支持。
关于 IPv6 地址分配:通常在 IPv6 中,每个客户都会获得一个整个子网(前缀)来自 ISP,并且每个设备都可以在该子网中拥有自己的全局地址。(IPv6 的全部意义在于,大量可用地址使得像“192.168”这样的地址不必要。
因此,在这种情况下,您的路由器已从2804:14c:5b8f:29::/64
ISP 获取前缀(通常通过 DHCPv6-PD),并在 LAN 上将其作为“可自动配置”进行宣传。这是正常行为。
(粗略地说,如果第一个块在2000
–5fff
范围内,那么它是全局的,而f000
–ffff
涵盖大多数类型的本地地址。)
关于 DNS,什么是请求要求完全与现状无关发表– 客户端完全可以通过 IPv4 请求 IPv6 地址记录,反之亦然。(IPv4“A”和 IPv6“AAAA”只是与 TXT、MX、SRV 并列的两种可能的数据类型……)