resolv.conf 中的名称服务器条目数

resolv.conf 中的名称服务器条目数

我可以提交多少个名称服务器条目/etc/resolv.conf?我已将我们的 ISP 的两个名称服务器条目作为第一和第二个。但由于它们有时会出现问题,我想添加 Google 公共名称服务器条目。第三和第四个条目有什么区别吗?

这是resolv.conf我们的代理 (squid) 服务器。我知道 Squid 用于/etc/resolv.conf名称解析。

答案1

实际上,/etc/resolv.conf 中只允许有三个服务器条目。

看:http://linux.die.net/man/5/resolv.conf

答案2

我最初的解决方案是安装 dnsmasq 来克服双栈系统上的 3 个名称服务器限制,但是这种解决方法会增加太多的安装和维护成本(我操作许多 lxc 容器),所以我需要一个更简单的解决方案,幸运的是它确实存在。

我发现您可以使用 systemd-resolved 来克服 3 个名称服务器的限制。大多数现代发行版都已默认设置好并准备就绪。有一个文件 /etc/systemd/resolved.conf,您可以在其中指定名称服务器 IP。编辑 conf 文件并添加您的名称服务器,然后运行 ​​systemctl restart systemd-resolved。完成!

我注意到有人评论说 resolv.h 中的 MAXNS 不再存在。我在 github 上看到的源版本也没有 MAXNS,但我记得不久前遇到了 3 个名称服务器的限制,所以它似乎仍然适用。

编辑:默认的 /etc/systemd/resolved.conf 已注释掉一些条目,表明可以指定 3 个以上的 DNS 服务器,但是当查看 /run/systemd/resolve/resolv.conf 时,我看到了此注释

“配置的 DNS 服务器过多,以下条目可能会被忽略。”

接下来是前 3 个之后的附加 DNS IP 列表。

所以看来我们仍然只能使用 3 个 DNS 服务器,这很难理解为什么。如果限制有正当理由,那么至少应该在默认 resolv.conf 文件中说明限制,并且文件中建议的 DNS 条目不应超过 3,最后一种情况是,当 DNS 条目无效时,解析器在重新启动时应该出错。

答案3

实际上,您可以拥有任意数量的域名服务器。只需记住,解析将在第一个域名服务器上失败,然后才会转到第二个域名服务器,依此类推。名称解析尝试需要一段时间才能到达第三个和第四个域名服务器。

编辑:正如这个答案的评论中所解释的那样,我错了。默认情况下,您只能使用三个名称服务器,这似乎是一个编译时选项(因此在运行时不容易更改)。

相关内容