DNS 解析是如何工作的
Source: Dev.to

在本博客中,我们将覆盖
- 什么是 DNS 以及为什么会有名称解析
dig命令是什么以及何时使用- 理解
dig . NS与根名称服务器 - 理解
dig com NS与顶级域(TLD)名称服务器 - 理解
dig twitter.com NS与权威名称服务器 - 理解
dig twitter.com与完整的 DNS 解析流程
什么是 DNS(Domain Name System)?
DNS 代表 Domain Name System。
它的主要工作是将人类友好的域名(例如:
www.example.com
)转换为计算机友好的 IP 地址(例如:
192.168.1.1
)。
可以把 DNS 看作是 互联网的电话簿——人们记住名字,计算机使用数字进行通信。DNS 弥合了这两者之间的差距。
为什么需要名称解析?
- 人们可以轻松记住像
twitter.com这样的名称。 - 计算机理解像
192.8.1.1这样的数字。
所以,DNS 充当 人类与机器之间的翻译器,让我们能够使用名称而不是记住 IP 地址来访问网站。
什么是 dig 命令?
dig 代表 Domain Information Groper。
它是一个命令行工具,用于从 DNS 服务器检索信息。网络管理员和工程师通常使用 dig 来:
- 执行 DNS 查询
- 验证 DNS 配置
- 排查 DNS 问题
何时使用 dig?
- 调试 DNS 解析问题
- 检查哪个 DNS 服务器对某个域名具有权威性
- 验证 DNS 记录,例如 A、AAAA、CNAME、MX 等
基本语法
dig [server] [domain] [record_type]
示例
dig twitter.com A
DNS 解析工作原理(逐步说明)
让我们了解在浏览器中输入以下内容时实际发生了什么:
www.twitter.com
1. 根名称服务器
根名称服务器是 DNS 层级结构的起点。
- 共有 13 台逻辑根服务器(命名为 A 到 M)。
- 每台逻辑服务器在全球有许多物理实例。
- 根服务器 不 知道单个网站的 IP 地址;它们会将解析器指向处理相应顶级域(例如 “.com”)的服务器。
检查根名称服务器
dig . NS
该命令返回根名称服务器的列表。

2. 顶级域(TLD)名称服务器
顶级域(TLD) 是域名的最后一部分,例如:
.com.net.org.in
TLD 服务器同样 不返回 IP 地址;它们指向该特定域的 权威名称服务器。
检查 .com 的 TLD 名称服务器
dig com NS
该命令返回负责所有 .com 域的权威名称服务器。

此时,解析器已经 明确下一步该去哪里。
3. 权威名称服务器
权威名称服务器保存 域名的实际 DNS 记录。
运行:
dig twitter.com NS
会返回对 twitter.com 具有权威性的名称服务器列表。

这些服务器包含的记录包括:
A(IPv4 地址)AAAA(IPv6 地址)CNAME(规范名称)MX(邮件交换)
获取实际的 IP 地址
dig twitter.com A

该命令最终返回 twitter.com 的 IP 地址,完成 DNS 解析过程。
示例 IP 地址
172.66.0.227
现在浏览器知道该连接到哪里,并能够加载 Twitter 网站。
完整的 DNS 解析流程(摘要)
- 你在浏览器中输入
www.twitter.com。 - 浏览器向 递归 DNS 解析器 发起请求。
- 解析器查询 根名称服务器。
- 根服务器的回应是:“去查询
.com顶级域(TLD)服务器。”
- 根服务器的回应是:“去查询
- 解析器查询 顶级域(TLD)名称服务器。
- TLD 服务器的回应是:“这里是
twitter.com的权威服务器。”
- TLD 服务器的回应是:“这里是
- 解析器查询 权威名称服务器。
- 这些服务器返回实际的 IP 地址。
- 浏览器连接到该 IP 并加载网站。
Final Notes
- 根服务器 → 知道 TLD 所在位置。
- TLD 服务器 → 知道 哪些服务器是权威的。
- 权威服务器 → 知道 实际的 IP 地址。
- 递归 DNS 服务器 为 客户端 执行整个查询 on behalf of the client。
Image Credits:
https://www.indusface.com/learning/what-is-dns/

