DNS:重试和 TTL 值

网络工程 dns
2022-03-02 14:22:31

我在 Internet 上阅读了有关该主题的一些解释,以及 BIND 和 DNS 第 4 版第 4.2 章(设置区域数据)和 8.4(更改 TTL)。我还是有些疑惑。首先是一个简短的刷新。;-)

刷新时间是从服务器执行的两次查询之间的间隔时间,以检查主 DNS(或上游服务器,如果我错了,请纠正我)上的区域的序列号是否已更改。

TTL是从属 DNS 服务器在刷新从主服务器检索到的值之前缓存条目(通常为 A 或 AAAA)的时间。

让我们使用一个实际示例:辅助节点上的刷新值为 7200(3 小时),TTL 为 86400(1 天),无论它们在现实世界中是否正在使用。假设 pippo.example.com 解析为 192.0.2.98。想象一下奴隶刚刚检索到这个条目,因此条目的生命周期只有几秒钟。

现在 pippo.example.com 在主服务器上从 192.0.2.98 更改为 192.0.2.78。在主服务器上,我们也将更改序列号,当三个小时后从服务器查询主服务器时,它将看到更高的序列号,它将检索整个区域,因此也会检索 pippo.example.com 的新 IP 地址.

问题 1:据我了解,不尊重 TTL。我对吗?我的意思是,如果该条目在主条目上有新值,为什么从节点会保留旧的缓存条目?

问题2:如果我上面写的是真的,为什么每个人都在替换FQDN的IP地址之前使用降低TTL的技术?

我想我的第一个推理是不正确的,可能是我遗漏了一些明显的东西,但目前我无法自己回答。提前感谢任何澄清和/或指出我解释这一点的文档的人。

1个回答

对于某些区域,DNS 服务器可以有不同的职责:

  • (又名主要)服务器:区域的权威服务器
  • (又名辅助)服务器:区域的权威服务器,通过区域传输从另一个权威源(主)获取数据
  • 缓存服务器(又名解析器):接收有关区域的查询并从该区域的权威来源获取记录的任何 DNS 服务器,对记录进行缓存以更快地响应未来的查询。

您似乎混淆了从属服务器和缓存服务器。请注意,与主从服务器不同,缓存服务器不是由区域所有者操作或代表区域所有者操作,而是可以是世界上任何已获取有关区域信息的 DNS 服务器。

刷新时间告诉从属服务器何时检查来自主服务器的新信息

TTL用于缓存服务器告诉他们信息可以缓存多长时间。

问题 1:是的,从服务器将在 refresh_time 秒后通过区域传输更新其区域信息。

问题 2:在 DNS 更改之前降低 TTL 可以防止世界各地的 DNS 服务器在旧 IP 地址更改后缓存它。从服务器可以被明确地通知更改,但是发送响应的低 TTL 是包含缓存服务器行为的唯一方法。