菜鸟科技网

域名系统如何工作

可以把 DNS 想象成互联网的“电话簿”或者“导航系统”

域名系统如何工作-图1
(图片来源网络,侵删)
  • :想访问一个网站,www.google.com
  • 电话簿/导航系统:你不能直接通过“www.google.com”这个名字找到网站,因为计算机只认识 IP 地址(250.191.78),DNS 的作用就是帮你把“名字”翻译成“地址”。

DNS 的核心概念

在了解工作流程之前,先要认识几个关键角色:

  1. 域名:就是我们平时输入的网址,如 www.google.com,它是一个层次化的结构,从右到左越来越具体:

    • .com:顶级域名
    • google:二级域名
    • www:子域名
  2. IP 地址:计算机在网络中的唯一地址,就像每家每户的门牌号。250.191.78

  3. 域名服务器:这是整个系统的核心,是存储域名和对应 IP 地址记录的专用服务器,它们有不同的分工,就像一个分布式的、层级化的数据库。

    域名系统如何工作-图2
    (图片来源网络,侵删)
  4. 解析器:通常在你本地的电脑或网络服务提供商那里,当你在浏览器输入网址时,是解析器负责向 DNS 服务器发起查询请求。


DNS 服务器层级结构

DNS 服务器不是集中在一台超级计算机上,而是分布在全球,形成一个层级结构,这保证了系统的效率和鲁棒性。

  • 根域名服务器

    • 作用:最高级别的服务器,全球只有 13 组(实际有上千台镜像服务器),它们不存储具体的域名和 IP 映射关系,只存储顶级域(如 .com, .org, .cn)的 NS 记录。
    • 比喻:就像电话簿的“总目录”,告诉你查“姓张”的去“张”姓那一页,但它不知道“张三”的具体电话号码。
  • 顶级域服务器

    域名系统如何工作-图3
    (图片来源网络,侵删)
    • 作用:负责管理特定顶级域的服务器。.com 的 TLD 服务器知道所有 .com 域名应该去哪个权威服务器查询。
    • 比喻:电话簿的“张姓”那一页,它告诉你“张三”的详细信息在“北京市黄页”里。
  • 权威域名服务器

    • 作用:这是最终负责某个特定域名的服务器,它存储了该域名下的所有权威记录,包括 www.google.com 的 IP 地址、邮件服务器地址等。
    • 比喻:北京市黄页”本身,直接记录了“张三”的电话号码和住址。

DNS 查询的完整流程(递归查询示例)

我们把所有概念串联起来,看看当你输入 www.google.com 并按下回车后,到底发生了什么,这个过程通常被称为递归查询

假设你的电脑上没有缓存,且本地 DNS 服务器也不知道答案。

步骤分解:

  1. 用户输入与本地检查

    • 你在浏览器输入 www.google.com
    • 你的电脑首先会检查本地缓存hosts 文件(一个可以手动配置域名和 IP 对应关系的文件),如果这里有记录,就直接访问,无需查询 DNS。
  2. 联系本地 DNS 服务器

    • 如果本地没有,你的计算机会向你的网络服务提供商(如电信、联通)分配的本地 DNS 服务器(也叫递归解析器)发送查询请求:“请问 www.google.com 的 IP 地址是什么?”
  3. 本地 DNS 服务器开始递归查询

    • 本地 DNS 服务器接收到请求后,它会代替你的电脑,开始向全球的 DNS 体系发起查询。

    • 查询 1:询问根服务器

      • 本地 DNS 服务器向根域名服务器发送请求:“请告诉我 www.google.com 的权威服务器是哪个?”
      • 根服务器看到 .com,会回答:“我不知道 www.google.com 的具体地址,但我知道负责 .com 的顶级域服务器的地址是 xxx.com。”
      • 本地 DNS 服务器记下这个地址,然后向顶级域服务器发起下一个查询。
    • 查询 2:询问顶级域服务器

      • 本地 DNS 服务器向 .com 的顶级域服务器发送请求:“请告诉我 www.google.com 的权威服务器是哪个?”
      • TLD 服务器检查自己的记录,回答:“我不知道 www.google.com 的具体 IP,但我知道 google.com 这个域名的权威服务器地址是 xxx.google.com。”
      • 本地 DNS 服务器记下这个地址,然后向权威服务器发起最后一个查询。
    • 查询 3:询问权威服务器

      • 本地 DNS 服务器向 google.com 的权威域名服务器发送请求:“请告诉我 www.google.com 的 IP 地址是什么?”
      • 权威服务器查看自己的记录,找到了 www 这条记录,并给出精确的答案:“www.google.com 的 IP 地址是 250.191.78。”
  4. 返回结果并缓存

    • 本地 DNS 服务器收到最终答案 250.191.78 后,会将这个结果缓存起来(缓存时间由 TTL 值决定),然后将这个 IP 地址返回给你的电脑。
  5. 建立连接

    • 你的电脑收到 IP 地址 250.191.78 后,浏览器就可以使用这个 IP 地址向 Google 的服务器发起 HTTP 请求,最终将网页内容显示给你。

DNS 记录类型

除了最常见的 A 记录(域名 -> IPv4 地址),DNS 还支持多种记录类型,以实现不同功能:

  • A 记录:将域名指向一个 IPv4 地址。
  • AAAA 记录:将域名指向一个 IPv6 地址。
  • CNAME 记录:将一个域名指向另一个域名(别名),将 blog.google.com 指向 www.google.com
  • MX 记录:指定负责处理该域名下电子邮件的邮件服务器。
  • NS 记录:指定该域名的权威域名服务器是哪些。
  • TXT 记录:存储任意的文本信息,常用于验证域名所有权、SPF 邮件验证等。

DNS 是互联网不可或缺的基础设施,它的工作原理可以概括为:

  1. 分层查询:从根服务器开始,逐级向下查询,直到找到最终的权威服务器。
  2. 缓存机制:各级服务器(包括本地 DNS 服务器和浏览器)都会缓存查询结果,以减少后续查询次数,提高访问速度。
  3. 分布式设计:将数据和查询压力分散到全球成千上万台服务器上,确保了系统的稳定和高效。

没有 DNS,我们就必须记住成百上千个枯燥的数字 IP 地址来访问网站,互联网的易用性将大打折扣,它就像一个默默无闻的翻译官,将人类友好的“名字”翻译成机器能懂的“地址”,让我们能够轻松地畅游网络。

分享:
扫描分享到社交APP
上一篇
下一篇