假设我在我的 DNS 服务器中为 192.0.2.0/24 网络创建了一个反向区域文件,我的 DNS 服务器将是反向区域 2.0.192.in-addr.arpa 的权威。在这个反向区域文件中,我使用以下参数创建授权开始记录:
$ dig @localhost -t SOA 2.0.192.in-addr.arpa. +noall +answer
2.0.192.in-addr.arpa. 604800 IN SOA primary-DNS-server secondary-DNS-server 2015010600 28800 7200 1209600 86400
$
我对这个反向区域的 DNS TTL 是否正确是 86400 秒?这意味着如果递归(缓存)名称服务器从该区域请求 PTR 记录,那么此递归名称服务器会将结果缓存 86400 秒?
早在 1997 年,那将是对几个 SOA 记录的正确解释。:) 那时事情有点模棱两可。
RFC 2308将 SOA 记录的最后一个字段重新分类为负缓存间隔,也称为
NCACHE
字段。RFC2308 §4 在这里最适用。它不仅将其重新定义为NCACHE
字段,而且还解释了为什么将默认 TTL 编码到 SOA 记录中一开始会被误导。(后者的重点是粗体)打破这个:
NCACHE
) 指定如果查询结果为 NXDOMAIN,远程名称服务器应缓存否定响应多长时间。$TTL
基于文本的区域文件的指令等效。$TTL
和 family 不是记录,因此您无法查询它们,它们将无法在区域转移中存活。(相反,在区域转移时,所有缺失的 TTL 都将替换为此值)正如 Andy 所说,如果各个记录指定了自己的 TTL,则默认 TTL 没有实际意义。
几乎。soa 记录本身的 TTL 为 86400 秒,具体取决于将成为该区域默认 ttl 的服务器端软件。
该区域内的单个记录(例如 PTR 或 NS)可以覆盖其 TTL。我相信任何单个 DNS 记录的递归查询都会返回其自己的 TTL,尽管我说这是基于观察而不是参考文档。