首先
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.org4、 向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.com7、 向root询问,root返回说这个归 com 管 , 同时返回了com对应的服务器和IP。(第1步)
8、 这个时候就出现 “鸡生蛋蛋生鸡” 的问题了。