调整 Linux 故障转移到 resolv.conf 中列出的备份 DNS 服务器所需的时间

调整 Linux 故障转移到 resolv.conf 中列出的备份 DNS 服务器所需的时间

目前我正在使用普通的 vanilla linux 配置resolv.conf...例如:

nameserver 123.123.123.123
nameserver 8.8.8.8

当 123.123.123.123 出现故障时,DNS 查询会变得异常缓慢,我假设 Linux 每次都会重试第一个查询。有没有办法让 Linux 对此更智能?健康检查之类的?还是我误解了应该如何resolv.conf工作?

答案1

除了 ewwhite 的精彩回复外,还有一些附录。

您可以将其添加到/etc/resolv.conf

options timeout:1 attempts:1 rotate

默认值为时间:5 次尝试:2

实际情况是,如果没有 rotate 选项,解析器库将尝试使用/etc/resolv.conf从上到下列出的名称服务器。如果存在 rotate 选项,则它会进行循环选择。如果解析器到达列表底部并且服务器在 X 秒内没有响应(考虑到 X 是超时参数),那么它将再次重复整个循环选择过程 Y-1 次(其中 Y 是尝试次数的值)。

但是需要注意的是,不要使用 dig 和相关工具来测试这些 resolv.conf 选项。因为它们会避开解析器库并直接询问名称服务器。getent hosts 是更好的命令。请注意,使用 glibc 解析器的任何内容都必须遵守/etc/resolv.conf文件。

答案2

这是通过 描述的man resolv.conf

请尝试其中一个超时选项,将默认值从 5 秒降低到 1 秒......

options timeout:1
nameserver 123.123.123.123
nameserver 8.8.8.8

但实际上,DNS 具有如此多的弹性,即使没有较低的解析超时,也是可以的。是否可以选择更好的公共 DNS 或运行自己的内部解析器?

相关内容