我设置了两个内部 dns 服务器,我所有的服务器都在 resolv.conf 中都有它们我们的主 dns 服务器出现故障,突然之间没有服务器可以看到对方。我手动编辑了一些服务器 resolv.conf 并提交了第一个(关闭的)dns 服务器,该机器将立即能够再次 ping 通。我做错了什么,它超时时不会自动切换到辅助dns服务器吗?
# File managed by puppet
nameserver 192.168.146.100
nameserver 192.168.159.101
;nameserver 72.14.188.5
domain example.com
search example.com
可能是默认超时时间太长,导致应用程序中断。请记住,解析器每次调用时都会从 /etc/resolv.conf 中的第一个条目开始(尽管有缓存的条目)。
尝试添加类似“options timeout:.5”或类似内容(参见手册页 - http://linux.die.net/man/5/resolv.conf),让本地解析器更快地尝试备用名称服务器。小心不要将此值设置得太低,因为某些递归查找可能会花费相当长的时间。
除了减少超时之外,您可能还想添加
options rotate
导致解析器改变其启动的名称服务器的内容。这意味着当第一台服务器不可用时,至少在某些时候解析器将通过查询第二台服务器来启动。当然,这确实意味着第二个名称服务器故障的影响更为明显。它应该是透明的并且可以正常工作。我能想到的是第一台服务器超时异常。你能可靠地重现问题吗?