失败切换的最佳CNAME TTL策略

我最近一直在考虑DNS的TTL。 我们有Alogging我们的服务器,然后CNAMElogging面向客户的名字。 例如,www.example.com CNAME指向server-01.example.com。 如果发生故障,我们将CNAME和Alogging的TTL设置为15分钟。

但是,我觉得这可能不是最佳的。 当然应该是Alogging是48小时,CNAME是15分钟。 发生故障时,CNAME只会被指向server-02.example.com。 Alogging(在理论上应该很长时间地被高速caching,因为我们使用CNAME作为切换器)。

环顾互联网,我发现许多人的CNAME长,Alogging短: CNAME和Alogging有不同的TTL。 哪一个会被caching?

这似乎与任何人想要的相反。 问题是,DNS是否按照我希望的方式工作,因为如果我需要快速切换服务器,CNAME请求TTL是非常重要的。

假设example.com.的顶点Aloggingexample.com. 指着一个破碎的IP地址,我知道的大多数公司会改变Alogging,并完全跳过www改变:

  • 大多数pipe理员宁愿没有他们的网站打破了网站的名字没有www前缀的用户。
  • 对于那些不信任他们的webapp开发者的pipe理员来说,通过example.com来使用www.example.com是一贯的做法。 (提示:我们大多数人不)

转到你的链接的例子 ,你正在比较苹果和橘子。 网站托pipe情况下的Apex DNSlogging是一个巨大的痛苦,因为知名的顶点CNAME问题 。 在这种情况下,只有两个正确的select:要么根据需要更改顶点Alogging以指向有效的IP,要么完全取消顶点logging。 两者之间的任何事情都是不完整的和不一致的。

所有这一切都有点不合时宜:如果您依靠手动logging更改来处理服务的高可用性, 那么您就是在做一些错误的事情 。 Web浏览器访问的IP地址应该是负载平衡器,任播地址,CDN或虚拟主机提供商,如果您自己的服务器场不能提供这种高可用性。 如果您确信使用这些应用程序的主要应用程序遵循RFC 6724准则(即最stream行的Web浏览器),但是许多应用程序是懒惰的并且仅使用返回的第一个地址logging,则多个地址logging也可以工作。


为了说明这个问题,让我们按照自己的优点来检查Google的CNAME链 ,而不是将其放在原始问题的上下文中。 这看起来很熟悉,因为这是我原来的答案的文字:

loggingtypes在这里是不重要的。 如果logging需要经常更改,则TTL应该很低。 如果不需要经常更改,那么不需要太低的TTL就可以使用任何你喜欢的东西。

没有人(Google除外)真正评论Google为什么要ghs.l.google.com IN A TTL低于指向它的CNAMElogging。 如果不了解更大的devise,就不能得出任何结论,而devise是决定运动部件的因素。

我同意。

只要“真实服务器”具有稳定的IP地址,Alogging应该有很长的TTL。 保持CNAMElogging低的TTL,以便在出现故障或其他情况时快速切换到另一台真实的服务器。