AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 45470
Accepted
Brian Fisher
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 13 个回答
  • 21022 Views

13 个回答

  • Voted
  1. 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 值多出一个小时.

    • 25
  2. Brian Rasmussen
    2009-01-11T11:28:24+08:002009-01-11T11:28:24+08:00

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

    • 11
  3. Brian Clapper
    2009-01-11T12:13:29+08:002009-01-11T12:13:29+08:00

    当我知道我要提前几天更改 IP 地址时,我通常会将我的 TTL 值降低到比我通常使用的值低的值。这样,当我做出改变时,改变会传播得更快。然后,我再次启动 TTL。

    • 10
  4. Mike
    2009-06-05T14:40:33+08:002009-06-05T14:40:33+08:00

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

    • 7
  5. John Virgolino
    2009-06-05T14:46:04+08:002009-06-05T14:46:04+08:00

    同意迈克。我们通常会在 24-48 小时内告诉我们的客户在全球范围内向所有 ISP 进行宣传。大多数主要 ISP 都尊重 TTL 并快速更新。一些更偏远的地方需要更长的时间。祝你好运!

    • 4
  6. 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 天。

    • 3
  7. RainyRat
    2009-06-05T15:25:53+08:002009-06-05T15:25:53+08:00

    我总是告诉我的用户完全传播需要 48 小时,以弥补上述所有问题。要记住的一般规则是它是 <= TTL,除非你真的需要它......

    • 2
  8. bortzmeyer
    2009-01-13T00:03:44+08:002009-01-13T00:03:44+08:00

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

    所以,要强调布赖恩·克拉珀的建议:提前计划。

    • 2
  9. 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)看到了这个问题。

    • 2
  10. Zypher
    2009-06-05T14:44:28+08:002009-06-05T14:44:28+08:00

    对于大多数人来说,我平均看到 3-4 小时。但是,我仍然使用 7 天作为完全转换的经验法则。这通常涵盖了所有不擅长使用 DNS TTL 的人

    • 1

相关问题

  • 内部名称解析

  • SQL Server 文件本地或 NAS 或 SAN?

  • 我必须在我的服务器上配置什么来提高默认安全性?

  • 这个 Web 服务器可以处理多少个站点?[复制]

  • 您最喜欢的云计算提供商是什么?[关闭]

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve