配置 BIND 以优先使用 IPv4 而不禁用 IPv6

配置 BIND 以优先使用 IPv4 而不禁用 IPv6

我们的办公室网络内部采用双栈,但与互联网其余部分的连接仅支持 IPv4。我在 Linux 机器上安装了 BIND 9.9 来处理 DNS 解析。

有没有办法配置 BIND 在连接其他 DNS 服务器时优先使用 IPv4,而无需禁用 IPv6?我希望保持 IPv6 处于启用状态,这样一旦我们与外界建立 IPv6 连接,一切都会正常工作,但同时不会用error (network unreachable) resolving 'microsoft.com/DS/IN': 2001:7fd::1#53消息堵塞日志。

答案1

我不记得在哪里找到这个解决方案,但它在这里

在 /etc/bind/named.conf.local 中:

// disable lookup over IPv6
server ::/0 {
        bogus yes;
};

然后,它假装 IPv6 范围内的 IP 地址不可访问,并改用 IPv4 来访问。

答案2

我建议更改客户端,而不是 DNS 服务器。客户端通常通过请求 A 和/或 AAAA 记录来请求 DNS 条目。如果 DNS 有两个答案,则有一种排序算法优先选择 V6 而不是 V4。每个连接都由客户端有效地建立。

优先选择 IPv4 而不是 V6,因此可以设置

precedence ::ffff:0:0/96  100

/etc/gai.conf每个客户端上。这至少在 GNU/Linux 上有效。我不知道如何让 Windows 做到这一点。

高血压

相关内容