V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
alansalexer
V2EX  ›  DNS

关于 Name Server

  •  
  •   alansalexer · 2015-02-05 00:12:07 +08:00 · 3551 次点击
    这是一个创建于 3579 天前的主题,其中的信息可能已经有所发展或是发生改变。

    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 条回复    2015-02-14 22:52:47 +08:00
    Septembers
        1
    Septembers  
       2015-02-05 00:17:23 +08:00
    root-servers
    lzxgh621
        2
    lzxgh621  
       2015-02-05 00:23:45 +08:00
    域名服务器需要在注册商那里注册的,貌似还收费。
    Draplater
        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亲手试试
    Draplater
        4
    Draplater  
       2015-02-05 01:06:42 +08:00 via Android
    不好意思没看清问题,撤销如上言论
    sumhat
        5
    sumhat  
       2015-02-05 01:08:10 +08:00
    sneezry
        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
    AstroProfundis
        7
    AstroProfundis  
       2015-02-05 04:50:50 +08:00
    glue 记录
    invite
        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.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、 这个时候就出现 “鸡生蛋蛋生鸡” 的问题了。
    kxmp
        9
    kxmp  
       2015-02-14 22:52:47 +08:00
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2840 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 07:40 · PVG 15:40 · LAX 23:40 · JFK 02:40
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.