概览
本文将梳理在不同配置下,域服务器(Domain Controller, DC)及其客户端在进行 DNS 查询与网络访问时的请求走向及逻辑。
说明:本文假设 DNS 服务与域控制器(Domain Controller, DC)部署在同一台服务器上。如在实际环境中 DNS 部署于独立服务器(主机名 dns.hxx.tt
),请将文中涉及的 “域控制器” 理解为 “
”,其网络行为与逻辑基本一致。dns.hxx.tt
概念
什么是 DNS
Domain Name System
详见:https://www.cloudflare.com/.../what-is-dns
什么是 DDNS
Dynamic-DNS 本文或未涉及,旨在知识扩展。
详见:https://www.cloudflare.com/.../dynamic-dns
什么是 DoT/H
DNS-over-TLS 和 DNS-over-HTTPS 本文或未涉及,旨在知识扩展。
详见:https://www.cloudflare.com/.../dns-over-tls
什么是转发器
Forwarders
定义
转发器是指 DNS 服务器在 无法本地解析某个域名 时,会将请求转发给指定的上游 DNS 服务器来处理。
特点
- 是定向的,必须手动指定(如:114.114.114.114、8.8.8.8)。
- 一般用于企业防火墙内的 DNS,不直接访问外部互联网,而由统一的出口 DNS 服务器(如边界防火墙或运营商 DNS)进行解析。
- 更快:如果上游 DNS 缓存了答案,解析速度快。
- 更可控:便于审计和统一管理 DNS 流量。
什么是根提示
Root Hints
定义
根提示是一组 内置在 DNS 服务器中的根服务器列表(13 个),用于当 DNS 无法在本地解析时,自己递归地从根服务器开始查询整个 DNS 层级。
特点
- 默认启用,无需配置。
- 可以独立完成完整的递归解析过程,从根 → 顶级域(如 .com)→ 二级域 → 最终记录。
- 比转发器慢一些,因为它是从根一级一级查找。
- 若系统脱离互联网或被防火墙阻断访问根服务器,则根提示也会无效。
域控制器的 DNS 地址指向自己
如 127.0.0.1 或其本机 IP
情况 1:域控制器未安装 DNS 服务
-
域控制器自身:
- ❌ 无法解析 DNS 请求,因 127.0.0.1 指向自己但本地无 DNS 服务监听 53 端口。
- ❌ 浏览器等应用无法访问互联网(除非配置 HOSTS 文件或代理)。
-
客户端:
- ❌ 若 DNS 地址指向该 域控制器(如 10.0.0.1),但 域控制器 无 DNS 服务,则客户端 DNS 查询失败,无法加入域或访问互联网。
情况 2:域控制器安装 DNS 服务但保持默认(含根提示,无转发器)
-
域控制器自身:
- ✅ 使用 DNS 服务的根提示功能进行递归查询,解析公网域名成功。
-
客户端:
- ✅ DNS 请求发送至 域控制器,由 域控制器 DNS 服务通过根提示完成递归查询。
- ✅ 客户端可访问互联网。
情况 3:域控制器安装 DNS 服务并设置转发器(如 114.114.114.114、8.8.8.8)
-
域控制器自身:
- ✅ DNS Server 会优先使用配置的转发器解析请求。
- ✅ 能正常上网。
-
客户端:
- ✅ 请求经 域控制器 转发至上游 DNS,解析结果返回客户端。
- ✅ 正常访问互联网。
情况 4:安装 DNS 服务但清空根提示,且未配置转发器
-
域控制器自身:
- ❌ DNS Server 无根提示、无转发器,无法递归解析外网域名。
- ❌ 仅能解析本地 DNS 区域中的记录。
-
客户端:
- ❌ 请求送达 域控制器 DNS Server,但无法解析公网域名。
- ❌ 无法访问互联网。
域控制器的 DNS 地址指向外部
如 114.114.114.114
情况 1:域控制器未安装 DNS 服务
-
域控制器自身:
- ✅ 系统 DNS 设置会生效,可将 DNS 请求发送至 114.114.114.114。
- ✅ 可正常访问互联网。
-
客户端:
- ❌ 若 DNS 指向该 域控制器,但 域控制器 未安装 DNS 服务,客户端查询失败。
情况 2:安装 DNS 服务但保持默认(无转发器,有根提示)
-
域控制器自身:
- ✅ DNS Server 使用根提示进行递归解析。
- ⚠️ 不再使用系统设置的 114.114.114.114,因 dns.exe 接管了解析。
-
客户端:
- ✅ 请求由 域控制器 使用根提示查询,返回结果。
- ✅ 客户端可访问互联网。
情况 3:安装 DNS 服务并设置转发器
-
域控制器自身:
- ✅ dns.exe 接管本地解析,使用配置的转发器进行查询。
- ✅ 可访问互联网。
-
客户端:
- ✅ DNS 请求转发至上游,解析成功。
- ✅ 客户端正常上网。
情况 4:安装 DNS 服务但清空根提示、未设置转发器
-
域控制器自身:
- ❌ DNS Server 无法解析公网域名。
- ❌ 系统 DNS 设置(如 114.114.114.114)不会生效。
-
客户端:
- ❌ DNS 请求送达 域控制器 但无法解析外部域名。
- ❌ 无法访问互联网。
影响总结
配置场景 | 域控制器能上网 | 客户端能上网 |
---|---|---|
未安装 DNS,DNS 指向自己 | ❌ | ❌ |
安装 DNS,默认设置(有根提示) | ✅ | ✅ |
安装 DNS + 配置转发器 | ✅ | ✅ |
安装 DNS,清空根提示,无转发器 | ❌ | ❌ |
DNS 设置为 114,未安装 DNS | ✅ | ❌ |
DNS 设置为 114,安装 DNS 默认设置 | ✅ | ✅ |
DNS 设置为 114,安装 DNS + 转发器 | ✅ | ✅ |
DNS 设置为 114,DNS 清空根无转发器 | ❌ | ❌ |
理解要点
域控制器 DNS 查询优先级
- 安装 DNS 服务后,只有当本机的 DNS 设置指向自己(如 127.0.0.1 或本机 IP)时,DNS 服务才会处理本机发起的查询。
- 如果 DNS 设置为其他主机的 IP(如企业内部专用 DNS 服务器 10.0.16.1,或外部公共 DNS 服务商 8.8.8.8),查询请求将由这些设置的 DNS 地址处理,而不会通过本地的 DNS 服务。
客户端 DNS 查询请求逻辑
- 客户端只向设置的 DNS 地址发起请求(通常为 域控制器 IP)。
- 是否能解析成功,取决于 域控制器 DNS 的后续处理方式(转发 or 递归)。
验证排错
1. 使用 nslookup
确认 DNS 查询路径
nslookup www.baidu.com
- 查看 “服务器” 字段是否为预期 DNS 服务器(如本地 127.0.0.1 或域控 IP)。
- 查看是否返回非权威应答或权威应答。
2. 使用 netstat
检查 DNS 服务监听
netstat -ano | findstr :53
- 确保有进程(如
dns.exe
)在本机监听 53 端口。 - 使用以下命令确认进程:
tasklist /FI "PID eq <PID>"
3. 客户端 DNS 故障时排查流程
- 确认本地 DNS 设置指向域控 IP。
- 使用
nslookup
测试本地是否可解析常见域名。 - 若失败,检查域控是否安装 DNS 服务。
- 检查域控是否设置了转发器或保留根提示。
4. DNS 配置修改位置参考
- DNS 服务设置位置:
服务器管理器 > 工具 > DNS
- 转发器配置:
DNS 管理器 > 服务器属性 > 转发器
- 根提示设置:同上,
根提示
选项卡
DNS 查询路径图解
递归与转发
客户端 --> [域控 DNS] --查询内部记录--> 有结果 --> 返回客户端
|
|--无内部记录-->
| 若配置转发器 --> [上级 DNS: 114.114.114.114] --> 返回结果 --> 客户端
| 若启用根提示 --> [根 DNS] --> .com --> baidu.com --> 记录 --> 返回结果
| 若无根提示和转发器 --> 查询失败
本图说明:客户端发出 DNS 请求只与 DNS 地址有关,不处理后续过程;域控 DNS Server 决定是否自行解答、转发或使用根提示。
最终总结应用实践
- 域控制器 应始终安装 DNS 服务以服务客户端与自身解析。
- 域控制器 的 DNS 地址应指向自身(127.0.0.1 或本机 IP)。
- 保留根提示或配置转发器,确保能解析公网域名。
- 客户端只需配置 DNS 指向 域控制器,无需额外 DNS。
0 条评论