将IPv4设置为优于IPv6的首选协议


19

我在包含Slackware 13.0盒的LAN网络中同时使用IPv6和IPv4。如何在该网络的工作站上将IPv4设置为首选协议?我想明确使用IPv6或仅使用AAAA记录时使用。例如,如果我尝试从Firefox 打开http://ipv6.org/,我将始终通过IPv6连接。其他应用程序也是如此。我尝试创建/etc/gai.conf并将以下内容添加到其中:

precedence ::ffff:0:0/96  100

这应该至少在Debian中控制getaddrinfo(3)的行为,但是在Slackware上没有帮助。

任何想法将不胜感激。提前致谢!


1
非常感谢您的指点/etc/gai.conf!我正在搜寻它大约半年了!:)
kolypto

Answers:


18

根据手册页,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

1

ipv6并不是我真正的专业领域,但是在手册页resolver(5)上似乎有一些/etc/resolv.conf与之相关的选项:

options inet6RES_USE_INET6_res.options。这样的效果是,在gethostbyname(3) 函数内部的A查询之前先尝试AAAA查询,如果找不到AAAA记录但存在A记录集,则以IPv6“隧道形式”映射IPv4响应。

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.