baidu.com 的 Name Server 如下:
dns.baidu.com
ns2.baidu.com
...
google.com 的 Name Server 如下:
ns1.google.com
ns2.google.com
...
那么 dns.baidu.com, ns1.google.com 最早是由谁解析的呢?
感觉成了鸡生蛋蛋生鸡......
1
Septembers 2015-02-05 00:17:23 +08:00
root-servers
|
2
lzxgh621 2015-02-05 00:23:45 +08:00
域名服务器需要在注册商那里注册的,貌似还收费。
|
3
Draplater 2015-02-05 00:57:02 +08:00 via Android
结论:是gtld-server提供的,
过程:先去root-serer(预先写在程序里)那里查询com.的NS,返回结果为gtld-server。 再去gtld-server那里查询baidu.com.的NS,返回结果为dns.baidu.com。 dns.baidu.com是用来查询*.baidu.com的,而不是baidu.com 你可以使用dig +trace baidu.com亲手试试 |
4
Draplater 2015-02-05 01:06:42 +08:00 via Android
不好意思没看清问题,撤销如上言论
|
5
sumhat 2015-02-05 01:08:10 +08:00
|
6
sneezry 2015-02-05 01:14:53 +08:00
由一级域名服务器解析,也就是.com的服务器*.gtld-servers.net.,*为a-m。
解析过程(无缓存时):根服务器root-server(ip是写死的,全世界13台)->一级域名服务器(TLD[Top-Level Domain]服务器,如.com、.org、.io等的域名服务器)->域名服务器(如google.com的域名服务器ns.google.com) |
7
AstroProfundis 2015-02-05 04:50:50 +08:00
glue 记录
|
8
invite 2015-02-05 09:27:29 +08:00
首先 dns.baidu.com 这个NS的IP信息是在 com 服务器上注册过的,同时 baidu.com 归那个NS解析在com服务器上也是注册过的
然后这里有两个概念, 1、如果要解析 dns.baidu.com, 跟解析 www.baidu.com 过程是一样的。 2、在解析www.baidu.com的时候,会通过root找到com的服务器,它会返回 dns.baidu.com 以及对应的 IP这条记录,通过这条记录可以找到对应的百度NS服务器的IP地址,然后可以解析出 www.baidu.com 了。 其次,如果你需要模拟: 鸡生蛋蛋生鸡 的情况,也是可以实现的: 你需要两个域名,归属于不同tld, 比如 baidu.com 和 baidu.org 把 baidu.com 的NS指向 ns.baidu.org 把 baidu.org 的NS指向 ns.baidu.com 当然, 上述两个NS都是合法注册过的,但此时你去解析任何一个域名, 都不会有结果,循环解析了。 假设解析 www.baidu.com ,此时的过程是: 1、 向root询问,root返回说这个归 com 管 , 同时返回了com对应的服务器和IP。 2、 向com询问,com上注册了baidu.com对应的NS为 ns.baidu.org ,此时它不知道 ns.baidu.org 对应的IP地址 3、 客户端发现是 ns.baidu.org ,但是没IP,这个时候它会发起一个解析请求去解析 ns.baidu.org 4、 向root询问,root返回说这个归 org 管 , 同时返回了org对应的服务器和IP。 5、 向org询问,org上注册了baidu.org对应的NS为 ns.baidu.com,此时它不知道 ns.baidu.com对应的IP地址 6、 客户端发现是 ns.baidu.com,但是没IP,这个时候它会发起一个解析请求去解析 ns.baidu.com 7、 向root询问,root返回说这个归 com 管 , 同时返回了com对应的服务器和IP。(第1步) 8、 这个时候就出现 “鸡生蛋蛋生鸡” 的问题了。 |
9
kxmp 2015-02-14 22:52:47 +08:00
|