首选、备用或多个 DNS 服务器如何工作?

首选、备用或多个 DNS 服务器如何工作?

我正在考虑将 8.8.8.8 添加到我的适配器 DNS 服务器列表的末尾,以防万一一切失败了,因为我意识到我根本不清楚二级和三级 DNS 服务器是如何被处理的。

  • 下一个DNS服务器是在什么情况下使用的?
  • 如果名称无法解析,是否会检查下一台服务器?
  • 如果名称未解析,我可以配置我的机器来查询多个服务器吗?

我还担心通过添加不在我的内部网上的 DNS 服务器,我可能无法解析本地名称。

  • 如果第一个DNS服务器出现故障,辅助DNS服务器将使用多长时间?
  • 当我的机器检查主 DNS 服务器是否启动时,它会停止我当前的 DNS 查询吗?
  • 多个 DNS 服务器如何影响性能?如果我的适配器列表中有四个 DNS 服务器,其中三个已死,它会等待三次超时才能得到答案吗?

我也不确定这个问题是否特定于操作系统。不同的操作系统对此有不同的处理方式吗?

我的目标是在 DHCP 使用脚本分发的 DNS 服务器之上附加 8.8.8.8。我不断遇到愚蠢的 DNS 问题,我的机器最终会遇到虚假/无法访问/根本没有 DNS 服务器,这是由于我无法控制的 DHCP 配置错误造成的。我已经厌倦了,但我想知道添加这个故障保护是否会导致比它解决的问题更多的问题。

答案1

答案肯定是特定于操作系统的,因为没有什么是预防特定操作系统的行为会有所不同。没有什么必要的关于 DNS 客户端查询多个服务器,这将阻止操作系统实现以与我在此处描述不同的方式处理 DNS 查询。

也就是说,Linux 如何查找 DNS 名称的示例应该代表最多当今常用的操作系统都可以做到这一点。

这里是一篇很好的文章,详细描述了该行为,以及如何设置您所要求的内容。

一般的想法是,默认情况下,只有在主 DNS 服务器超时或指向不可路由的 IP 地址时,才会按顺序使用辅助/三级 DNS 服务器。即使主 DNS 服务器说“该域名无法解析”,它也不会继续询问下一个名称服务器。它对待任何对查询的有效响应作为理由不是移至列表中的下一个 DNS 服务器。

一个可行的合理设置方法是,首先使用本地地址进行解析,但仍使用 Google DNS 或 OpenDNS 而不是 ISP 的 DNS 服务器,即配置路由器或 LAN 盒(无论哪个盒是 Internet 网关)以用作8.8.8.8其主名称服务器。当然,网关盒应该本身运行名称服务器,并应配置为响应私有子网上本地主机名的 DNS 查询 - 但如果无法解析本地子网,则应立即转向 Google DNS。这可以说是两全其美。

另一种方法是为不同的网络接口设置不同的名称服务器。Windows 默认允许您这样做;上面链接中的文章描述了一种通过使用和forward指令配置 BIND9 DNS 服务器实现的方法forwarders

相关内容