DNS 传播可以持续少于 24 小时吗?大多数网站都说它持续 24-48 小时,这是否意味着它不能持续少于 24 小时?
答案1
“DNS 传播”意味着互联网上人们可能使用的大多数(“几乎所有”)名称服务器将返回新的/更改的/当前的信息。这由两次组成:
从在相关管理界面上进行更改到在权威名称服务器上实际进行更改的时间。
这可以是即时的:例如,当我想更改我的私有域的记录时,适当的界面实际上是具有八个左右条目的名称服务器配置。
或者它可能非常慢,因为它是一个多阶段过程:例如,要更改名称服务器地址,您可能正在更新注册商的数据库(假设为 joker.com 或 gandi.net);从注册商那里,更改通常只是定期(每小时、每八小时或其他时间)发送到注册中心的主数据库(发送到 Verisign 进行更新
.com
);从他们的数据库中,他们需要将信息提供给处理该区域的实际名称服务器,这同样会定期发生,频率在每小时到每天之间。特定用户/ISP 的名称服务器获知此更改的时间。
最好的情况下,这是在步骤 1 之后立即执行的。如果 ISP 以前从未见过某个名称,则会使用标准递归算法来查找它,然后权威服务器将返回刚刚更新或添加的值。
在最坏的情况下,ISP 的服务器之前已经查找过该名称,并将缓存结果。然后,您需要等待,直到该缓存条目过期;这需要多长时间取决于条目的“生存时间”(TTL 是记录的一个属性;设置它完全取决于在权威服务器中维护条目的人员),或者,如果名称不存在,则为其包含区域设置的“负缓存 TTL”(维护它是运行该区域人员的责任和唯一决定)。
更糟糕的情况是当 TTL 被错误处理时(现在太长且繁琐,但它可能需要两倍于设置的时间才能过期 - 理论上甚至更长,但这种情况很快就会变得非常罕见)。
更糟糕的情况是,在多个权威服务器中,只有一个得到更新,而最终被要求的服务器在更新自身时出现问题 - 抛开理论不谈,所有相当大的服务提供商都会监控这一点,并修复或关闭故障的服务器,所以这可能会增加几个小时的时间,如果在维护/修复之前请求得到了旧的、错误的答复,那么这可能会增加完整的 TTL。
如果您为步骤 1 假设合理的值(注册商到注册中心最多 6 小时,注册中心每天重新加载)并且 TTL 的常见值(从技术上讲至少为一分钟,但对于像 www.google.com 这样的主机,通常在 5 分钟之间,它们使用不同的地址进行负载平衡和流量管理,对于完全托管的网站,则在 1 到 24 小时之间),最终会得到“对于互联网上的大多数人来说,在 24 到 48 小时之间”。
您可能很幸运,只需几分钟的时间就可以完成更改,然后全世界的每个人都会看到它;或者您可能特别不幸,您的更改被某个完全不相关的故障 ISP 忽略,而该 ISP 的用户直到下周才能看到您的更改。