Sean Asked: 2010-03-18 17:02:23 +0800 CST2010-03-18 17:02:23 +0800 CST 2010-03-18 17:02:23 +0800 CST CNAME 和 A 记录具有不同的 TTL。哪个会被缓存? 772 如果 aCNAME的 TTL 为 1 小时,指向ATTL 为 1 分钟的记录,那么查找此内容的人是否会将CNAME整个结果缓存 1 小时,还是必须每 1 分钟查找 A 记录? domain-name-system cname-record ttl a-record 3 个回答 Voted McJeff 2010-03-18T17:25:36+08:002010-03-18T17:25:36+08:00 CNAME 应该缓存一个小时(别名值),但是在查找对应的 A 时,它总共只会缓存 1 分钟。你说的是两个分开处理的独立记录。 Alex 2013-11-16T18:54:24+08:002013-11-16T18:54:24+08:00 使用 Google 的公共 DNS 服务器,A 记录的到期也会导致对 CNAME 记录的查询,即使 CNAME 具有更长的 TTL。 我们痛苦地经历了这一点,因为 DNS 提供商向我们收取了 DNS 查询费用。DNS 提供商托管的 CNAME 的 TTL 为几天。A 记录的 TTL 托管在 Windows Azure 上,TTL 为 10 秒。DNS 提供商向我们收取了 750 万次查询的费用。 Best Answer Zoredache 2010-03-18T17:47:55+08:002010-03-18T17:47:55+08:00 使用 dig.. 可以看到 CNAME 和后续记录的 TTL 不同。 dig docs.nwesd.org ; <<>> DiG 9.5.1-P3 <<>> docs.nwesd.org ;; global options: printcmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 28244 ;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 4, ADDITIONAL: 4 ;; QUESTION SECTION: ;docs.nwesd.org. IN A ;; ANSWER SECTION: docs.nwesd.org. 7200 IN CNAME ghs.google.com. ghs.google.com. 16662 IN CNAME ghs.l.google.com. ghs.l.google.com. 195 IN A 74.125.95.121 ;; AUTHORITY SECTION: google.com. 32196 IN NS ns1.google.com. google.com. 32196 IN NS ns4.google.com. google.com. 32196 IN NS ns3.google.com. google.com. 32196 IN NS ns2.google.com. ;; ADDITIONAL SECTION: ns1.google.com. 32193 IN A 216.239.32.10 ns2.google.com. 32193 IN A 216.239.34.10 ns3.google.com. 70187 IN A 216.239.36.10 ns4.google.com. 242861 IN A 216.239.38.10 ;; Query time: 102 msec ;; SERVER: 127.0.0.1#53(127.0.0.1) ;; WHEN: Wed Mar 17 18:40:05 2010 ;; MSG SIZE rcvd: 232 为了表明您同时获得了 CNAME 和它所指向的内容,在单个请求中返回到递归服务器。 18:40:05.418435 IP 192.168.32.10.24712 > 216.146.36.113.53: UDP, length 43 0x0000: 4500 0047 4e58 0000 4011 4e98 c0a8 200a [email protected]..... 0x0010: d892 2471 6088 0035 0033 aae5 f66c 0100 ..$q`..5.3...l.. 0x0020: 0001 0000 0000 0001 0464 6f63 7305 6e77 .........docs.nw 0x0030: 6573 6403 6f72 6700 0001 0001 0000 2910 esd.org.......). 0x0040: 0000 0080 0000 00 ....... 18:40:05.519081 IP 216.146.36.113.53 > 192.168.32.10.24712: UDP, length 243 0x0000: 4500 010f b93a 0000 3511 eded d892 2471 E....:..5.....$q 0x0010: c0a8 200a 0035 6088 00fb 6ceb f66c 8180 .....5`...l..l.. 0x0020: 0001 0003 0004 0005 0464 6f63 7305 6e77 .........docs.nw 0x0030: 6573 6403 6f72 6700 0001 0001 c00c 0005 esd.org......... 0x0040: 0001 0000 1c20 0010 0367 6873 0667 6f6f .........ghs.goo 0x0050: 676c 6503 636f 6d00 c02c 0005 0001 0000 gle.com..,...... 0x0060: 4116 0008 0367 6873 016c c030 c048 0001 A....ghs.l.0.H.. 0x0070: 0001 0000 00c3 0004 4a7d 5f79 c030 0002 ........J}_y.0.. 0x0080: 0001 0001 11ac 0006 036e 7333 c030 c030 .........ns3.0.0 0x0090: 0002 0001 0001 11ac 0006 036e 7332 c030 ...........ns2.0 0x00a0: c030 0002 0001 0001 11ac 0006 036e 7334 .0...........ns4 0x00b0: c030 c030 0002 0001 0001 11ac 0006 036e .0.0...........n 0x00c0: 7331 c030 c0a2 0001 0001 0000 7dc1 0004 s1.0........}... 0x00d0: d8ef 200a c07e 0001 0001 0000 7dc1 0004 .....~......}... 0x00e0: d8ef 220a c06c 0001 0001 0002 0204 0004 .."..l.......... 0x00f0: d8ef 240a c090 0001 0001 0003 b4ad 0004 ..$............. 0x0100: d8ef 260a 0000 2910 0000 0080 0000 00 ..&...)........
CNAME 应该缓存一个小时(别名值),但是在查找对应的 A 时,它总共只会缓存 1 分钟。你说的是两个分开处理的独立记录。
使用 Google 的公共 DNS 服务器,A 记录的到期也会导致对 CNAME 记录的查询,即使 CNAME 具有更长的 TTL。
我们痛苦地经历了这一点,因为 DNS 提供商向我们收取了 DNS 查询费用。DNS 提供商托管的 CNAME 的 TTL 为几天。A 记录的 TTL 托管在 Windows Azure 上,TTL 为 10 秒。DNS 提供商向我们收取了 750 万次查询的费用。
使用 dig.. 可以看到 CNAME 和后续记录的 TTL 不同。
为了表明您同时获得了 CNAME 和它所指向的内容,在单个请求中返回到递归服务器。