Brian Fisher Asked: 2009-01-11 11:23:59 +0800 CST2009-01-11 11:23:59 +0800 CST 2009-01-11 11:23:59 +0800 CST DNS 更改需要多长时间 772 如果我要对我的域的 A 记录进行 DNS 更改(从一个 IP 更改为另一个),在人们转移到新信息之前,我预计需要多长时间?它只是<= TTL吗?我知道过去需要一段时间,但在 2009 年,我应该期待多长时间? domain-name-system hosting configuration 13 个回答 Voted Best Answer David Spillett 2009-06-05T14:45:37+08:002009-06-05T14:45:37+08:00 从理论上讲,每个人都应该在即时和相关 TTL 值之间看到更新的 A 记录。大多数注册商将 TTL 设置为 24 小时 IIRC,因此在 24 小时内,有些人会看到旧地址,有些人会看到新地址,并且在更改后 24 小时内,每个人都应该拥有新地址,而有些人则使用较低的值,例如4个小时。 如果您有权更改 TTL 值(即您运行自己的 DNS 服务器),那么您可以在进行更改前一天左右将 TTL 减少到很小的值,这样传播期就会低得多。 我在上面说“理论上”,因为总会有一些错误、故障和配置不当的缓存,这意味着一些用户将不会看到更长时间的变化。如果您使用非常小的 TTL,则尤其如此,因为仍然有一些带有 DNS 缓存的 ISP 会忽略低于给定值的 TTL。 要注意的另一件事是注册商的 DNS 控制面板与其 DNS 服务器之间的延迟。例如,我注意到对 123-reg.co.uk 管理的域所做的更改最多可能需要一个小时才能显示在其 DNS 服务器上,这比您必须考虑的 TTL 值多出一个小时. Brian Rasmussen 2009-01-11T11:28:24+08:002009-01-11T11:28:24+08:00 这取决于客户端缓存应该根据 TTL 值的 DNS 信息多长时间。但是,由于客户端决定将信息缓存多长时间,因此您无法确定(毕竟客户端可以进行手动解析,因此完全忽略 TTL)。 Brian Clapper 2009-01-11T12:13:29+08:002009-01-11T12:13:29+08:00 当我知道我要提前几天更改 IP 地址时,我通常会将我的 TTL 值降低到比我通常使用的值低的值。这样,当我做出改变时,改变会传播得更快。然后,我再次启动 TTL。 Mike 2009-06-05T14:40:33+08:002009-06-05T14:40:33+08:00 它通常 <= TTL,但某些客户端和 DNS 代理缓存旧设置的时间比 TTL 长。 John Virgolino 2009-06-05T14:46:04+08:002009-06-05T14:46:04+08:00 同意迈克。我们通常会在 24-48 小时内告诉我们的客户在全球范围内向所有 ISP 进行宣传。大多数主要 ISP 都尊重 TTL 并快速更新。一些更偏远的地方需要更长的时间。祝你好运! P.J. Tezza 2009-06-05T17:26:46+08:002009-06-05T17:26:46+08:00 出于实际目的,所有 DNS 服务器都会在瞬间和 A 记录上的 TTL 值之间的某处看到 A 记录的更改。Wikipedia 文章对此主题有出色的论述。 由于路由器、防火墙、操作系统和应用程序中的本地 DNS 缓存,单个应用程序可能看不到 TTL 内的变化。正如维基百科文章中提到的:“这些缓存通常使用非常短的缓存时间——大约一分钟。Internet Explorer 提供了一个明显的例外:最近的版本缓存 DNS 记录半小时” 重新启动(或路由器的电源循环)通常会刷新所有本地 DNS 缓存,但显然您不能指望那里的每个用户在更改 A 记录后重新启动每个设备。 如果您不能直接更改您的 A 记录,那么任何进行更改的应用程序(例如控制面板软件)都可能会引入其自身的延迟。 我们使用 4 小时的默认 TTL。如果我们计划更改 A 记录,我们将 A 记录的 TTL 降低到 5 分钟(必须在更改生效前 4 小时以上完成)。进行更改后,我们将 TTL 设置回 4 小时。大多数应用程序会立即看到更改,但少数用户会打电话遇到问题并需要重新启动。 维基百科的文章也对“传播”进行了很好的讨论:“当你进行 DNS 更改时,许多人错误地引用了神秘的 48 小时或 72 小时传播时间......”。根服务器(不是注册商)控制您域的 NS 记录上的 TTL。您可以使用 nslookup 命令查看这些 TTL 值。现在,现在,我在“F”根服务器上的 NS 记录的 TTL 设置为 2 天。 RainyRat 2009-06-05T15:25:53+08:002009-06-05T15:25:53+08:00 我总是告诉我的用户完全传播需要 48 小时,以弥补上述所有问题。要记住的一般规则是它是 <= TTL,除非你真的需要它...... bortzmeyer 2009-01-13T00:03:44+08:002009-01-13T00:03:44+08:00 除了 TTL(您可以控制的东西,请参阅 Brian Clapper 的优秀建议)和某些应用程序中可能更长的缓存时间之外,还有权威名称服务器之间的同步时间。如果每个名称服务器都接收到 NOTIFY,则它可能接近于零,如果错过了 NOTIFY(有时会发生这种情况),则可能需要几个小时(取决于 SOA 记录的设置)。 所以,要强调布赖恩·克拉珀的建议:提前计划。 K. Brian Kelley 2009-07-26T06:09:52+08:002009-07-26T06:09:52+08:00 如果您在谈论 Windows 并且您在谈论内部,这取决于原始 TTL。当我们提前知道我们将要进行更改时,我们会将 A 上的 TTL 设置为创纪录的低点……至 5 分钟。然后,一旦进行了更改,我们将 TTL 增加到更正常的量。 如果你在互联网上谈论,所有的赌注都没有了。如前所述,我们已经看到一些缓存域控制器完全忽略了 TTL。在这些情况下,我们采用了 48 小时的一般规则。但是,如果您的域以前由另一个提供商托管,并且他们没有摆脱您域上的 SOA,那么任何使用其 DNS 服务器的客户端仍然会被指向错误。我们已经在 BellSouth(现在的 AT&T)看到了这个问题。 Zypher 2009-06-05T14:44:28+08:002009-06-05T14:44:28+08:00 对于大多数人来说,我平均看到 3-4 小时。但是,我仍然使用 7 天作为完全转换的经验法则。这通常涵盖了所有不擅长使用 DNS TTL 的人
从理论上讲,每个人都应该在即时和相关 TTL 值之间看到更新的 A 记录。大多数注册商将 TTL 设置为 24 小时 IIRC,因此在 24 小时内,有些人会看到旧地址,有些人会看到新地址,并且在更改后 24 小时内,每个人都应该拥有新地址,而有些人则使用较低的值,例如4个小时。
如果您有权更改 TTL 值(即您运行自己的 DNS 服务器),那么您可以在进行更改前一天左右将 TTL 减少到很小的值,这样传播期就会低得多。
我在上面说“理论上”,因为总会有一些错误、故障和配置不当的缓存,这意味着一些用户将不会看到更长时间的变化。如果您使用非常小的 TTL,则尤其如此,因为仍然有一些带有 DNS 缓存的 ISP 会忽略低于给定值的 TTL。
要注意的另一件事是注册商的 DNS 控制面板与其 DNS 服务器之间的延迟。例如,我注意到对 123-reg.co.uk 管理的域所做的更改最多可能需要一个小时才能显示在其 DNS 服务器上,这比您必须考虑的 TTL 值多出一个小时.
这取决于客户端缓存应该根据 TTL 值的 DNS 信息多长时间。但是,由于客户端决定将信息缓存多长时间,因此您无法确定(毕竟客户端可以进行手动解析,因此完全忽略 TTL)。
当我知道我要提前几天更改 IP 地址时,我通常会将我的 TTL 值降低到比我通常使用的值低的值。这样,当我做出改变时,改变会传播得更快。然后,我再次启动 TTL。
它通常 <= TTL,但某些客户端和 DNS 代理缓存旧设置的时间比 TTL 长。
同意迈克。我们通常会在 24-48 小时内告诉我们的客户在全球范围内向所有 ISP 进行宣传。大多数主要 ISP 都尊重 TTL 并快速更新。一些更偏远的地方需要更长的时间。祝你好运!
出于实际目的,所有 DNS 服务器都会在瞬间和 A 记录上的 TTL 值之间的某处看到 A 记录的更改。Wikipedia 文章对此主题有出色的论述。
由于路由器、防火墙、操作系统和应用程序中的本地 DNS 缓存,单个应用程序可能看不到 TTL 内的变化。正如维基百科文章中提到的:“这些缓存通常使用非常短的缓存时间——大约一分钟。Internet Explorer 提供了一个明显的例外:最近的版本缓存 DNS 记录半小时”
重新启动(或路由器的电源循环)通常会刷新所有本地 DNS 缓存,但显然您不能指望那里的每个用户在更改 A 记录后重新启动每个设备。
如果您不能直接更改您的 A 记录,那么任何进行更改的应用程序(例如控制面板软件)都可能会引入其自身的延迟。
我们使用 4 小时的默认 TTL。如果我们计划更改 A 记录,我们将 A 记录的 TTL 降低到 5 分钟(必须在更改生效前 4 小时以上完成)。进行更改后,我们将 TTL 设置回 4 小时。大多数应用程序会立即看到更改,但少数用户会打电话遇到问题并需要重新启动。
维基百科的文章也对“传播”进行了很好的讨论:“当你进行 DNS 更改时,许多人错误地引用了神秘的 48 小时或 72 小时传播时间......”。根服务器(不是注册商)控制您域的 NS 记录上的 TTL。您可以使用 nslookup 命令查看这些 TTL 值。现在,现在,我在“F”根服务器上的 NS 记录的 TTL 设置为 2 天。
我总是告诉我的用户完全传播需要 48 小时,以弥补上述所有问题。要记住的一般规则是它是 <= TTL,除非你真的需要它......
除了 TTL(您可以控制的东西,请参阅 Brian Clapper 的优秀建议)和某些应用程序中可能更长的缓存时间之外,还有权威名称服务器之间的同步时间。如果每个名称服务器都接收到 NOTIFY,则它可能接近于零,如果错过了 NOTIFY(有时会发生这种情况),则可能需要几个小时(取决于 SOA 记录的设置)。
所以,要强调布赖恩·克拉珀的建议:提前计划。
如果您在谈论 Windows 并且您在谈论内部,这取决于原始 TTL。当我们提前知道我们将要进行更改时,我们会将 A 上的 TTL 设置为创纪录的低点……至 5 分钟。然后,一旦进行了更改,我们将 TTL 增加到更正常的量。
如果你在互联网上谈论,所有的赌注都没有了。如前所述,我们已经看到一些缓存域控制器完全忽略了 TTL。在这些情况下,我们采用了 48 小时的一般规则。但是,如果您的域以前由另一个提供商托管,并且他们没有摆脱您域上的 SOA,那么任何使用其 DNS 服务器的客户端仍然会被指向错误。我们已经在 BellSouth(现在的 AT&T)看到了这个问题。
对于大多数人来说,我平均看到 3-4 小时。但是,我仍然使用 7 天作为完全转换的经验法则。这通常涵盖了所有不擅长使用 DNS TTL 的人