我们正在使用服务器的当前 CNAME 记录,即
foo.example.com => CNAME => server1.example.com
server1.example.com => CNAME => ec2-34-142-138-31.compute-1.amazonaws.com
ec2-34-142-138-31.compute-1.amazonaws.com => A => 34.142.138.31
- 这种配置常见吗?
- 使用 2 个 CNAME 记录时性能损失是否严重?
- 为了尽量减少 CNAME 查找的影响,我是否应该为第一个 CNAME 设置较大的 TTL,而为第二个 CNAME 设置较短的 CNAME?
IE
foo.example.com => CNAME (TTL=86400) => server1.example.com
server1.example.com => CNAME (TTL=300) => ec2-34-142-138-31.compute-1.amazonaws.com
答案1
是的。例如雅虎就使用它。这是
dig www.yahoo.fr
我在法国的机器上的输出:; <<>> DiG 9.9.5-4-Debian <<>> www.yahoo.fr ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 1935 ;; flags: qr rd ra; QUERY: 1, ANSWER: 5, AUTHORITY: 2, ADDITIONAL: 3 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;www.yahoo.fr. IN A ;; ANSWER SECTION: www.yahoo.fr. 300 IN CNAME rc.yahoo.com. rc.yahoo.com. 300 IN CNAME src.g03.yahoodns.net. src.g03.yahoodns.net. 300 IN CNAME any-src.a03.yahoodns.net. any-src.a03.yahoodns.net. 300 IN A 77.238.184.150 any-src.a03.yahoodns.net. 300 IN A 188.125.73.108 ;; AUTHORITY SECTION: a03.yahoodns.net. 172800 IN NS yf1.yahoo.com. a03.yahoodns.net. 172800 IN NS yf2.yahoo.com. ;; ADDITIONAL SECTION: yf1.yahoo.com. 86391 IN A 68.142.254.15 yf2.yahoo.com. 86391 IN A 68.180.130.15 ;; Query time: 342 msec ;; SERVER: 127.0.0.1#53(127.0.0.1) ;; WHEN: Tue Jul 29 09:57:01 CEST 2014 ;; MSG SIZE rcvd: 227
您可以通过同一个 DNS 数据包中返回的多个 CNAME 记录看到双重重定向。
不是。DNS 使用缓存机制和递归解析器,因此许多用户甚至没有注意到隐含的 DNS 解析器的数量,因为它很快,而且通常请求不一定会触发整个解析过程
不一定。请参阅常见的 Yahoo 示例的值。这是另一个(法语)示例:服装商人:
$ dig www.laredoute.fr ; <<>> DiG 9.9.5-4-Debian <<>> www.laredoute.fr ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 28156 ;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 2, ADDITIONAL: 3 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;www.laredoute.fr. IN A ;; ANSWER SECTION: www.laredoute.fr. 1800 IN CNAME www.laredoute.fr.glb.pprgroup.net. www.laredoute.fr.glb.pprgroup.net. 30 IN A 217.109.67.129 ;; AUTHORITY SECTION: pprgroup.net. 172800 IN NS gtm1.pprgroup.net. pprgroup.net. 172800 IN NS gtm2.pprgroup.net. ;; ADDITIONAL SECTION: gtm1.pprgroup.net. 172800 IN A 194.206.254.11 gtm2.pprgroup.net. 172800 IN A 217.109.67.126 ;; Query time: 679 msec ;; SERVER: 127.0.0.1#53(127.0.0.1) ;; WHEN: Tue Jul 29 10:03:57 CEST 2014 ;; MSG SIZE rcvd: 178
用法是在 CNAME 记录上放置一个正常的 TTL 值,并在 A 记录上调整 TTL 值(取决于 IP 地址稳定性、想要的基于 DNS 的负载平衡等)。
答案2
DNS 查询通常不会产生太大影响(可能为 20-30 毫秒,具体取决于响应时间)。如果您发现记录变化不频繁,则设置更高的 TTL 将有助于缓存。