有一些域名的 DNS 服务器是这个域名本身的子域名,这种情况是怎么解析的?难道不会陷入死循环么?

2017-09-07 09:21:28 +08:00
 7DLNU56W
请教一个关于 DNS 解析的问题。
有一些域名的 DNS 服务器是这个域名本身的子域名,这种情况是怎么解析的?难道不会陷入死循环么?

举例如下
taobao.com 的 DNS 服务器是 ns4.taobao.com ,这样当解析 www.taobao.com 的时候,递归解析从根域到 com.域再查询 taobao.com.域的时候发现这个域的 DNS 服务器是一个域名,这个域名还需要再解析,解析这个 DNS 服务器的域名(即 ns4.taobao.com )时还需要从根域到 com.域再到 taobao.com.域,又要查询 taobao.com.域的 DNS 服务器,又发现是 ns4.taobao.com ,然后又要解析这个新域名,。。。这样不是就陷入死循环了么,这种域名的 DNS 服务器是域名本身的子域名的这种域名是怎么解析的?
6678 次点击
所在节点    DNS
24 条回复
tuibaba
2017-09-07 09:27:13 +08:00
这...
zsj950618
2017-09-07 09:27:26 +08:00
Sh888
2017-09-07 09:28:24 +08:00
DNS 服务器不都是直接使用它的 ip 地址的吗?正向解析也是查询一般主机,为什么要查询 dns 服务器的 ip 地址?
anoymoux
2017-09-07 09:30:38 +08:00
techeek
2017-09-07 09:31:09 +08:00
@Sh888 他的意思是现在很多服务商都有自己的 ns 解析,那么问题来了,这个 ns 解析是怎么来的,一级域名 taoao.com 是谁来解析的。
Sh888
2017-09-07 09:33:09 +08:00
@techeek taobao.com 难道不是 com 主机解析的吗?
Sh888
2017-09-07 09:35:08 +08:00
*.tao bao.com 再由 taob ao.com 解析,tao bao.com 可能把解析转发给 ns.tao bao.com
7DLNU56W
2017-09-07 09:43:36 +08:00
就是说 ns.taobao.com 这个域名怎么解析,查询根域,得到 com 域的地址,再查询 com 域得到 taobao.com 域的地址为 ns.taobao.com ,可现在的情况就是根本不知道 ns.taobao.com 的地址,解析的过程转一圈又回到起点了?
TestSmirk
2017-09-07 09:52:08 +08:00
同好奇..
zxp
2017-09-07 09:52:19 +08:00
这个 ns.taobao.com 的 IP 地址要先在注册局注册的,也就是说在注册局那里直接就知道该向哪个 IP 去解析 taobao.com 这个域名的主机地址了。
Sh888
2017-09-07 09:52:37 +08:00
taobao. com 就知道 ns.taobao. com 的 ip 地址呀。
song4
2017-09-07 10:00:26 +08:00
涉及的概念:DNS Delegation。DNS 的名称空间是分级的树状结构,每一级会有一组名称服务器负责解析该级的名称。

www.taobao.com 来说,它的 FQDN 是 www.taobao.com. 。注意末尾有个点。

我们对其进行 DNS 查询时,首先查询根(.)的名称服务器,返回:*.root-servers.net. 。这是根名称服务器。

接着,向任意一个根名称服务器查询 com. 的名称服务器,返回:*.gtld-servers.net. 。这是 gTLD 名称服务器。

然后,选择一个 gTLD 名称服务器,查询 taobao.com. 的名称服务器,返回:ns[4-7].taobao.com. 。也就是说,taobao.com. 的名称服务器被注 册成了 ns[4-7].taobao.com 。这是人为控制的。

最后,向任意一个 ns[4-7].taobao.com. 发起查询,你会发现其实只是 CNAME RECORD 而已。
lengxx
2017-09-07 10:06:01 +08:00
http://www.internic.net/domain/root.zone
看下这个楼主应该就明白了
blueionic
2017-09-07 10:08:00 +08:00
glue record
BOYPT
2017-09-07 10:15:42 +08:00
顶级域名的 NS 记录是由域名托管机构同步到根服务器当中,而不是由域名的权威服务器提供查询。
also24
2017-09-07 10:31:23 +08:00
关于 DNS 的问题,在 风河博客 里有很详细的解答,具体到 NS 记录自身解析的问题可以参考以下几篇内容:

http://thinnote.com/archives/91
http://thinnote.com/archives/115
http://thinnote.com/doc/DNS.pdf

所以,应该是 @blueionic #14 所说的胶水记录的效果
wysnylc
2017-09-07 11:28:44 +08:00
@song4 学到了!之前只知道根服务器不知道原来后面还有个点!
my3157
2017-09-07 11:31:22 +08:00
@blueionic +1 glue record
my3157
2017-09-07 11:37:04 +08:00
看下面查询过程, .com 查 taobao 的时候返回的 ns 记录带 ip 的

$ dig

; <<>> DiG 9.8.3-P1 <<>>
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 38539
;; flags: qr rd ra; QUERY: 1, ANSWER: 13, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;. IN NS

;; ANSWER SECTION:
. 98233 IN NS e.root-servers.net.
. 98233 IN NS j.root-servers.net.
. 98233 IN NS k.root-servers.net.
. 98233 IN NS h.root-servers.net.
. 98233 IN NS g.root-servers.net.
. 98233 IN NS d.root-servers.net.
. 98233 IN NS a.root-servers.net.
. 98233 IN NS c.root-servers.net.
. 98233 IN NS b.root-servers.net.
. 98233 IN NS f.root-servers.net.
. 98233 IN NS i.root-servers.net.
. 98233 IN NS l.root-servers.net.
. 98233 IN NS m.root-servers.net.

;; Query time: 43 msec
;; SERVER: 192.168.2.1#53(192.168.2.1)
;; WHEN: Thu Sep 7 11:34:19 2017
;; MSG SIZE rcvd: 228

$ dig @e.root-servers.net com.

; <<>> DiG 9.8.3-P1 <<>> @e.root-servers.net com.
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 63619
;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 13, ADDITIONAL: 15
;; WARNING: recursion requested but not available

;; QUESTION SECTION:
;com. IN A

;; AUTHORITY SECTION:
com. 172800 IN NS a.gtld-servers.net.
com. 172800 IN NS b.gtld-servers.net.
com. 172800 IN NS c.gtld-servers.net.
com. 172800 IN NS d.gtld-servers.net.
com. 172800 IN NS e.gtld-servers.net.
com. 172800 IN NS f.gtld-servers.net.
com. 172800 IN NS g.gtld-servers.net.
com. 172800 IN NS h.gtld-servers.net.
com. 172800 IN NS i.gtld-servers.net.
com. 172800 IN NS j.gtld-servers.net.
com. 172800 IN NS k.gtld-servers.net.
com. 172800 IN NS l.gtld-servers.net.
com. 172800 IN NS m.gtld-servers.net.

;; ADDITIONAL SECTION:
a.gtld-servers.net. 172800 IN A 192.5.6.30
b.gtld-servers.net. 172800 IN A 192.33.14.30
c.gtld-servers.net. 172800 IN A 192.26.92.30
d.gtld-servers.net. 172800 IN A 192.31.80.30
e.gtld-servers.net. 172800 IN A 192.12.94.30
f.gtld-servers.net. 172800 IN A 192.35.51.30
g.gtld-servers.net. 172800 IN A 192.42.93.30
h.gtld-servers.net. 172800 IN A 192.54.112.30
i.gtld-servers.net. 172800 IN A 192.43.172.30
j.gtld-servers.net. 172800 IN A 192.48.79.30
k.gtld-servers.net. 172800 IN A 192.52.178.30
l.gtld-servers.net. 172800 IN A 192.41.162.30
m.gtld-servers.net. 172800 IN A 192.55.83.30
a.gtld-servers.net. 172800 IN AAAA 2001:503:a83e::2:30
b.gtld-servers.net. 172800 IN AAAA 2001:503:231d::2:30

;; Query time: 179 msec
;; SERVER: 192.203.230.10#53(192.203.230.10)
;; WHEN: Thu Sep 7 11:34:38 2017
;; MSG SIZE rcvd: 509


$ dig @a.gtld-servers.net. -t NS taobao.com

; <<>> DiG 9.8.3-P1 <<>> @a.gtld-servers.net. -t NS taobao.com
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 30893
;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 4, ADDITIONAL: 8
;; WARNING: recursion requested but not available

;; QUESTION SECTION:
;taobao.com. IN NS

;; AUTHORITY SECTION:
taobao.com. 172800 IN NS ns4.taobao.com.
taobao.com. 172800 IN NS ns5.taobao.com.
taobao.com. 172800 IN NS ns6.taobao.com.
taobao.com. 172800 IN NS ns7.taobao.com.

;; ADDITIONAL SECTION:
ns4.taobao.com. 172800 IN A 198.11.138.245
ns4.taobao.com. 172800 IN A 198.11.138.249
ns5.taobao.com. 172800 IN A 140.205.2.180
ns5.taobao.com. 172800 IN A 140.205.2.188
ns6.taobao.com. 172800 IN A 140.205.71.245
ns6.taobao.com. 172800 IN A 140.205.71.249
ns7.taobao.com. 172800 IN A 106.11.35.25
ns7.taobao.com. 172800 IN A 106.11.35.26

;; Query time: 106 msec
;; SERVER: 192.5.6.30#53(192.5.6.30)
;; WHEN: Thu Sep 7 11:35:01 2017
;; MSG SIZE rcvd: 228
7DLNU56W
2017-09-07 12:49:06 +08:00
感谢大家的回复,学到了好多啊~~

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/388814

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX