DNS 根记录硬编码,那么为什么它有 ttl?

use*_*528 8 domain-name-system ns-record nameserver

我在本地托管一个递归名称服务器,因此我不需要我的服务提供商或其他公共 DNS 服务器来进行名称解析。尽管根名称服务器 IP 地址在配置文件(在绑定/etc/bind/db.root文件中)中进行了硬编码,但是当我nslookup为根名称服务器运行多个连续命令时,.TTL 字段仍然会减少。

为什么 TTL 在配置文件中被硬编码时会减少?
为什么在硬编码时首先需要根级别的 TTL?

HBr*_*ijn 14

通常,您会明确配置类似于以下代码段的 DNS 根服务器:

zone "." {
  type hint;
  file "/etc/bind/db.root";
};
Run Code Online (Sandbox Code Playgroud)

当你发现防区类型是不常见的master,也slave 可是一个特殊的区域类型hint

当名称服务器启动时,它只使用根提示来查找响应的根名称服务器,然后从那里获取当前的根名称服务器列表。这些是在操作期间实际使用的根服务器。

由于这些被缓存,它们将需要一个 TTL,正如您所观察到的:该 TTL 将像任何其他缓存的 DNS 记录一样减少。

如果没有为 IN 类指定提示区,则服务器使用编译入的默认根服务器提示集。来源:绑定管理员参考手册

正如 Brian 在他的回答中所解释的,根区域确实发生了变化,只要至少一个名称服务器保持有效,提示区域就允许在根名称服务器中进行此类更改,而无需所有现有名称服务器更新其静态配置文件。