前言
作为运维新人,DNS 是你每天都会打交道的基础设施。但你真的知道当你输入 www.baidu.com 后,背后发生了什么吗?
本文通过实际环境 demo.example-corp.com 的完整解析过程,带你一次性搞懂 DNS 的基础架构。
一、DNS 的核心作用
一句话定义:DNS 把人类易记的域名翻译成机器可读的 IP 地址。
| 访问网站 | 记 IP:203.0.113.1 | 记域名:www.example-corp.com |
| 换服务器 | 通知所有人改 IP | 改一条 DNS 记录 |
| CDN 加速 | 无法实现 | CNAME 到 CDN 自动调度 |
二、DNS 树状分层结构
DNS 是树形结构,从右往左看:
www.example-corp.com.
│ │ │ └── 根域(root,顶级域名最后的点)
│ │ └── 顶级域(TLD,.com)
│ └── 二级域(eastmoney)
└── 子域(www)
每一层的职责:
| 根域 | 存储所有 TLD 的 NS 记录 | .(一个点) |
| TLD | 存储所有二级域的权威 DNS 地址 | .com、.cn |
| 二级域 | 你注册的域名 | example-corp.com |
| 子域 | 二级域下的细分 | www、api、img |
三、完整解析流程(逐帧拆解)
3.1 缓存检查
hosts 文件 → OS 缓存 → 浏览器缓存 → 本地递归 DNS 缓存
↓ 全部未命中
开始递归查询
3.2 递归查询
以你的 demo.example-corp.com 为例,实际的查询路径:
① 你的浏览器
↓
② 内网 DNS(10.126.251.11,缓存未命中)
↓
③ 根服务器(l.root-servers.net,27ms 响应)
"去问 .com TLD"
↓
④ .com TLD(b.gtld-servers.net,17ms 响应)
"example-corp.com 的权威 DNS 是 ns1.clouddns.com"
↓
⑤ 云DNS权威 DNS(ns1.clouddns.com,33ms 响应)
"demo.example-corp.com → CNAME → 星云CDN"
↓
⑥ 浏览器拿到结果,开始 HTTP 请求
3.3 用 dig +trace 实战验证
dig demo.example-corp.com +trace
输出分 4 段,每段对应上图的每一步:
第 1 段:根服务器
. 480164 IN NS a.root-servers.net. (共 13 组)
;; Received from 10.126.251.11 in 0 ms
你的内网 DNS 直接返回了缓存的根服务器列表(0ms),说明根 NS 信息被长期缓存。
第 2 段:.com TLD
com. 172800 IN NS a.gtld-servers.net. (共 13 组)
;; Received from 199.7.83.42 (l.root-servers.net) in 27 ms
实际联系了 l.root-servers.net(199.7.83.42),27ms 返回了 .com TLD 的 NS 列表。
第 3 段:example-corp.com 权威 DNS
example-corp.com. 172800 IN NS ns1.clouddns.com.
example-corp.com. 172800 IN NS ns2.clouddns.com.
TLD 告诉递归 DNS:"example-corp.com 的权威 DNS 是云DNS的两台服务器"。
第 4 段:最终答案
demo.example-corp.com. 600 IN CNAME demo.example-corp.com.cdn-edge.cloudfront-cdn.com.
云DNS 返回了 CNAME 记录,指向星云CDN。
四、6 种核心 DNS 记录类型
4.1 A 记录 —— 最核心
域名 → IPv4:
dig demo.example-corp.com A +short
→ CNAME 链追到最终 IP:203.0.113.10, 203.0.113.11
4.2 CNAME 记录 —— CDN 的灵魂
域名 → 另一个域名(别名):
dig demo.example-corp.com CNAME +short
→ demo.example-corp.com.cdn-edge.cloudfront-cdn.com
# host 命令看 CNAME 链最清晰
host demo.example-corp.com
→ demo.example-corp.com → cdn-edge.cloudfront-cdn.com → sx-img-ipv4.geo-cdn.cloudfront-cdn.com
CNAME 的限制:
-
❌ 不能和其他记录(如 MX)共存
-
❌ 不能指向 IP
-
❌ 顶级域名不推荐用
4.3 SOA 记录 —— 域名的"户口本"
dig example-corp.com SOA +short
→ ns1.clouddns.com. hostmaster@example-corp.com. 2026060512 3600 1200 86400 600
| 主 NS | ns1.clouddns.com | 主权威 DNS |
| 管理员 | hostmaster@hichina.com | 万网/云DNS |
| Serial | 2026060512 | 2026-06-05 第 12 次修改 |
| Refresh | 3600 | 从服务器 1h 检查更新 |
| Retry | 1200 | 失败后 20min 重试 |
| Expire | 86400 | 1 天连不上就丢弃 |
| Min TTL | 600 | 最小缓存 10min |
运维价值:修改 DNS 后如果 Serial 没递增,从服务器不会同步。
4.4 MX 记录 —— 邮件路由
dig example-corp.com MX +short
→ 4 mail2.example-corp.com
优先级 4(数字越小越优先),只有一台邮件服务器。
4.5 NS 记录 —— 谁管这个域名
dig example-corp.com NS +short
→ ns1.clouddns.com
→ ns2.clouddns.com
4.6 TXT 记录 —— 万能小纸条
dig example-corp.com TXT +short
→ "MS=CC0EABB6…" (微软域名验证)
→ "v=spf1 a mx ip4:101.226.30.10 ip4:101.226.30.12 -all" (SPF 防邮件伪造)
五、一句话总结
DNS = 树状结构 + 递归查询 + 6种记录类型
运维新人先记住 3 件事:
用 dig +trace 看完整解析路径
A 记录给 IP,CNAME 给别名(CDN 用)
SOA 的 Serial 改完 DNS 要递增
下一篇文章预告:《DNS排查5大利器:dig/nslookup/host/curl–resolve实战》
网硕互联帮助中心





评论前必须登录!
注册