我们运行对延迟敏感的系统。我们发现了延迟的一个重要原因:某些进程正在阻止对远程名称服务器的DNS查找。为了缓解这个问题,我们安装了一个本地缓存DNS解析器,特别是dnsmasq
。
但我们仍然会看到偶然的重大暂停,对本地DNS缓存(dnsmasq
)的查询可能需要很长时间。这些是由TTL到期引起的;在这些情况下,dnsmasq
在响应本地进程之前查询其上游服务器。
我们也希望消除这些停顿。我希望我们的本地DNS缓存始终立即响应,即使响应是陈旧的。缓存应该异步查询其上游服务器。例如,如果缓存服务于陈旧响应,则可以异步刷新此缓存。或者更复杂的策略是在TTL到期之前不久异步刷新缓存。
但我找不到dnsmasq
或我查看过的任何其他缓存DNS服务器的任何此类设置。是否有任何DNS服务器设计为在此配置中运行?
答案 0 :(得分:2)
Knot resolver,配置modules = { 'predict' }
will start异步刷新记录,这些记录会在其TTL即将到期时进行回答。
请注意,版本2.0.0有一个错误,无法在没有DNSSEC签名的情况下刷新此刷新(将在下一个版本中修复)。
答案 1 :(得分:0)
未绑定的DNS服务器也使用预取选项执行此操作 - 是/否。