alansalexer
V2EX  ›  DNS

关于 Name Server

  •  
  •   alansalexer · Feb 5, 2015 · 4142 views
    This topic created in 4173 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
        1
    Septembers  
       Feb 5, 2015
    root-servers
    lzxgh621
        2
    lzxgh621  
       Feb 5, 2015
    域名服务器需要在注册商那里注册的,貌似还收费。
    Draplater
        3
    Draplater  
       Feb 5, 2015 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亲手试试
    Draplater
        4
    Draplater  
       Feb 5, 2015 via Android
    不好意思没看清问题,撤销如上言论
    sneezry
        6
    sneezry  
       Feb 5, 2015
    由一级域名服务器解析,也就是.com的服务器*.gtld-servers.net.,*为a-m。

    解析过程(无缓存时):根服务器root-server(ip是写死的,全世界13台)->一级域名服务器(TLD[Top-Level Domain]服务器,如.com、.org、.io等的域名服务器)->域名服务器(如google.com的域名服务器ns.google.com
    AstroProfundis
        7
    AstroProfundis  
       Feb 5, 2015
    glue 记录
    invite
        8
    invite  
       Feb 5, 2015
    首先 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.combaidu.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   ·   Solana   ·   2735 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 49ms · UTC 13:32 · PVG 21:32 · LAX 06:32 · JFK 09:32
    ♥ Do have faith in what you're doing.