根据我的搜索,SOA TTL 具有默认值,而 RR TTL 是选项。有人能告诉我它们之间的实际区别是什么吗
答案1
资源记录中的 TTL 非常明显 - 它是该特定记录的缓存时间。在 BIND 区域文件中,RR TTL 可以全局设置,也可以在单个记录上覆盖:
$TTL 86400
mydynamicrecord.mydomain.com 300 IN A 1.2.3.4
SOA 中的 MINIMUM TTL 字段有两种用途。
- 所有记录的全局最小值。如果您在任何记录上指定了较小的 TTL,则将改用 SOA 最小值。摘自 RFC:
每当发送 RR 以响应查询时,TTL 字段都会设置为 RR 中的 TTL 字段和相应 SOA 中的 MINIMUM 字段中的最大值。因此,MINIMUM 是区域中所有 RR 的 TTL 字段的下限。
- 作为“否定”响应的 TTL - 即解析器可以缓存此区域中不存在的记录的响应的时间。如果解析器尝试查找
invalidhost.mydomain.com
,解析器可以在 MINIMUM 字段中指定的时间内缓存“不存在”响应,这有助于降低 DNS 流量。