权威 DNS 和递归 DNS 有什么区别?浏览器解析域名时分别扮演什么角色?
简化版
递归 DNS 负责替客户端一路查询并缓存结果,权威 DNS 负责保存某个域名区域的最终记录。用户通常把 DNS 请求发给本地递归解析器,例如运营商 DNS、公共 DNS 或公司内网 DNS;递归解析器再去问根、顶级域、权威 DNS。权威 DNS 不负责替所有用户递归查询,它只回答自己负责区域的数据,例如 example.com 的 A、AAAA、CNAME、MX 等记录。
详细版
DNS 解析链路里常见角色:
| 角色 | 作用 |
|---|---|
| Stub Resolver | 操作系统或应用里的轻量解析器 |
| Recursive Resolver | 递归解析器,替客户端查询并缓存 |
| Root Server | 根服务器,告诉顶级域服务器在哪里 |
| TLD Server | 顶级域服务器,例如 .com |
| Authoritative Server | 权威服务器,返回域名最终记录 |
用户问递归 DNS:“www.example.com 的 IP 是什么?”递归 DNS 如果缓存没有命中,就依次问根、TLD、权威 DNS,最后把结果返回给用户并按 TTL 缓存。
完整版教学
一、先分清“帮你查”和“掌握答案”
递归 DNS 像代办员,帮客户端把查询跑完;权威 DNS 像档案室,掌握某个域名区域的真实记录。
客户端 -> 递归DNS -> 根DNS -> TLD DNS -> 权威DNS
客户端 <- 递归DNS <- 最终记录 <-
客户端通常不会自己一步步问根和权威服务器,而是把查询交给递归解析器。递归解析器负责缓存、重试、选择链路和返回答案。
二、递归 DNS 的职责
递归 DNS 的主要工作:
- 接收客户端查询;
- 检查本地缓存;
- 缓存未命中时迭代查询上游 DNS;
- 按 TTL 缓存结果;
- 返回最终答案或错误。
常见递归 DNS 包括运营商 DNS、企业内网 DNS、公共 DNS。它离用户越近,缓存命中时延迟通常越低。
递归 DNS 面向“使用域名的人”,权威 DNS 面向“管理域名的人”。
三、权威 DNS 的职责
权威 DNS 保存某个 zone 的权威记录。例如你购买了 example.com,配置了:
www.example.com. 300 IN A 203.0.113.10
mail.example.com. 300 IN MX 10 mail.example.com.
api.example.com. 300 IN CNAME lb.example.net.
这些记录由该域名的权威 DNS 对外回答。权威 DNS 不需要替普通用户递归查询其他域名,它只对自己负责的区域给出权威答案。
四、一次完整查询怎么走
以 www.example.com 为例:
1. 客户端问递归DNS:www.example.com 是什么 IP?
2. 递归DNS问根:.com 的服务器在哪?
3. 根返回 .com TLD 服务器地址
4. 递归DNS问 .com:example.com 的权威DNS在哪?
5. TLD 返回 example.com 权威DNS
6. 递归DNS问权威DNS:www.example.com 的 A 记录?
7. 权威DNS返回记录
8. 递归DNS返回给客户端,并按 TTL 缓存
如果中间任何一级已有缓存,流程会变短。
五、为什么企业会自建递归 DNS
企业内网常自建递归 DNS,原因包括:
- 解析内网域名,例如
service.internal; - 做访问控制和审计;
- 缓存常用域名降低延迟;
- 配合 split-horizon DNS 返回内外不同地址;
- 统一出口 DNS 策略。
但递归 DNS 暴露到公网且配置不当,可能被滥用做 DNS 放大攻击,所以开放递归要非常谨慎。
六、为什么权威 DNS 要重视可用性
权威 DNS 如果不可用,递归解析器在缓存过期后无法拿到新记录,域名解析就会失败。权威 DNS 通常需要:
- 多地域部署;
- 多 NS 记录;
- 合理 TTL;
- DDoS 防护;
- 变更审计和灰度。
云 DNS、CDN DNS 和 Anycast DNS 的很多设计,本质上都是为了提高权威解析的可用性和访问速度。
七、常见误区与追问
- 误区:递归 DNS 和权威 DNS 是同一种角色。 递归 DNS 负责帮客户端查询,权威 DNS 负责回答自己管理区域的真实记录。
- 误区:客户端一定直接问权威 DNS。 普通客户端通常问递归 DNS,由递归 DNS 代查。
- 误区:权威 DNS 会缓存所有互联网域名。 权威 DNS 只负责自己授权的 zone。
- 误区:递归 DNS 不会缓存。 递归 DNS 会按 TTL 缓存结果,提高解析速度并降低上游压力。
- 追问:根 DNS 返回最终 IP 吗? 通常不返回最终业务 IP,而是返回下一层 TLD 服务器信息。
- 追问:为什么开放递归有风险? 公网开放递归可能被攻击者利用做 DNS 放大攻击或绕过策略控制。
八、加强记忆
递归 DNS 是“帮用户查”,权威 DNS 是“掌握域名记录”。完整链路是客户端问递归,递归按根、TLD、权威逐级查询,拿到记录后按 TTL 缓存。面试时把 Stub Resolver、Recursive Resolver、Root、TLD、Authoritative 五个角色串起来,再补充企业内网 DNS 和开放递归风险,就能答得很完整。