我在包含 Slackware 13.0 盒的 LAN 网络中同时使用 IPv6 和 IPv4。如何将 IPv4 设置为此网络中工作站的首选协议?我希望明确使用 IPv6,或者在只有 AAAA 记录可用时使用 IPv6。例如,如果我尝试打开http://ipv6.org/从 Firefox 开始,我将始终通过 IPv6 进行连接。其他应用程序的情况也一样。我尝试创建 /etc/gai.conf 并向其中添加以下内容:
precedence ::ffff:0:0/96 100
这至少应该可以控制 Debian 中 getaddrinfo(3) 的行为,但对 Slackware 没有帮助。
任何想法都将受到赞赏。提前致谢!
答案1
根据手册页,precedence
在 gai.conf 中插入一个值会禁用所有其他默认规则。尝试设置 RFC 3484 (10.3) 中列出的所有规则:
Prefix Precedence Label
::1/128 50 0
::/0 40 1
2002::/16 30 2
::/96 20 3
::ffff:0:0/96 100 4
答案2
ipv6 并不是我真正的专业领域,但在手册页上resolver(5)
似乎有几个/etc/resolv.conf
可能相关的选项:
options inet6
RES_USE_INET6
在 中 设置_res.options
。这具有在函数内部尝试 AAAA 查询之前尝试 AAAA 查询的效果gethostbyname(3)
,并且如果未找到 AAAA 记录但存在 A 记录集,则以 IPv6“隧道形式”映射 IPv4 响应。
也许您的客户已经设置了该选项?