DNS 记录传播需要多长时间?

70 domain-name-system

这是一个关于 DNS 传播的规范问题

传播各种类型的记录需要多长时间?
有些传播速度比其他快吗?
为什么 DNS 记录传播需要时间?它是如何工作的?

Eva*_*son 72

“DNS 传播”本身并不是一种真实的现象。相反,它是 DNS 协议中指定的缓存功能的明显效果。说 DNS 服务器之间的更改“传播”是一个方便的谎言,可以说,与描述 DNS 协议的所有细节相比,向非技术用户解释更容易。不过,这并不是协议的真正运作方式。

递归 DNS 服务器代表客户端进行查询。递归 DNS 服务器通常由 ISP 或 IT 部门运行,客户端计算机使用它来解析 Internet 资源的名称。递归 DNS 服务器缓存它们所做的查询结果以提高效率。无需进行任何其他查询即可回答对已缓存信息的查询。结果缓存的持续时间(以秒为单位)应该基于称为生存时间 (TTL) 的可配置值。该值由权威 DNS 服务器为查询的记录指定。

由于 DNS 是一种分布式协议,因此所有问题都没有一个答案。DNS 的行为取决于给定记录的权威 DNS 服务器的配置、代表客户端计算机进行查询的递归 DNS 服务器的配置以及客户端计算机操作系统中内置的 DNS 缓存功能。

指定一个 TTL 值足够短以适应 DNS 记录的日常更改是一种很好的做法,但足够长以在缓存中创造“胜利”(即不要太短以至于缓存老化太快提供任何效率改进)。采用具有 TTL 值的平衡策略可为每个人带来“胜利”。它降低了给定域的权威 DNS 服务器、根服务器和 TLD 服务器的负载和带宽利用率。它降低了递归 DNS 服务器运营商的上行带宽利用率。它可以为客户端计算机带来更快的查询响应。

由于 DNS 记录的 TTL 设置较低,权威 DNS 服务器上的负载和带宽利用率将增加,因为递归 DNS 服务器将无法长时间缓存结果。由于记录的 TTL 较高,因此对记录的更改不会很快“生效”,因为客户端计算机将继续接收存储在其递归 DNS 服务器上的缓存结果。设置最佳 TTL 归结为在利用率和快速更改记录并查看这些更改反映在客户端的能力之间的平衡行为。

值得注意的是,一些ISP滥用并忽略权威DNS服务器指定的TTL值(替换他们自己的管理覆盖,这是违反RFC的)。从技术角度来看,没有什么可做的。如果可以找到滥用 DNS 服务器的运营商,向他们的系统管理员投诉可能会导致他们实施最佳实践(这对于任何熟悉 DNS 的网络工程师来说都是常识)。这种特殊类型的滥用不是技术问题。

如果每个人都“遵守规则”,对 DNS 记录的更改可以很快“生效”。例如,在更改分配给“A”记录的 IP 地址的情况下,将执行 TTL 值的指数退避,直至进行更改。例如,TTL 可能从 1 天开始,然后在 24 小时内减少到 12 小时,然后在 12 小时内减少到 6 小时,在 6 小时内减少到 3 小时,等等,直到某个适当的小间隔。一旦 TTL 回退,就可以更改记录并且 TTL 恢复到日常操作所需的值。(没有必要使用指数退避,但是这种策略最大限度地减少了记录具有低 TTL 的时间并减少了权威 DNS 服务器上的负载。)

在创建 DNS 记录更改日志后,应监视由于旧 DNS 记录而进行的访问尝试。在更改“A”记录以引用新 IP 地址的示例中,服务器应保留在旧 IP 地址处,以处理仍使用旧“A”记录的客户端计算机导致的访问尝试。一旦基于旧记录的访问尝试达到可接受的低水平,旧 IP 地址就可以废弃。如果与旧记录相关的请求没有迅速减少,那么(如上所述)递归 DNS 服务器可能会忽略权威 TTL。然而,知道访问尝试的源 IP 地址并不能提供关于负责提供旧记录的递归 DNS 服务器的直接信息。

就我个人而言,我已经看到更改会在几个小时内立即“生效”,在某些情况下,几天后特定的大脑受损 ISP。对 TTL 进行回退并注意该过程的工作方式将增加您成功的更改,但您永远无法确定某些善意的白痴可能会对他们的递归 DNS 服务器做什么。

  • @tonygil - OpenDNS 不是 DNS。这只是某人提供的服务。如果 FooDNS 明天开放并且有一些令人兴奋的新缓存清除 API 会怎样?我的答案是否也应该包括在内?它在哪里停止?这正在退化成疯狂。回复:公民权利 - 我不是雇主或政府实体,否认受保护阶层的成员享有公民权利。当然——去吧,看看你能不能找到想起诉我的人。他们可以通过 PO Box 852, Troy, OH 通过邮件联系到我。(866) 569-9799,x801 转发到我的手机 24x7。(看看我的个人资料,顺便说一句,这是一些很好的侦探工作。) (11认同)
  • 这不是关于“OpenDNS”的答案——而是关于 DNS 的答案。任何递归 DNS 提供商都可以实现他们想要允许缓存清除等的任何接口。我们谈论的是 DNS——而不是供应商 API。就您的编辑而言:我支持“大脑受损”一词是黑客文化中长期使用的短语,并且我在这种情况下使用它(参见行话文件、Steven Levy 的“黑客”等) . 就“白痴”而言,我认为可以合理地确定,在法律法规之外,这是对无能力行为的通俗术语。我也坚持。 (10认同)
  • 你看,你说过同辈压力会带来改变。这就是我所做的。提请您注意,我不同意您使用“白痴”和“脑残”,因为它们具有冒犯性和贬义性。有人大量使用它(即黑客)的事实并不正确。kkk 大量使用了 n 字。请尊重我们这些照顾智障人士的人。我知道你在你丰富多彩的风格中隐喻地融入了这些术语,但相信我:它们是令人反感和不必要的。 (3认同)