小编Nei*_*tin的帖子

当 DNS 服务器出现故障时避免 DNS 超时

我们有一个小型数据中心,大约有一百台主机指向 3 个内部 DNS 服务器(绑定 9)。当其中一台内部 DNS 服务器不可用时,我们的问题就出现了。那时所有指向该服务器的客户端开始执行非常缓慢。

问题似乎是股票 Linux 解析器并没有真正具有“故障转移”到不同 DNS 服务器的概念。您可以调整它使用的超时和重试次数(并设置轮换,以便它可以在列表中工作),但无论使用什么设置,如果主 DNS 服务器不可用,我们的服务执行速度会慢得多。目前,这是我们服务中断的最大来源之一。

我的理想答案是“RTFM:像这样调整/etc/resolv.conf...”,但如果这是一个选项,我还没有看到。

我想知道其他人是如何处理这个问题的?

我可以看到 3 种可能的解决方案:

  • 使用 linux-ha/Pacemaker 和故障转移 IP(因此 DNS IP VIP“始终”可用)。唉,我们没有良好的围栏基础设施,没有围栏起搏器不能很好地工作(根据我的经验,没有围栏的 Pacemaker 会降低可用性)。

  • 在每个节点上运行本地 DNS 服务器,并将 resolv.conf 指向 localhost。这会奏效,但它会给我们更多的服务来监控和管理。

  • 在每个节点上运行本地缓存。人们似乎认为 nscd “已损坏”,但 dnrd 似乎具有正确的功能集:它将 DNS 服务器标记为启动或关闭,并且不会使用“关闭”的 DNS 服务器。

Any-casting 似乎只在 IP 路由级别工作,并且依赖于服务器故障的路由更新。多播似乎是一个完美的答案,但 bind 不支持广播或多播,我能找到的文档似乎表明多播 DNS 更侧重于服务发现和自动配置,而不是常规 DNS 解析.

我错过了一个明显的解决方案吗?

domain-name-system high-availability datacenter

22
推荐指数
2
解决办法
3万
查看次数