在 AAAA(IPv6)查找之前优先进行 A(IPv4)DNS 查找

在 AAAA(IPv6)查找之前优先进行 A(IPv4)DNS 查找

请注意,我新安装的 Ubuntu 10.10 总是在 A 记录查找之前进行 AAAA DNS 查找。有什么方法可以配置系统先进行 A 查找吗?

(虽然各种浏览器和其他应用程序可能包含自己的解析器,但我说的是 glibc 中的解析器)

答案1

这是优先使用 IPv6 而不是 IPv4 的标准,以允许下一代 IP 接管:)

您可以通过编辑中的优先级块来更改此设置/etc/gai.conf(gai 代表getaddrinfo,用于解析主机名的标准系统调用)。只需注释掉文件中描述的行即可:

# 对于首选 IPv4 连接的站点,将最后一行更改为

#优先级 ::ffff:0:0/96 100

详细说明gai.conf请参见人盖伊.conf(5)

答案2

我的问题是一样的,我在 IPv4 之前进行了 IPv6 查询,它们浪费资源,所以我确实/etc/gai.conf按照 freddyb 发布的更改了我的文件,但我的情况略有不同,我的服务器是网络地址转换的,因此仅凭这一行,IPv4 不会优先于 IPv6。解决方案还注释掉了其他行,因此/etc/gai.conf它看起来像这样

# For sites which prefer IPv4 connections change the last line to
precedence ::ffff:0:0/96 100
...
#    For sites which use site-local IPv4 addresses behind NAT there is
#    the problem that even if IPv4 addresses are preferred they do not
#    have the same scope and are therefore not sorted first.  To change
#    this use only these rules:
#
scopev4 ::ffff:169.254.0.0/112  2
scopev4 ::ffff:127.0.0.0/104    2
scopev4 ::ffff:0.0.0.0/96       14

因此,即使您已进行网络地址转换,您的服务器也会首先尝试 IPv4!

答案3

如果您根本不想启用 IPv6,您可以禁用 IPv6 来实现这一点。 http://www.webupd8.org/2010/05/how-to-disable-ipv6-in-ubuntu-1004.html

如果没有,你可以尝试添加

options single-request

到您的 /etc/resolv.conf 文件。(请参阅http://udrepper.livejournal.com/20948.html血腥细节)

相关内容