由于我的网络涉及多少台服务器,因此我很难将它们整理得井井有条.其中一些没有静态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
每个记录的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
CNAMES的TTL更高,所以我想去mydomain.com.它向我的DNS服务器询问mydomain.com的IP,我的服务器返回CNAME s2.config.mydomain.com.然后它向我的服务器询问s2.config.mydomain.com的IP,我的服务器返回10.0.0.1.
它会将CNAME s2.config.mydomain.com记录缓存3600秒,将A 10.0.0.1记录缓存60秒吗?这意味着它每隔60秒仍然会向我的服务器询问IP地址?
或者它会缓存看到CNAME s2.config.mydomain.com,获取A 10.0.0.1,并将它们缓存3600秒.
如果它是第一个,我可能必须找到另一种方法来管理它们,所以我希望它是第二种,但我不确定.你知道一种更好的方法来跟踪它们吗?
解决方法
根据
this message on ISC邮件列表,CNAME及其指向的记录通过解析名称服务器(理智的解析名称服务器)进行缓存,这样做可以让解析器能够优化客户端的解析/缓存过程.
因此,如果CNAME TTL有效但它指向的A无效,它将只重复查找指向的记录,而不是原始CNAME(直到CNAME TTL也为止).