是否有任何方法可以返回陈旧的 DNS 结果?我所说的陈旧,是指 TTL 已过期,但无法获得新记录,可能是由于名称服务器不可用。
据我所知,至少 bind 9 没有任何机制。我也无法在绑定 10 中找到它的任何参考。对于我的生活,我不知道为什么。DNS 没有理由不能使用与 HTTP 相同的缓存规则和方法。站点可以选择禁用或调整其缓存首选项。
这对我来说似乎很简单,我希望我错过了一些可以与我分享的新发展:)
PS 我知道有一些最终用户工具可以做到这一点(opendns、dnsmasq 等),但这会剥夺域所有者的所有控制权,并迫使最终用户经常对区域文件应该如何做出错误的猜测缓存超出其 TTL。
从位于https://kb.isc.org/article/AA-01554/0/BIND-9.12.0-Release-Notes.html的 BIND 9.12 发布说明中,现在可用。
“当作为递归解析器时,当权威服务器受到攻击且无法响应时,named 现在可以继续返回其 TTL 已过期的答案。这由 stale-answer-enable、stale-answer-ttl 和 max-stale 控制-ttl 选项。[RT #44790]"