如何在仅缓存的bind9中覆盖TTL?

如何在仅缓存的bind9中覆盖TTL?

我这里有一个仅缓存的 DNS。我希望它覆盖其缓存记录的 TTL 字段,以减少平均网络延迟。

理想情况下,我可以在配置中的某个位置设置 TTL,这将覆盖 SOA 数据。

这有可能吗?

如果不是:也许在bind9之前放置一个具有所需功能的代理DNS(或完全切换到),也是一个可行的解决方案,因此是一个可以接受的答案。

PS 我绝对承认这通常是一个糟糕的解决方案。但每条规则都有例外,这就是其中之一。请关注实际提出的问题,而不是关注我的网络详细信息。

答案1

我不知道 BIND 是否允许全局更改答案的最小 TTL,除了对源代码进行修补之外,该答案并不具有权威性。

这篇文章给出了一些提示。https://serverfault.com/questions/113954/how-can-i-override-ttl-of-an-internet-address

然而,dnsmasq并且Unbound能够做到;您只需使用其中之一来代替 BIND,或者将其用作 BIND 的 DNS 转发器。

dnsmasq

--min-cache-ttl= 将短 TTL 值扩展到缓存它们时指定的时间。请注意,人为地延长 TTL 值通常是一个坏主意,除非您有充分的理由并且了解自己在做什么,否则不要这样做。 Dnsmasq 将此选项的值限制为一小时,除非重新编译。

未绑定

  cache-min-ttl: <seconds>
          Time  to  live  minimum  for  RRsets  and messages in the cache.
          Default is 0.  If the minimum kicks in, the data is  cached  for
          longer than the domain owner intended, and thus less queries are
          made to look up the data.  Zero makes sure the data in the cache
          is  as the domain owner intended, higher values, especially more
          than an hour or so, can lead to trouble as the data in the cache
          does not match up with the actual data any more.

相关内容