当前美国把持着互联网域名根服务器在什么都占据着优势 美国根域名服务器对中国影响( 二 )


  • 根 DNS 收到来自本地 DNS 的请求后 , 发现后置是 .com , 说:“.server.com 这个域名归 .com 区域管理” , 我给你 .com 顶级域名服务器地址给你 , 你去问问它吧 。”
  • 本地 DNS 收到顶级域名服务器的地址后 , 发起请求问“老二 ,  你能告诉我 .server.com的 IP 地址吗?”
  • 【当前美国把持着互联网域名根服务器在什么都占据着优势 美国根域名服务器对中国影响】顶级域名服务器说:“我给你负责 .server.com 区域的权威 DNS 服务器的地址 , 你去问它应该能问到” 。
  • 本地 DNS 于是转向问权威 DNS 服务器:“老三 , .server.com对应的IP是啥呀?” server.com 的权威 DNS 服务器 , 它是域名解析结果的原出处 。为啥叫权威呢?就是我的域名我做主 。
  • 权威 DNS 服务器查询后将对应的 IP 地址 X.X.X.X 告诉本地 DNS 。
  • 本地 DNS 再将 IP 地址返回客户端 , 客户端和目标建立连接 。
  • 至此 , 我们完成了 DNS 的解析过程 , 整个过程我画成了一个图:
    当前美国把持着互联网域名根服务器在什么都占据着优势 美国根域名服务器对中国影响


    图片
    域名解析的过程蛮有意思的 , 整个过程就和我们日常生活中找人问路的过程类似 , 只指路不带路 。
    那是不是每次解析域名都要经过那么多的步骤呢?
    当然不是了 , 还有缓存这个东西的嘛 。
    浏览器会先看自身有没有对这个域名的缓存 , 如果有 , 就直接返回 , 如果没有 , 就去问操作系统 , 操作系统也会去看自己的缓存 , 如果有 , 就直接返回 , 如果没有 , 再去 hosts 文件看 , 也没有 , 才会去问「本地 DNS 服务器」 。
    为什么「本地 DNS 服务器」会知道根域名服务器的 IP 地址?
    世界上根域名服务器只有 13 台 , 这 13 台根域名服务器以英文字母 A 到 M 依序命名 , 
    网域名称格式为“字母.root-servers ” , 而且它们的 IP 地址基本不会变化 。
    所以 , 「本地 DNS 服务器」会内置一个根域名服务器的配置文件 , 通过读取这个配置文件就能找到根域名服务器的 IP 地址 。
    下面这个图就是 13 台根域名服务器的配置文件的部分内容:
    当前美国把持着互联网域名根服务器在什么都占据着优势 美国根域名服务器对中国影响


    可能有的同学会说 , 这个是静态的配置文件 , 如果某一个根域名服务器的 IP 地址改变了 , 要怎么知道的呢?
    其实 , 「本地 DNS 服务器」首次启动时 , 并不会先读这份静态的配置文件 , 而是会先去查根域名服务器的 IP 列表 , 这个查询过程使用的传输协议是 UDP 。
    另外 , 可以看到上图中所有记录的 TTL 值是 3600000 秒 , 相当于 1000 小时 。也就是说 , 每 1000 小时会去查询一次根域名服务器的列表 。
    为什么根域名服务器只有 13 台?
    严格来讲 , 是世界上共有 13 个「IPv4协议」的根域名服务器 , 而 IPv6的根节点不止 13 个 。
    注意 , 这 13 个并不是表示背后只有 13 台真正的物理服务器 , 这 13 个对应的是 13 个 IP 地址 , 对应了 A-M 13 个编号 。通过任播(Anycast)技术 , 编号相同的根服务器使用同一个 IP(类似一个集群) 。

    推荐阅读