我对在 NS 记录上设置 TTL 有疑问。以下是示例:
example.com. 3600 NS ns1.example.com.
example.com. 3600 NS ns2.example.com.
test 14400 A example.com.
因此,在此示例中,名称服务器记录的 TTL 设置为 1 小时,而 test.example.com 的 TTL 为 4 小时。
这是否意味着 test.example.com 实际上具有 1 小时的 TTL,因为名称服务器查找仅在一小时内有效?
答案1
在 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。
答案2
我知道有点晚了,但我正在尝试做同样的事情,我遵循的方法是增加我的重要子域的 TTL,因为它们的 CNAME 记录没有变化,我将减少我的 NS 记录的 TTL 并进行迁移,并将验证是否与不太重要的子域一起工作。这样,如果我的 NS 记录出现任何问题,我应该能够在它影响我的关键子域之前对其进行故障排除。