CNAME 记录上的 TTL 是什么意思?

Rya*_*ton 25 domain-name-system ttl cname-record

由于我的网络中涉及多少台服务器,我很难让它们井井有条。其中一些没有静态 IP,所以我认为如果我创建了一个 config.mydomain.com 域可能会很好。在这个域上,我可以为每个服务器存储 A 记录和 IP。我是这样设置的:

s1.config.mydomain.com.     A   10.0.0.1    #ttl 60
s2.config.mydomain.com.     A   10.0.0.2    #ttl 60
s3.config.mydomain.com.     A   10.0.0.3    #ttl 60
# etc
Run Code Online (Sandbox Code Playgroud)

每条记录的 TTL 为 60,以防我需要快速更改 IP,但我不一定希望客户端每 60 秒连接一次更新。现在假设我设置了我的域以使用它们,如下所示:

mydomain.com.           CNAME   s2.config.mydomain.com.   #ttl 3600
mail.mydomain.com.      CNAME   s2.config.mydomain.com.   #ttl 10800
svn.mydomain.com.       CNAME   ns1.config.mydomain.com.  #ttl 21600
Run Code Online (Sandbox Code Playgroud)

CNAMES 的 TTL 更高,所以假设我访问 mydomain.com。它向我的 DNS 服务器询问 的 IP mydomain.com,我的服务器返回CNAME s2.config.mydomain.com.然后它向我的服务器询问 的 IP s2.config.mydomain.com,并且我的服务器返回10.0.0.1

它会将CNAME s2.config.mydomain.com记录缓存3600 秒,并将A 10.0.0.1记录缓存60 秒吗?这意味着每 60 秒它仍然会向我的服务器询问 IP 地址吗?

或者它会缓存 see CNAME s2.config.mydomain.com、 getA 10.0.0.1并缓存它们 3600 秒。

如果是第一种,我可能必须找到另一种方法来管理它们,所以我希望是第二种,但我不确定。您知道跟踪它们的更好方法吗?

cor*_*ump 14

根据ISC邮件列表上的这条消息,CNAME 及其指向的记录通过解析名称服务器(正常解析名称服务器)进行缓存,这样做是为了让解析器能够优化客户端的解析/缓存过程。

因此,如果 CNAME TTL 有效但它指向的 A 无效,它只会重复查找指向的记录,而不是原始 CNAME(直到 CNAME TTL 也已启动)。

  • 是的。这意味着,TTL 对 CNAME 记录的作用与对其他记录的作用相同。 (2认同)
  • 谢谢你的回答。链接仍然正确吗?我读到该消息是关于防火墙阻止 DNS 而不是 TTL。 (2认同)

Xav*_*let 6

您的所有 CNAME 记录将被缓存最多 3600、10800 和 21600 秒。

A 记录是独立处理的,每 60 秒会再次查询一次。

但是,如果 CNAME 过期,则应同时更新 A 记录。

CNAME 记录在 RFC 1912.mydomain.com 中解释了各种陷阱。不能是 CNAME,因为您使用了 SOA 和 NS 记录:它是 com.conf 的委托。领域。

你的问题很老了。现在,一些 DNS 提供商并没有通过让用户将 CNAME 放入 SOA(他们称之为 APEX 域)来遵循 RFC。再次,使用风险自负。

最后但并非最不重要的一点是,当您的客户要求 IPv6 记录:AAAA 时,为您的 CNAME 设置更高的 TTL 值可能会有所帮助。至少 CNAME 映射会保留在缓存中,并且只会询问 IP 地址两次。

简而言之:在 CNAME 上设置更高的 TTL 将减少客户端看到的响应的大小。它还应该有助于解析服务器。但是,每秒的请求数应该大致相同。