为什么com和net使用一组相同的名字服务器

我们执行如下dig:

$ dig +short com ns |sort
a.gtld-servers.net.
b.gtld-servers.net.
c.gtld-servers.net.
d.gtld-servers.net.
e.gtld-servers.net.
f.gtld-servers.net.
g.gtld-servers.net.
h.gtld-servers.net.
i.gtld-servers.net.
j.gtld-servers.net.
k.gtld-servers.net.
l.gtld-servers.net.
m.gtld-servers.net.

$ dig +short net ns |sort
a.gtld-servers.net.
b.gtld-servers.net.
c.gtld-servers.net.
d.gtld-servers.net.
e.gtld-servers.net.
f.gtld-servers.net.
g.gtld-servers.net.
h.gtld-servers.net.
i.gtld-servers.net.
j.gtld-servers.net.
k.gtld-servers.net.
l.gtld-servers.net.
m.gtld-servers.net.

可以看到com和net域使用一组相同的名字服务器,这其中有点奥妙。
再执行如下两个dig:

$ dig mydots.net @a.gtld-servers.net

; <<>> DiG 9.6.1-P2 <<>> mydots.net @a.gtld-servers.net
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 7502
;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 2, ADDITIONAL: 2
;; WARNING: recursion requested but not available

;; QUESTION SECTION:
;mydots.net.                    IN      A

;; AUTHORITY SECTION:
mydots.net.             172800  IN      NS      ns7.dnsbed.com.
mydots.net.             172800  IN      NS      ns8.dnsbed.com.

;; ADDITIONAL SECTION:
ns7.dnsbed.com.         172800  IN      A       58.22.107.162
ns8.dnsbed.com.         172800  IN      A       121.207.227.57

;; Query time: 227 msec
;; SERVER: 192.5.6.30#53(192.5.6.30)
;; WHEN: Wed Aug 24 13:26:11 2011
;; MSG SIZE  rcvd: 106

$ dig llpop.com @a.gtld-servers.net

; <<>> DiG 9.6.1-P2 <<>> llpop.com @a.gtld-servers.net
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 20190
;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 2, ADDITIONAL: 2
;; WARNING: recursion requested but not available

;; QUESTION SECTION:
;llpop.com.                     IN      A

;; AUTHORITY SECTION:
llpop.com.              172800  IN      NS      ns1.dnsbed.com.
llpop.com.              172800  IN      NS      ns2.dnsbed.com.

;; ADDITIONAL SECTION:
ns1.dnsbed.com.         172800  IN      A       74.117.233.4
ns2.dnsbed.com.         172800  IN      A       204.152.196.108

;; Query time: 500 msec
;; SERVER: 192.5.6.30#53(192.5.6.30)
;; WHEN: Wed Aug 24 13:27:16 2011
;; MSG SIZE  rcvd: 102

在这组名字服务器里抽出一台,去查询两个域名,一个是mydots.net,一个是llpop.com。
我们看到,同一台名字服务器对.net结尾的域名和.com结尾的域名都返回一个胶水记录,记录里包含了ADDITIONAL SECTION。这个ADDITIONAL SECTION很重要,它直接告诉权威名字服务器的IP地址给查询者,降低了互联网DNS的查询流量和频率。

如果com和net域使用不同的名字服务器,情况如何?
mydots.net使用ns7和ns8.dnsbed.com作为名字服务器,而dnsbed.com的名字服务器是注册在com域的,所以,net域的名字服务器,只会在AUTHORITY SECTION里返回ns7和ns8.dnsbed.com,而不会在ADDITIONAL SECTION返回它们的IP地址。其结果是解析器要再执行一次查询去获取这2个域名的IP地址。同理.com域名使用.net的名字服务器,也会发生这种情况。

虽然dnsbed.com的名字服务器只在com的NS注册,但net的NS也返回它的胶水记录,这个概念在社区里叫做“姐妹胶水(sibling glue)”。这也说明了名字服务器的域名,最好是.com或.net结尾的,因为互联网大多数域名是这2个后缀。名字服务器不是这2个结尾,除非你想办法把它注册到更高一级的ZONE(如“.”根域),其他.com、.net域名可能会拒绝使用这个DNS服务器。

补充说明的是:.info和.org域名也使用相同的一组名字服务器。

此条目发表在Common分类目录,贴了标签。将固定链接加入收藏夹。

为什么com和net使用一组相同的名字服务器》有2条回应

  1. qiqibian说:

    原来如此啊!豁然开朗!

  2. fanzhou说:

    原来里面还隐藏这么多道道,受教了,以后都用com、net域名!

评论已关闭。