我正在寻找一个代理/缓存 DNS Linux 服务器,如果无法从上游获取更新,该服务器能够提供过时(过期)的记录。
如果可以将其配置为在上游花费的时间过长时使用过时的记录,然后在响应到达时异步更新缓存,那就更好了。
所需的行为与proxy_cache_use_stale
nginx 指令非常相似 - 尽可能提供新鲜的上游服务,当上游中断时提供任何您拥有的服务。
dnsmasq 可以强制延长缓存记录的 TTL,但这在两点上都失败——客户端获得具有活动上游的陈旧记录,并且一旦延长的 TTL 最终过期并且上游关闭——客户端将一无所获。
答案1
我知道unbound
DNS 中有类似的功能。
从未绑定文档:
serve-expired: <yes or no>
If enabled, unbound attempts to serve old responses from cache
with a TTL of 0 in the response without waiting for the actual
resolution to finish. The actual resolution answer ends up in
the cache later on. Default is "no".