alansalexer
V2EX  ›  DNS

关于 Name Server

  •  
  •   alansalexer · Feb 5, 2015 · 4459 views
    This topic created in 4291 days ago, the information mentioned may be changed or developed.

    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 最早是由谁解析的呢?
    感觉成了鸡生蛋蛋生鸡......

    9 replies  •  2015-02-14 22:52:47 +08:00
    Septembers
    Septembers
    Feb 5, 2015
    1
    root-servers
    lzxgh621
    lzxgh621
    Feb 5, 2015
    2
    域名服务器需要在注册商那里注册的,貌似还收费。
    Draplater
    Draplater
    Feb 5, 2015 via Android
    3
    结论:是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亲手试试
    Draplater
    Draplater
    Feb 5, 2015 via Android
    4
    不好意思没看清问题,撤销如上言论
    sneezry
    sneezry
    Feb 5, 2015
    6
    由一级域名服务器解析,也就是.com的服务器*.gtld-servers.net.,*为a-m。

    解析过程(无缓存时):根服务器root-server(ip是写死的,全世界13台)->一级域名服务器(TLD[Top-Level Domain]服务器,如.com、.org、.io等的域名服务器)->域名服务器(如google.com的域名服务器ns.google.com)
    AstroProfundis
    AstroProfundis
    Feb 5, 2015
    7
    glue 记录
    invite
    invite
    Feb 5, 2015
    8
    首先 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、 这个时候就出现 “鸡生蛋蛋生鸡” 的问题了。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   5638 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 55ms · UTC 03:12 · PVG 11:12 · LAX 19:12 · JFK 22:12
    ♥ Do have faith in what you're doing.