DNS 更改复制时间

DNS 更改复制时间

我们刚刚将 DNS 记录更改为指向运行 IIS 的新服务器。地址更改为新服务器需要多长时间?有些人仍然可以看到旧服务器,有些人可以看到新服务器。

我已经刷新了我的 PC 上的 DNS,看上去一切正常,尽管我的另一台 PC 却不行。

谢谢

答案1

它完全取决于域或单个资源记录的 TTL,并且根据整个互联网上每个不同解析器获取(和缓存)记录的时间而有所不同。

您可以使用 dig 找出本地解析器的 TTL:

$ dig serverfault.com a | grep serverfault | grep -v'\;'

serverfault.com.44257 在 69.59.196.212

因此对于 serverfault.com,我的本地解析器将保留此记录 44257 秒。要找到真正的 TTL,我们首先需要确定权威名称服务器。

$ dig serverfault.com ns |删除 NS grep -v'\;'

serverfault.com. 86392 IN NS ns4.p19.dynect.net。

serverfault.com. 86392 IN NS ns1.p19.dynect.net。

serverfault.com. 86392 IN NS ns2.p19.dynect.net。

serverfault.com. 86392 IN NS ns3.p19.dynect.net。

然后我们可以直接向其中一个查询TTL。

$ dig @204.13.250.19 serverfault.com | grep serverfault | grep -v'\;'| grep -v NS

serverfault.com.86400 IN A 69.59.196.212

在这种情况下,“serverfault.com”的资源记录为 86400 秒(1 天)。

答案2

这是不断出现但在不同标题下的问题之一,因此很难发现重复项。

让我先稍微纠正一下你的术语。根据问题的上下文,你应该问的是传播,而不是复制,因为后者是在 DNS 对等体(主服务器和从服务器)之间进行的。

有许多因素决定了传播延迟。从表面上看,这似乎只是使用 TTL 时间的简单问题。当你知道地址要更改时,通常的做法是在进行实际更改之前将 TTL 缩短为一个较短的时间段,比如一个小时。如果将 TTL 设置为少于一小时,那么你几乎可以预料到大多数系统都会忽略它并使用一个小时。

不幸的是,越来越多的系统完全忽略了 TTL,并提供可能已过期的缓存信息。除非您能控制这些系统,否则您对此无能为力。

甚至本地计算机的缓存也可能存在问题,因为操作系统甚至可能不检查 TTL,更不用说遵守它了,因此可能会使用不正确的信息,即使上游 DNS 服务器具有正确的信息。

相关内容