我已将bind9 配置为充当缓存服务器并且工作正常。不过,我正在尝试配置缓存的保留期。我找不到有关缓存期限或如何配置它的任何信息。
如何配置 DNS 缓存的保留期限?我的目的是增加保留期限。
答案1
bind9 使用指定为每个 DNS 记录一部分的生存时间 (TTL) 值来确定缓存该记录的时间长度。这就是 DNS 标准的要求。似乎没有一种简单的方法可以在绑定中覆盖它,并且上游不太可能改变它因为这通常是个坏主意。
一种选择是运行 Debian 版本的 bind9;他们已经修补了它以添加一个min-cache-ttl
选项。
如果您没有运行 Debian,在 Serverfault 上,OmniWired 建议您可以获取源代码并编辑is_expired
函数更改缓存行为。他的例子只是将return 1
(过期)改为return 0
(未过期);显然,要实现更复杂的东西,就需要 C 编程知识。
如果您有一定的 C 知识,您也可以应用Debian min-cache-ttl 补丁。
另一种选择是未绑定DNS服务器其中有一个cache-min-ttl
指令可以覆盖过低的 TTL。