DNS 转发是什么?递归解析、转发器和上游 DNS 有什么关系?
简化版
DNS 转发是本地 DNS 服务器不自己从根开始递归查询,而是把请求转给指定上游 DNS。企业内网常用 DNS 转发:内网域名自己解析,公网域名转给运营商 DNS、公共 DNS 或安全 DNS。递归解析器是“能帮客户端查完整答案的 DNS”,转发器是“把自己不会或不想查的请求交给上游”。转发可以统一策略、提升缓存命中、便于审计,但也会引入上游依赖。
详细版
常见配置逻辑:
*.corp.local -> 内网权威 DNS
其他域名 -> 转发到 10.0.0.53 / 8.8.8.8 / 1.1.1.1
DNS 转发的价值包括统一出口、集中缓存、访问控制、恶意域名拦截和跨网络解析。风险包括上游 DNS 故障导致解析失败、转发链过长增加延迟、错误转发造成内网域名泄露。面试回答时要区分:递归是解析能力,转发是查询策略;一个 DNS 服务器可以既做递归,也把部分请求转发给上游。
完整版教学
一、DNS 转发到底是什么
DNS 服务器收到查询后有两种处理方式:
- 自己递归查询,从根 DNS 开始一路问;
- 把查询转发给指定上游 DNS,让上游返回结果。
转发的简化链路:
客户端 -> 企业DNS -> 上游DNS -> 互联网DNS体系
客户端 <- 企业DNS <- 查询结果 <-
企业 DNS 对客户端来说仍然像递归解析器,但它内部可能选择转发,而不是自己完整递归。
二、为什么企业网络常用 DNS 转发
企业内网里,DNS 不只是解析工具,还承担治理能力:
- 内网服务解析,例如
api.corp.local; - 公网域名统一从指定出口查询;
- 缓存常用域名降低延迟;
- 对恶意域名、钓鱼域名做拦截;
- 记录解析日志,便于审计和排障。
如果每台机器都随意配置公共 DNS,内网域名可能解析不了,访问策略也无法统一。
三、条件转发和普通转发
普通转发是所有未知域名都转给同一个上游。条件转发是按域名后缀选择上游。
| 类型 | 规则示例 | 用途 |
|---|---|---|
| 普通转发 | . -> 公共 DNS | 所有公网域名统一转发 |
| 条件转发 | corp.local -> 内网 DNS | 特定内网域名走专用 DNS |
| 分区转发 | example.com -> 合作方 DNS | 跨组织专线或混合云 |
条件转发是很多混合云、跨机房、企业内网解析问题的关键。
四、转发和递归不是互斥关系
递归表示 DNS 服务器愿意为客户端查完整答案。转发表示它把查询交给上游的一种策略。
客户端视角: 企业DNS 是递归解析器
企业DNS内部: 对公网域名转发给上游
所以不要说“用了转发就不是递归 DNS”。更准确的说法是:它对客户端提供递归服务,但递归过程可能委托上游完成。
五、DNS 转发的风险
转发配置不当会带来问题:
- 上游不可用时解析失败;
- 转发链过长导致延迟升高;
- 内网域名被错误转发到公网 DNS,造成信息泄露;
- 不同上游缓存不一致,导致解析结果抖动;
- DNS 安全策略被绕过。
例如把 corp.local 错误转发到公网 DNS,公网虽然查不到真实记录,但查询日志可能暴露内部服务命名。
六、排查转发问题怎么做
排查 DNS 转发时可以按路径查:
客户端配置的 DNS 是谁
本地 DNS 是否命中内网 zone
是否触发条件转发
上游 DNS 是否可达
返回结果 TTL 和记录是否正确
常用命令:
nslookup api.corp.local 10.0.0.53
dig @10.0.0.53 www.example.com
dig +trace www.example.com
如果直接问上游能解析,但通过企业 DNS 失败,问题多半在转发规则、ACL、防火墙或缓存。
七、常见误区与追问
- 误区:DNS 转发就是 DNS 递归。 递归是对客户端提供完整查询,转发是把查询交给上游的策略。
- 误区:所有域名都应该转发到公共 DNS。 内网域名应由内网权威或条件转发处理,避免泄露和解析失败。
- 误区:转发一定比自己递归快。 转发可能命中上游缓存,也可能因链路、策略或上游故障变慢。
- 误区:转发器不需要缓存。 很多转发 DNS 仍会缓存返回结果,以降低延迟和上游压力。
- 追问:什么是条件转发? 按域名后缀把请求转给不同上游,例如内网域名走内网 DNS,公网域名走公共 DNS。
- 追问:内网域名解析失败怎么排查? 先看客户端 DNS 配置,再查本地 zone、条件转发、上游可达性和缓存。
八、加强记忆
DNS 转发就是“不会或不想自己查,就交给指定上游”。递归是服务能力,转发是查询策略。企业网络常用“内网域名自己解析,公网域名转发上游”的模式。好处是统一策略、缓存和审计;风险是上游依赖、延迟、内网域名泄露和配置错误。面试答题时把普通转发、条件转发、递归解析三者关系说清楚。