客户端是否cachingCNAME DNS请求或其他域的IP?

我正在考虑使用两个不同的DNS主机,并好奇客户端系统如何cachingCNAMElogging。 我走这条路线的原因是,我想要使用的主域名已经被托pipe在一个DNS服务中,但该应用程序被托pipe在另一个服务中,该服务具有与服务集成的自己的DNS处理。

具体来说,我期望了解的是,如果friendly.abc.com是一个CNAMElogging,指向long-ugly-url.hosted-service.com ,它自己托pipe(DNS和应用程序)在IP为1.2的另一个服务.3.4 ,访问friendly.abc.com的客户端是否会cachinglong-ugly-url.hosted-service.com1.2.3.4 ? 我问的原因是,如果它是前者,那么long-ugly-url.hosted-service.com Alogging可以有一个短的TTL,它可以快速改变,而friendly.abc.com可以设置为更高的TTL但仍然有变化“迅速传播”。 如果是后者,那么两者都需要短暂的TTL让负责任的客户迅速看到变化。

我会说两个。 实现可能会有所不同,但考虑到整个caching的目的不是取得你刚才已经做过的事情,对于客户来说,获得CNAME和Alogging并丢弃一个或另一个似乎是不合逻辑的。 我在这里使用“客户端”这个术语,就像你在你的问题中一样,但是不pipe我们是在讨论dnsparsing器(比如dig,nslookup),应用程序的caching(比如浏览器),dnscaching服务器(如BIND)等。如果你想确定,你要么依赖于特定客户端的文档,要么做自己的testing。

在我的情况下,我在BIND9上testing它。 我使用的简单的testing技术是,首先我刷新caching中的所有DNS条目,然后做一个DNS查询,最后转储DNScaching进行调查。 正如你在下面看到的,CNAME和Alogging都被caching了。 TTL与存储在授权区域文件中的实际TTL不匹配,因为我通过转发获取了DNS,这意味着我所得到的dns条目也可能来自远程DNS服务器caching。


 ns1 bind#rndc flush && dig www.bbc.co.uk + nodnssec && rndc dumpdb
 ;; 答案部分:
 www.bbc.co.uk.  238 IN CNAME www.bbc.net.uk.
 www.bbc.net.uk.  166中A 212.58.246.55
 www.bbc.net.uk.  166中A 212.58.246.54

 ns1 bind#grep www.bbc.co.uk named_dump.db 
 www.bbc.co.uk.  234 CNAME www.bbc.net.uk.
 ns1 bind#grep -P 212.58.246.5 [4,5] named_dump.db
 www.bbc.net.uk.  166 A 212.58.246.54
             166 A 212.58.246.55

大多数类UNIX操作系统在系统pipe理员为此安装软件/软件包之前不会cachingDNS。

因此,cachinglogging的种类取决于安装的软件/包(广泛使用的ISC BINDcachingCNAME&Alogging)。

微软Windows也默认cachingCNAME&Alogging,而ipconfig /displaydns | more ipconfig /displaydns | more命令可以显示它们。