防范(无限)缓慢的 DNS 服务器

防范(无限)缓慢的 DNS 服务器

最近,我的一个 ISP 的 DNS 服务器出了问题。用支持台人员的话来说,“它并没有完全瘫痪,只是连接速度非常慢”。我的应用程序瘫痪了几个小时,因为它无法连接到其他机器上的关键服务。

虽然我的/etc/resolv.conf文件中有冗余 DNS 服务器,但似乎这种缓慢还不足以让 DNS 客户端声明 DNS 服务器已关闭并回退到辅助 DNS 服务器。

我担心这种问题可能再次发生,所以我一直在阅读有关 Ubuntu DNS 配置的文章。似乎有一个超时选项,默认值为 5 秒,但这似乎在这里不起作用。

问题 1:是否有一个日志文件,我可以在里面查看 DNS 尝试并确认我的理解是超时没有触发?

问题 2:我需要做什么来实现这样的超时,并再次保护自己免受此类 DNS 问题的影响?

为了记录,我的/etc/resolv.conf文件(已删除):

search localhost
nameserver IP.addr.ess.1
nameserver IP.addr.ess.2
nameserver IP.addr.ess.3

我正在运行 Ubuntu 9.10(是的,是的,我希望在 12 月有一个安静的时期来升级。)

答案1

您可以尝试将您的 DNS 服务器更改为 Google 的 DNS 服务器。但是,如果您的 ISP 阻止了外部 DNS 查询,则此方法可能不可行。

我建议您安装一个本地 DNS 转发/缓存名称服务器,例如pdnsd,它具有高度可配置性。然后输入nameserver 127.0.0.1/etc/resolv.conf负责pdnsd将请求转发到其他名称服务器,或解析快如闪电从本地缓存中获取。您还可以配置超时,超过该时间后名称服务器将被视为无响应,因此它似乎符合您的需求。

Pdnsd 还支持并行访问多个 DNS 服务器,因此如果其中一个服务器速度慢,应用程序也不会变慢。它甚至支持故障转移服务器(例如,并行联系前两个服务器;如果它们没有响应,则联系另外两个,并监听所有四个服务器的响应,等等)。

根据aptitude描述:

pdnsd can be used with applications that do dns lookups, eg on startup, and can't be 
configured to change that behaviour, to prevent the often minute-long hangs
(or even crashes) that result from stalled dns queries.

安全注意事项:(pdnsd自认)外部人员访问不安全:如果您的机器在互联网上,则需要配置防火墙以仅允许本地机器访问。

相关内容