DNS:域名的旅行

回复列表(22|隐藏机器人聊天)
  • @Ta / 2021-05-14 / /
    @老虎会游泳https://draveness.me/dns-coredns/



    就像我们最开始说的,在互联网中想要请求服务,最终一定需要获取 IP 提供服务的服务器的 IP 地址;同理,作为 b0.nic.me 作为一个 DNS 服务器,我也必须获取它的 IP 地址才能获得次级域名的 DNS 信息,但是这里就陷入了一种循环:

    如果想要获取 dravenss.me 的 IP 地址,就需要访问 me 顶级域名服务器 b0.nic.me
    如果想要获取 b0.nic.me 的 IP 地址,就需要访问 me 顶级域名服务器 b0.nic.me
    如果想要获取 b0.nic.me 的 IP 地址,就需要访问 me 顶级域名服务器 b0.nic.me

    为了解决这一个问题,我们引入了胶水记录(Glue Record)这一概念,也就是在出现循环依赖时,直接在上一级作用域返回 DNS 服务器的 IP 地址:

    $ dig +trace +additional draveness.me

    ...

    me. 172800 IN NS a2.nic.me.
    me. 172800 IN NS b2.nic.me.
    me. 172800 IN NS b0.nic.me.
    me. 172800 IN NS a0.nic.me.
    me. 172800 IN NS c0.nic.me.
    me. 86400 IN DS 2569 7 1 09BA1EB4D20402620881FD9848994417800DB26A
    me. 86400 IN DS 2569 7 2 94E798106F033500E67567B197AE9132C0E916764DC743C55A9ECA3C 7BF559E2
    me. 86400 IN RRSIG DS 8 1 86400 20181116050000 20181103040000 2134 . cT+rcDNiYD9X02M/NoSBombU2ZqW/7WnEi+b/TOPcO7cDbjb923LltFb ugMIaoU0Yj6k0Ydg++DrQOy6E5eeshughcH/6rYEbVlFcsIkCdbd9gOk QkOMH+luvDjCRdZ4L3MrdXZe5PJ5Y45C54V/0XUEdfVKel+NnAdJ1gLE F+aW8LKnVZpEN/Zu88alOBt9+FPAFfCRV9uQ7UmGwGEMU/WXITheRi5L h8VtV9w82E6Jh9DenhVFe2g82BYu9MvEbLZr3MKII9pxgyUE3pt50wGY Mhs40REB0v4pMsEU/KHePsgAfeS/mFSXkiPYPqz2fgke6OHFuwq7MgJk l7RruQ==
    a0.nic.me. 172800 IN A 199.253.59.1
    a2.nic.me. 172800 IN A 199.249.119.1
    b0.nic.me. 172800 IN A 199.253.60.1
    b2.nic.me. 172800 IN A 199.249.127.1
    c0.nic.me. 172800 IN A 199.253.61.1
    a0.nic.me. 172800 IN AAAA 2001:500:53::1
    a2.nic.me. 172800 IN AAAA 2001:500:47::1
    b0.nic.me. 172800 IN AAAA 2001:500:54::1
    b2.nic.me. 172800 IN AAAA 2001:500:4f::1
    c0.nic.me. 172800 IN AAAA 2001:500:55::1
    ;; Received 721 bytes from 192.112.36.4#53(g.root-servers.net) in 110 ms

    ...
    Text
    也就是同时返回 NS 记录和 A(或 AAAA) 记录,这样就能够解决域名解析出现的循环依赖问题。
  • @Ta / 2021-05-14 / /

    @iola1999,感谢解答

  • @Ta / 2021-05-14 / /
    是好几年前我看到你帖子就也好奇这问题。。。今天刚好看到这篇文章,突然想到你帖子嘿嘿
添加新回复
回复需要登录