多个连接时应使用哪些 DNS 服务器

多个连接时应使用哪些 DNS 服务器

我有一个复杂的配置,多个 ISP 的多个 ADSL 连接由 Draytek Vigor 3300V+ 进行负载平衡

我的问题是我应该使用什么 DNS 设置。我应该使用连接 A 的 ISP 设置还是连接 B 的 ISP 设置,还是其他设置?

我目前在路由器和 draytek 上使用 Google DNS 设置 8.8.8.8 和 8.8.8.4,但我担心这可能会导致一些问题。有人能给我建议或给我指明正确的方向吗?

PS:一旦光纤到达我的办公室,我就可以摆脱这个复杂的设置

答案1

旁注:我区分了转发/递归/解析 DNS 和非转发/权威 DNS。虽然从技术上讲,它们都使用相同的协议,但它们的操作确实有很大不同。由于您确实提到了 8.8.8.8,因此我确实假设有一个转发 DNS 服务器。

通常,您的 ISP 会限制可以查询其 DNS 服务器的 IP 地址范围。

因此,如果您遇到 ISP A 的线路停机,您的系统可能会尝试通过 ISP B 的线路和 IP 地址向 ISP A 的 DNS 服务器查询。如果 ISP A 确实管理好他们的系统,他们会拒绝来自任何“外部”IP 地址(不属于 ISP A)的 DNS 请求。

解决办法大概只有三种:

  • 您的路由器可以根据连接的线路动态代理 DNS 请求
  • 运行您自己的 DNS 服务器
  • 查询公共 DNS 服务器

许多路由器都提供 DNS 代理:您使用路由器的 IP 地址作为“DNS 服务器”,路由器根据当前连接的线路将 DNS 请求转发到连接的 ISP。如果您连接到多个 ISP,并且其中一个 ISP 确实遇到 DNS 停机,则您的一些 DNS 请求将默默失败,您可能会花费大量时间来找出问题所在。如果您的其中一个 ISP 确实遇到 DNS 停机,但没有线路停机,则您的所有 DNS 请求都需要转到另一个 ISP。在这种情况下,您需要两个 ISP 才能完全访问互联网:一个提供线路和 DNS,另一个提供线路。当您使用多条线路时,我不推荐那些 DNS 代理。复杂性会致命。

运行您自己的 DNS 服务器确实会产生以下影响:

  • 您应该限制对 DNS 服务器的访问。管理不善的转发 DNS 服务器确实容易被滥用,例如发起拒绝服务攻击。
  • 解析 DNS 名称通常涉及许多步骤,这些步骤确实会产生总体延迟:DNS 服务器会询问根名称服务器,根名称服务器会指向特定于 tld 的 DNS 服务器;然后,DNS 服务器会询问特定于 tld 的 DNS 服务器,该服务器又会指向某个托管 ISP 的某个权威 DNS 服务器。DNS 服务器会查询该 DNS 服务器并获取最终结果。当然,这些请求会被缓存一段时间,但毕竟,所有这些请求都会增加一些网络延迟。完全“自行”解析 DNS 记录可能比询问公共 DNS 服务器(可能已经有缓存结果)花费更多时间。

因此,仅从性能的角度来看,使用公共 DNS 服务器(如前面提到的 Google DNS(8.8.8.8 和 8.8.4.4)或 OpenDNS(请参阅 opendns.com))可能是一个更明智的想法。

答案2

我对多 WAN 连接的经验是,ISP DNS 通常会导致问题。我总是尝试使用与 ISP 无关的 DNS 提供商,例如 Google DNS 或 OpenDNS。

我的理想设置是:

ISP 1 – Google DNS / 开放 DNS ISP 2 – 开放 DNS / Google DNS

这将提供完全的冗余。

相关内容