每台机器分散式 DNS 缓存 - nscd/lwresd/etc

每台机器分散式 DNS 缓存 - nscd/lwresd/etc

前言:

我们在每个地理网络位置都设有缓存解析器。这些解析器被集群化以实现弹性,并且它们的本地性可减少我们服务器生成的内部请求的延迟。

效果很好。但网络上看到的大量请求都是对相同记录的查找,这些请求由不执行任何 DNS 缓存的应用程序生成。

问题:

  1. 为了减少重复请求冲击网络,在单个服务器上运行轻量级缓存守护进程是否有显著的好处?

  2. 有谁有使用经验[u]nscdlwresd或者dnscache做这样的事?还有其他值得一看的软件包吗?

  3. 有什么需要注意的吗?除了显而易见的,缓存和负缓存都会导致过时的结果。

答案1

我们在几百台机器上使用 nscd,根据我的经验,它“很好用”。它大大减少了我们 DNS 服务器的负载。

唯一要注意的是,默认情况下它将缓存组/用户/服务查找以及主机查找 - 您可能希望禁用此功能(在我们的例子中,我们也希望缓存这些查找)。

我记得许多年前 nscd 就存在问题,但最近的版本似乎有了很大的改进。

答案2

我在一些环境中使用了 nscd,正如其他人所说,它几乎“可以正常工作”,但如果您在每个站点的缓存解析器都正常工作,我会说本地缓存没有太多的优势:延迟应该很低,并且您不会向外界发送任何额外的请求,只会产生一些额外的内部聊天。

我曾经多次因为 nscd 保留一个过时的条目而导致“一台机器损坏”,所以我的建议是,如果你的内部 DNS 聊天并没有真正影响性能,那么就不要使用本地缓存(如果性能受到影响,请记录 nscd 的存在,以便在进行时间关键的更改时记得刷新其缓存)。

相关内容