我们有一个小型数据中心,其中约有一百台主机指向3个内部dns服务器(绑定9)。当内部dns服务器之一不可用时,就会出现我们的问题。那时,指向该服务器的所有客户端开始执行时都非常缓慢。
问题似乎是库存的Linux解析器实际上并没有“故障转移”到其他dns服务器的概念。您可以调整超时和重试次数(并设置轮换以使它可以在列表中使用),但是如果主dns服务器不可用,则无论使用哪种服务,服务执行的速度都会慢得多。目前,这是我们最大的服务中断源之一。
我理想的答案应该是“ RTFM:像这样调整/etc/resolv.conf ...”,但是如果那是一个选项,我还没有看到。
我想知道其他人如何处理这个问题?
我可以看到3种可能的解决方案类型:
使用linux-ha / Pacemaker和故障转移ips(因此dns IP VIP始终可用)。las,我们没有好的围栏基础设施,没有围栏的起搏器也无法很好地工作(以我的经验,Pacemaker会在没有围栏的情况下降低可用性)。
在每个节点上运行本地dns服务器,并使resolv.conf指向localhost。这会起作用,但是它将为我们提供更多监视和管理服务。
在每个节点上运行本地缓存。人们似乎认为nscd“已损坏”,但是dnrd似乎具有正确的功能集:它将dns服务器标记为已启动或已关闭,并且不会使用“已关闭”的dns服务器。
任何广播似乎仅在ip路由级别起作用,并且取决于服务器故障的路由更新。多播似乎是一个完美的答案,但是bind不支持广播或多播,我能找到的文档似乎表明多播dns更针对服务发现和自动配置,而不是常规的dns解决。 。
我是否缺少明显的解决方案?