我将TTL从24小时更改为5分钟。我需要等待24小时才能更改记录吗?


37

我正在从Rackspace ta专用服务器上的云服务器迁移我们的应用程序。

我想关闭应用程序约5分钟,以将数据从云服务器复制到专用服务器,所以我不希望在复制数据后将请求发送到旧服务器。

我想将我们的DNS记录指向新服务器,但是TTL设置为24小时。我将其更改为300秒。我是否需要等待24小时才能更新域指向/复制数据的IP?


9
顺便说一句,即使您确实等待TTL,我也强烈建议您在旧服务器上编辑配置,以确保在那里不再接受更多更新。并非所有的DNS解析器实际上都遵循标准。
彼得·格林

5
将Web应用程序从一个托管服务提供商转移到另一个托管服务提供商时,我所做的就是使用ssh端口转发,以使所有访问者仍使用定向到新服务器的旧IP。
卡巴斯德,2016年

Answers:


58

拥有域记录缓存副本的任何人都不会花24小时来更新它,因此,是的,如果您的意图是最多有5分钟的不可用窗口,则应等待所有未完成的缓存都更新为不再可用超过5分钟。


23
...持续24小时since they last cached it。可能是1到86399秒之间的任何时间。
user9517支持GoFundMonica

6
@Iain您必须假设最坏的情况,因为他们中的任何一个或全部都可能在更改之前就将其缓存了。
巴马尔

6
@Barmar不要承担任何责任。大量ISP只是忽略TTL。
user9517支持GoFundMonica '16

13
@Iain我曾经为Akamai工作,这是一个CDN,它大量使用短TTL(例如60秒)来实现负载平衡。我记得我们进行了一项研究,发现大多数ISP确实遵守了我们的TTL。
巴马尔

1
我在一家网络托管公司工作,我们的经验是,低TTL比高TTL更可能被忽略。
亨里克-停止伤害莫妮卡

39

(可能)比这更糟糕的是-您必须在所有权威服务器更新后等待24小时。进行更新的通常方法是,您对主服务器上的区域进行更改,然后每个辅助服务器在下一次与主服务器一起检入时都传输新的区域数据。检入频率由区域的SOA记录中的刷新间隔控制。因此,在最坏的情况下,您必须等待区域的刷新间隔+记录的TTL。

您可能需要等很长时间才能进行实际的记录更改。如果次要副本仅每6小时刷新一次,则5分钟的TTL不会有什么好处。因此,您可能希望同时缩短区域的刷新间隔,以使其能够进行快速更改。

请注意,这可能不适用于您的设置。如果您拥有一个可以同时更新所有权威服务器的系统,那么这不是问题(并且我对Rackspace的DNS设置并不熟悉)。但是,我建议您在开始24小时倒计时之前,分别查询所有您的权威服务器(dig server.example.com @secondaryserver.example.com),以确保它们具有新的TTL。


1
这应该是公认的答案。
dotancohen

4
您似乎忽略了DNS通知协议,该协议告诉从属服务器在主服务器更新后立即刷新。大多数DNS服务器都使用此功能。
巴马尔

@Barmar:的确如此,但同时主服务器可能需要一段时间才能根据提供程序进行更新。(例如,某些提供程序仅每5或15分钟就从数据库中重建区域,尽管现代的提供者立即这样做。)
grawity

1
我的评论仅解决了等待刷新间隔的问题,这些时间在最近已经过时了。除非您自己操作主机,否则等待主机更新是正确的。但是我认为,当一切都可以安全更新时,他们不太可能需要处理确切的时间。额外增加5-15分钟不会带来太大的改变。原始问题的重点是他们是否需要等待一整天。
巴马尔

1
@GordonDavisson:如果您不信任,请验证。dig +nssearch example.com是用于在所有服务器之间快速比较SOA的有用工具;nsdiff显示实际差异。
grawity

23

是的,您应该等待。即使这样,当然也不能保证每个人都会尊重TTL。


6
并非所有人都服从TTL +1,我已经看到在进行DNS更改后一周内就会出现散乱的消息。我过去处理过的一种方法是在新站点上设置一个新的唯一名称作为别名,并使用从旧站点的重定向将用户从旧域重定向到新域,例如从www.mycompany .COM - > newsite.mycompany.com
约翰尼

是的,但是很多人会理会必须使用新名称的想法。名称是品牌。此外,这仅适用于HTTP,几乎没有其他功能。
斯文

8
另一个选择是将旧服务器配置为新服务器的反向代理。然后,您可以在切换后将其保留一周左右的时间,并在没有流量通过时将其关闭。
bdsl '16

1
行为良好且遵循TTL的DNS服务器的用户将永远不会看到新域。虽然它“仅”适用于HTTP(S),但我认为您会发现HTTP是Internet上相当普遍的协议。bdsl提出的设置反向代理的建议甚至更好,但需要更多工作
Johnny,

@Johnny新域的问题是您冒着人们对该域添加书签的风险。除非您计划永久保留所说的新域名。
鲍勃,

5

将各种意见和答案汇总在一起,就可以完成整个过程。

  1. 确保您可以及时更新授权服务器。
  2. 降低TTL。
  3. 检查所有授权服务器是否具有新的ttl。
  4. 等待旧的TTL,以便(大多数)从缓存中消除使用旧的TTL的已缓存的值(您不能保证它们会从每个缓存中消失,因为某些缓存可能会忽略标准)。
  5. 将旧服务器上的站点设置为只读模式(或者,如果无法执行此操作,则将其替换为“我们已停止维护”页面)。
  6. 执行从旧服务器到新服务器的最终复制(导致新服务器上的只读站点)。
  7. 更改DNS记录。
  8. 确保所有授权服务器都具有新的DNS记录。
  9. 等待新的ttl(如果您不关心某些用户是否可以对该站点进行贡献而其他用户看不到这些贡献的结果,则可以跳过此步骤)。
  10. 将新服务器上的站点置于读/写模式。
  11. 在旧服务器上发出通知,它是过时的只读副本,并且用户可能已破坏DNS。
  12. 请稍等片刻,以使记录从不兼容的DNS缓存中退出。
  13. 停用旧服务器。

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.