DNS变更需要多长时间


9

如果我要将DNS更改为我的域的A记录(从一个IP更改为另一个IP),那么在人们转移到新信息之前,我需要等待多长时间?是否只是<= TTL?我知道以前需要一段时间,但是在2009年应该期待多长时间?


在ServerFault.com上,此问题可能更适合。我知道问这个问题时还没有,但是您可能在那里得到了答案……
RSolberg

Answers:


24

从理论上讲,每个人都应该在瞬间和相关TTL值之间看到更新的A记录。大多数注册服务商将TTL设置为24小时IIRC,因此有些人会在24小时内看到旧地址,而有些人会看到新地址,在更改后的24小时内,每个人都应该拥有新地址,而有些人则使用较低的值,例如4个小时。

如果您有权更改TTL值(即像我一样运行自己的DNS服务器),则可以在进行更改之前将TTL减少到一天左右,这样传播时间就大大缩短了。

我在上面说“理论上”,因为那里总是会存在一些错误,故障和配置错误的缓存,这意味着某些用户将看不到更改的时间更长。如果您使用的TTL很小,则尤其如此,因为仍然有一些ISP带有DNS缓存,它们忽略了低于给定值的TTL。

需要注意的另一件事是注册商的DNS控制面板与其DNS服务器之间存在延迟。例如,我注意到对123-reg.co.uk管理的域所做的更改最多可能需要一个小时才能出现在其DNS服务器上,这比您必须考虑的TTL值还要多一个小时。 。


IIRC是什么意思?
mitnk 2014年

抱歉,我可能不应该在技术缩写中使用社交缩写!IIRC是“如果我没记错的话”。
David Spillett 2014年

10

这取决于客户端缓存DNS信息的时间,该时间应根据TTL值而定。但是,由于客户端决定了将信息缓存多长时间,因此您不能真正确定(毕竟所有客户端都可以进行手动解析,因此完全忽略了TTL)。


10

当我知道要提前几天更改IP地址时,通常会将TTL值降低到比我通常使用的值低的值。这样一来,我所做的更改就会更快地传播。然后,我再次将TTL踢回。


7

通常是<= TTL,但是某些客户端和DNS代理缓存旧设置的时间比TTL长。


4

同意迈克。我们通常会告诉我们的客户24-48小时,以向全世界宣传所有ISP。大多数主要的ISP都尊重TTL并迅速更新。一些较偏远的位置需要更长的时间。祝好运!


3

出于实际目的,所有DNS服务器都会在瞬间与A记录的TTL值之间看到A记录的更改。在维基百科的文章有关于这个问题的一个很好的书面记录。

由于路由器,防火墙,操作系统和应用程序中的本地DNS缓存,单个应用程序可能看不到TTL内的更改。如Wikipedia文章所述:“这些缓存通常使用非常短的缓存时间-大约一分钟。InternetExplorer提供了一个明显的例外:最新版本的缓存DNS记录半小时。”

重新启动(或路由器的电源重启)通常会刷新所有本地DNS缓存,但是显然,您不能期望在那里的每个用户在更改A记录后都会重新启动每个设备。

如果您不能直接更改A记录,则无论进行更改的任何应用程序(例如,控制面板软件)都可能会引入自己的延迟。

我们使用4小时的默认TTL。如果我们打算更改A记录,则将A记录的TTL降低到5分钟(必须在更改生效前4小时以上完成)。进行更改后,我们将TTL恢复为4小时。大多数应用程序会立即看到更改,但是一些用户会遇到问题并需要重新启动。

Wikipedia文章还对“传播”进行了很好的讨论:“许多人在更改DNS时错误地引用了48小时或72小时的神秘传播时间。根服务器(而非注册商)控制域的NS记录上的TTL。您可以使用nslookup命令自己查看这些TTL值。现在,现在,“ F”根服务器上我的NS记录的TTL设置为2天。


2

我总是告诉我的用户,整个传播将需要48个小时,以弥补上述所有问题。要记住的一般规则是,它是<= TTL,除非您确实需要它是...


2

除了TTL(您可以控制的东西,请参阅Brian Clapper的出色建议)以及某些应用程序内部可能更长的缓存时间外,权威名称服务器之间还存在同步时间。如果每个名称服务器都收到NOTIFY,则可能接近零;如果错过了NOTIFY(有时会发生这种情况),则可能要几个小时(取决于SOA记录的设置)。

因此,为了强调Brian Clapper的建议:请事先计划。


2

如果您使用的是Windows,而您使用的是内部,则取决于原始TTL。当我们提前知道要进行更改时,可以将A记录上的TTL设置为低...到5分钟。然后,一旦进行了更改,我们便将TTL重新增加到更正常的数量。

如果您在互联网上谈论,所有的赌注都没有了。如前所述,我们已经看到一些缓存域控制器完全忽略了TTL。在这些情况下,我们通常遵循48小时的规则。但是,如果您的域以前是由另一个提供商托管的,并且他们还没有摆脱域上的SOA,那么使用其DNS服务器的任何客户端仍然会被指出错误。我们已经看到了南方贝尔公司(现为AT&T)的问题。


1

我对大多数人平均看了3-4个小时。但是,我仍然以7天的经验为基础进行完整的转换。这通常涵盖所有对DNS TTL不满意的人


1

我的经验是,DNS更改最多可能需要八小时或更长时间,但这完全取决于客户端将其DNS设置缓存多长时间。


1
...由TTL值控制。即:YES <= TTL。
高杰夫

是的生存时间;-)
JoshBerke,2009年

1

大多数客户端将使用您设置的TTL。但是,有些DNS服务器配置为忽略TTL。我最近更改了我们网站的IP地址。为了响应请求,我们不得不让服务器在旧IP地址上启动并运行几个星期。我们必须找出剩余的客户,并要求他们清理那里的DNS缓存和/或重新启动,以使他们脱离旧的IP。


0

它可能大于(已替换的)记录的TTL:许多客户端在TTL太低时会忽略TTL,或者将其绑定到其他某个值(例如一个小时)。还有其他缓存;例如,Firefox 将缓存DNS一分钟(忽略TTL),但是某些补丁程序/配置将其增加到一个小时。

悲伤的(但真实的)答案取决于谁要求您的(DNS)答案。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.