在名称服务器 (NS) 记录上设置较低的 TTL 会导致其他记录上的 TTL 降低吗?

CJD*_*CJD 7 domain-name-system bind

我有一个关于在 NS 记录上设置 TTL 的问题。以这个例子为例:

example.com. 3600  NS ns1.example.com.
example.com. 3600  NS ns2.example.com.
test         14400 A  example.com.
Run Code Online (Sandbox Code Playgroud)

因此,在此示例中,名称服务器记录的 TTL 设置为 1 小时,而 test.example.com 的 TTL 设置为 4 小时。

这是否意味着 test.example.com 实际上会有 1 小时的 TTL,因为名称服务器查找仅在一个小时内有效?

小智 10

在 DNS 上下文中,TTL 定义了资源记录 (RR) 可以被任何解析器缓存的持续时间。

NS RR 是有时称为区域基础设施记录的一部分。基础设施 RR(包括 SOA、NS 和 MX RR)是独一无二的,因为它们返回其他名称而不是地址,因此它们应该是稳定的,并且为了最大限度地减少 DNS 访问可以并且应该具有非常长的 TTL(数天和数周)。

如果您想覆盖默认值,您可以为某个 RR 指定一个 TTL。

根据您的记录配置;

在解析器的第一次递归时:

每条 NS 记录会缓存 1 小时,test.example.com 会缓存 4 小时。

假设 30 分钟后,同一个解析器被要求提供 test.example.com 记录,缓存的一个将在不联系您的权威 NS 的情况下返回。

假设 120 分钟后,同一个解析器被要求提供 test.example.com 记录,缓存的一个将被返回,而无需联系您的权威 NS。

但是此时如果解析器被问及 foo.example.com,它将不得不执行新的递归以找到您的 NS RR,然后找到 foo.example.com。