将 IPv4 设置为 IPv6 之上的首选协议

将 IPv4 设置为 IPv6 之上的首选协议

我在包含 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 inet6RES_USE_INET6在 中 设置 _res.options。这具有在函数内部尝试 AAAA 查询之前尝试 AAAA 查询的效果gethostbyname(3) ,并且如果未找到 AAAA 记录但存在 A 记录集,则以 IPv6“隧道形式”映射 IPv4 响应。

也许您的客户已经设置了该选项?

相关内容