什么决定 FQDN 被解释为 IPv6 还是 IPv4?

Laz*_*zer 9 domain-name-system url ipv6 ipv4

当我在 URL 栏中键入完全限定域名 (FQDN) 时,浏览器会连接到某个映射表(该表存储在哪里?与服务提供商一起存储?),该表确定所请求文件的托管位置。

因此,是否支持 IPv6 地址取决于服务提供商(我假设他们拥有转换表)。真的吗?

uni*_*pse 7

由于这是标记为 iptables,我认为这是一个 Linux 问题。

在 Linux 上,由 glibc 决定程序是先查找给定主机名的 IPv6 地址 (AAAA) 还是 IPv4 地址 (A)。使用 glibc 的程序使用 getaddrinfo() 函数。getaddrinfo() 的行为在/etc/gai.conf 中配置。

在您的系统上,很可能 /etc/gai.conf 中的所有内容都被注释掉了。取消注释条目:

标签 ::/0 1

对我来说,这导致了 AAAA 优先查找的激活,因此首选查找 IPv6 地址。所以这可能就是你想要的。

更新添加:正确的方法似乎是使用 0 到 7 的值取消注释 gai.conf 中的整个“标签”块:

label ::1/128       0
label ::/0          1
label 2002::/16     2
label ::/96         3
label ::ffff:0:0/96 4
label fec0::/10     5
label fc00::/7      6
label 2001:0::/32   7
Run Code Online (Sandbox Code Playgroud)


Hel*_*ick 2

查找将由您的 DNS(也可能是您的本地主机文件)处理。特定名称是否解析为 IPv6 地址或 IPv4 地址取决于您的浏览器设置(是否支持 IPv6 以及是否发送 IPv6 AAAA 请求)、您的操作系统(您是否拥有 IPv6 堆栈等)以及您的计算机。 DNS 提供商(他们是否支持 AAAA (IPv6) 请求)。

浏览器问题变得更加复杂,因为一些(较旧的)浏览器从不发出 AAAA 查找请求,有些可以配置为不发送它们(firefox 有一个设置),但大多数现代浏览器首先发送 AAAA 请求,然后发送一个A请求。

  • 它通常是空的 - 如果绝对需要,请添加条目,您确实希望将 IPv6 名称解析留给 DNS。 (2认同)