在这种情况下,A 是否比 CNAME 快得多?
$ dig www.google.com
; <<>> DiG 9.8.1-P1 <<>> www.google.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 28336
;; flags: qr rd ra; QUERY: 1, ANSWER: 6, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;www.google.com. IN A
;; ANSWER SECTION:
www.google.com. 13 IN A 173.194.78.103
www.google.com. 13 IN A 173.194.78.106
www.google.com. 13 IN A 173.194.78.105
www.google.com. 13 IN A 173.194.78.99
www.google.com. 13 IN A 173.194.78.147
www.google.com. 13 IN A 173.194.78.104
;; Query time: 11 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Thu Jan 24 10:22:28 2013
;; MSG SIZE rcvd: 128
答案1
好吧,如果你是 Google,每天有数百万个 DNS 查询,我会说将查询减少 50% 是意义重大的。
答案2
使用 CNAME RR 的主要目的是简化 DNS 区域管理。由于它只是指向另一个标签及其所有 RR(顺便说一下,不仅仅是 A RR)的指针,全部在过去,更改 RR 需要启动vi
编辑 BIND 样式的区域文件 (也称为 RR),而如果您需要更改 RR,则需要做的工作较少。
Google 区域肯定不会在 BIND 样式文件中手动编辑,因此 CNAME 记录的实用性值得怀疑。此外,谷歌使用地理DNS,其中 RR 回复取决于您从哪里查询 - 静态 CNAME 对此根本没有帮助。
此外,每当对标签的 DNS 查询导致 CNAME 响应时,必须执行另一个查询以获取 CNAME 目标标签的 RR。不利的延迟和资源消耗影响大多由 ISP 端的缓存解析器来抵消,但如果没有特定的需要对于 CNAME,它们根本不应该被使用。
答案3
无论如何,我会说 A 比 CNAME 更快!因为当您使用 cname 记录查找域的 ip 地址时,dns 总是比仅查找 A 记录多做两倍的工作。