DNS 解析全过程¶
一、DNS 是什么¶
DNS(Domain Name System)把域名翻译成 IP 地址。
二、查询流程¶
以 www.example.com 为例:
1. 浏览器缓存¶
浏览器先查自己的 DNS 缓存(Chrome 约 1 分钟)。
2. 操作系统缓存¶
查 hosts 文件、操作系统 DNS 缓存。
3. 本地 DNS 服务器(LDNS)¶
没命中,发往配置的 DNS(运营商 / 8.8.8.8 / 114.114.114.114)。
4. 递归查询 vs 迭代查询¶
- 递归查询:客户端 → LDNS,LDNS 负责拿到结果返回。
- 迭代查询:LDNS 依次问根域名服务器、顶级域服务器、权威服务器。
流程:
LDNS -> 根服务器(.): 问 .com 在哪
根 -> LDNS: 去问 .com 服务器
LDNS -> .com 服务器: 问 example.com 在哪
.com -> LDNS: 去问 example.com 权威服务器
LDNS -> example.com 权威服务器: 问 www.example.com
权威 -> LDNS: 203.0.113.10
LDNS -> 客户端: 203.0.113.10(并缓存)
三、DNS 记录类型¶
| 类型 | 作用 |
|---|---|
| A | 域名 → IPv4 |
| AAAA | 域名 → IPv6 |
| CNAME | 域名 → 另一个域名(别名) |
| MX | 邮件服务器 |
| NS | 指定域名服务器 |
| TXT | 文本记录(SPF、验证) |
四、TTL¶
每条 DNS 记录有 TTL(生存时间),过期后重新查。TTL 太长,改了 IP 生效慢;太短,DNS 压力大。
五、负载均衡¶
DNS 层负载均衡:一个域名配多个 A 记录,DNS 按策略返回不同 IP(轮询、就近)。这是最简单的负载均衡。
高频追问
- 递归 vs 迭代:客户端到 LDNS 是递归,LDNS 到各级服务器是迭代。
- CDN 利用 DNS 把用户调度到最近的节点。