域名解析(DNS)

ZaynPei Lv6

什么是 DNS?—— 互联网的“电话簿”

DNS(Domain Name System,域名系统)是互联网一项核心的服务。它最基本的功能,就是将人类易于记忆的域名(例如 www.google.com)翻译成计算机能够理解和处理的 IP 地址(例如 142.251.42.196)。

这个过程就如同查一本巨大的电话簿:

  • 姓名(域名):www.google.com
  • 电话号码(IP 地址):142.251.42.196

我们人类习惯于记住有意义的名字,而计算机在网络中通信则依赖于数字地址。DNS 就是连接这两者之间的桥梁,没有它,我们访问每个网站都需要输入一长串无规律的数字,互联网将变得极难使用。


DNS 解析的核心参与者

在一次完整的域名解析过程中,通常有四类服务器协同工作,像一个分工明确的团队:

1. 递归解析器 (Recursive Resolver)

也常被称为本地 DNS 服务器 (Local DNS)。它通常由您的网络服务提供商(ISP,例如中国电信)或公共服务商(如 Google 的 8.8.8.8、Cloudflare 的 1.1.1.1)提供。

  • 职责:它不直接拥有域名信息,而是作为用户的“代理”,负责接收用户的查询请求,并通过一系列查询,最终为用户找到并返回一个确切的 IP 地址。它会缓存查询结果,以加速后续的相同请求。

2. 根域名服务器 (Root Server)

位于 DNS 查询链的顶端,是整个域名系统的起点。全球只有 13 组根服务器(从 A 到 M 命名),但每组都在全球部署了大量镜像。

  • 职责:它不直接解析域名,而是告诉递归解析器下一步应该去哪里查询,即提供顶级域名服务器的地址。

3. 顶级域名 (TLD) 服务器 (Top-Level Domain Server)

负责管理特定类型的域名后缀,例如 .com、.org、.net,以及国家/地区代码如.cn(中国大陆)、.jp(日本)等。

  • 职责:当收到查询请求后(例如查询 google.com),它会指明负责管理这个具体域名的权威域名服务器的地址。

4. 权威域名服务器 (Authoritative Server)

这是查询链的最后一站。它真正存储着特定域名与其 IP 地址的对应关系(即 DNS 记录)。

  • 职责:当收到关于它所管辖域名(如 www.google.com)的查询时,它会给出最终的、权威的答案——目标的 IP 地址。

DNS 解析的详细步骤(查询之旅)

下面以您在浏览器中访问 www.google.com 为例,走一遍完整的 DNS 解析流程。这个过程融合了递归查询和迭代查询两种模式。

背景:您的电脑向它的本地 DNS(递归解析器)发起的是一个“递归查询”,意思是“请你务必帮我找到答案”。而本地 DNS 向其他服务器发起的则是“迭代查询”,意思是“如果你不知道,请告诉我下一步该问谁”。


1. 检查本地缓存

  • 操作:您的电脑在发起网络请求前,会首先检查自身的浏览器缓存和操作系统缓存(包括 Hosts 文件),看之前是否访问过 www.google.com 并留下了记录。
  • 原因:这是最快的响应方式。如果本地有记录且未过期,解析过程直接结束,电脑立即使用该 IP 地址发起访问。

2. 发起递归查询

  • 操作:如果在本地缓存中未找到记录,您的电脑会将查询请求发送给预先配置好的本地 DNS 服务器(递归解析器)。
  • 原因:电脑将繁琐的查询任务“外包”给了专业的 DNS 服务器。

3. 递归解析器的迭代查询之旅

本地 DNS 服务器收到请求后,会开启一连串的迭代查询:

  • (3a) 查询根域名服务器:本地 DNS 服务器向其中一个根域名服务器发出请求:“你好,请问谁知道 .com 域名的信息?” 根服务器回答:“我不知道 www.google.com 的 IP,但你可以去问负责 .com 的 TLD 服务器,它的地址是 XXX。”
  • (3b) 查询顶级域名 (TLD) 服务器:本地 DNS 服务器转向 .com 的 TLD 服务器发出请求:“你好,请问谁知道 google.com 的信息?” TLD 服务器回答:“我不知道 www.google.com,但你可以去问 google.com 的权威域名服务器,它的地址是 YYY。”
  • (3c) 查询权威域名服务器:本地 DNS 服务器最后向 google.com 的权威域名服务器发出请求:“你好,请问 www.google.com 的 IP 地址是什么?”

4. 获得最终答案

  • 操作:权威域名服务器查询自己的记录,找到 www 这条主机记录对应的 IP 地址 142.251.42.196,并将其返回给本地 DNS 服务器。
  • 原因:权威服务器拥有最终解释权,它提供的答案是本次查询的终点。

5. 返回结果并缓存

  • 操作:本地 DNS 服务器拿到了 IP 地址,它会先将这个对应关系缓存起来(以便下次有其他用户查询时能直接响应),然后将这个 IP 地址返回给您的电脑。
  • 原因:缓存是提升 DNS 解析效率的关键,可以避免对同一个域名进行重复的、从根开始的完整查询。

6. 浏览器发起连接

  • 操作:您的电脑收到了 IP 地址 142.251.42.196,您的浏览器就可以利用这个地址向 Google 的服务器发起 TCP 连接,请求网页内容了。

至此,一次完整的 DNS 域名解析过程就结束了。