Windows Server 2022 DNS 服务器:正向/反向区域、转发器与老化清理
Windows Server 2022 DNS 服务器:正向/反向区域、转发器与老化清理
这是「Windows Server 2022 虚拟机学习实验」系列第 5 篇。DNS 是第 6 篇 AD 域的命根子——域控找不到 DNS,域就建不起来。先打快照:
DNS实验前。本篇图形界面为主:DNS 管理器(dnsmgmt.msc)就是为鼠标生的。
ping www.baidu.com 通,但
ping dc01.lab.local 不通?八成是 DNS 的问题。DNS
是所有网络服务里”配置 10 分钟、排错 10
小时”的代表,这篇把它的核心机制一次讲透。
一、安装 DNS 角色(图形界面)
🖱️ 图形界面做法:服务器管理器 → 管理 →
添加角色和功能 → 服务器角色勾选 DNS 服务器 →
一路下一步 → 安装。装完开始菜单搜 DNS 打开”DNS
管理器”(或 Win+R →
dnsmgmt.msc)。
💻 PowerShell
一行版:Install-WindowsFeature DNS -IncludeManagementTools
看到左侧树里本机服务器名 WS2022-LAB01
就算装好了。右键服务器名有个”配置 DNS
服务器”向导,可以直接点掉——我们手动配,学得更透。
二、正向查找区域:名字 → IP(图形界面)
正向区域解决”域名找 IP”。我们建一个实验域
lab.local:
🖱️ 图形界面做法: 1. DNS 管理器 → 展开服务器
→ 右键正向查找区域 →
新建区域,进入向导。 2.
区域类型选主要区域 → 下一步。 3. 区域名称填
lab.local → 下一步。 4. 区域文件:默认
lab.local.dns → 下一步。 5.
动态更新:选不允许动态更新(先手动玩;第 5
节再开)→ 下一步 → 完成。
🖱️ 新建 A 记录:右键 lab.local
→ 新建主机(A 或 AAAA): - 名称填
dc01,IP 地址填 192.168.100.11 →
添加主机。 - 不关窗口,继续加 fs01
→ 192.168.100.10,www →
192.168.100.10 → 完成后关闭。
🖱️ 新建 CNAME 别名:右键
lab.local → 新建别名(CNAME) → 别名
files,目标主机填
fs01.lab.local.(注意结尾的点)→ 确定。
💻 PowerShell 批量版:
Add-DnsServerPrimaryZone -Name "lab.local" -ZoneFile "lab.local.dns"
Add-DnsServerResourceRecordA -Name "dc01" -ZoneName "lab.local" -IPv4Address "192.168.100.11"
Add-DnsServerResourceRecordCName -Name "files" -ZoneName "lab.local" -HostNameAlias "fs01.lab.local."记录类型速查(记住前 4 个):
| 类型 | 作用 | 示例 |
|---|---|---|
| A | 域名 → IPv4 | dc01.lab.local → 192.168.100.11 |
| AAAA | 域名 → IPv6 | 同上,v6 地址 |
| CNAME | 别名 → 另一个域名 | files → fs01 |
| PTR | IP → 域名(反向) | 配合反向区域 |
| MX | 邮件交换 | 搭邮件服务器才用 |
| SRV | 服务定位 | AD 的命根子,第 6 篇见 |
| NS / SOA | 区域授权信息 | 自动生成 |
🖱️ 验证:DNS 管理器里右键服务器名 →
启动 nslookup?不,更直接:Win+R →
cmd →
nslookup dc01.lab.local 127.0.0.1,看到返回
192.168.100.11 就对了。
💡 为什么用
lab.local?.local是 mDNS 保留后缀,实验环境用它不会和公网冲突。微软现在推荐用你真实域名的子域(如lab.bosh.zz.ac),但实验环境lab.local最省事。
三、反向查找区域:IP → 名字(图形界面)
有些服务(邮件、SSH、排错)需要反查。
🖱️ 图形界面做法: 1.
右键反向查找区域 → 新建区域 →
主要区域 → 下一步。 2. 反向查找区域选 IPv4 →
网络 ID 填 192.168.100(自动生成
100.168.192.in-addr.arpa)→ 下一步。 3.
区域文件默认 → 动态更新”不允许”→ 完成。 4. 右键新建的
100.168.192.in-addr.arpa →
新建指针(PTR) → 主机 IP 填
11,浏览选 dc01.lab.local → 确定。
💻 PowerShell 版:
Add-DnsServerPrimaryZone -NetworkId "192.168.100.0/24" -ZoneFile "100.168.192.in-addr.arpa.dns"
Add-DnsServerResourceRecordPtr -Name "11" -ZoneName "100.168.192.in-addr.arpa" -PtrDomainName "dc01.lab.local."🖱️
验证:nslookup 192.168.100.11 127.0.0.1
应该返回 dc01.lab.local。
四、转发器 vs 条件转发器 vs 根提示(图形界面)
自建 DNS 只认识
lab.local,www.baidu.com
找谁问?三种”上网”方式:
| 方式 | 逻辑 | 适用 |
|---|---|---|
| 转发器 | 不认识的全扔给指定 DNS(如 8.8.8.8) | ✅ 实验/小企业,最常用 |
| 条件转发器 | 特定域扔给特定 DNS(如
partner.local → 对方 DNS) |
多分支/合作方互联 |
| 根提示 | 自己从根服务器迭代查下去 | 默认就有,慢但独立 |
🖱️ 图形界面做法: 1. 右键服务器名 →
属性 → 转发器选项卡 →
编辑 → 输入 223.5.5.5(阿里)→
回车 → 再加 8.8.8.8 → 确定 → 确定。 2.
条件转发器:右键条件转发器 →
新建条件转发器 → DNS 域填
partner.local,主服务器 IP 填
192.168.200.53 → 确定。
💻 PowerShell 版:
Set-DnsServerForwarder -IPAddress "223.5.5.5","8.8.8.8"
Add-DnsServerConditionalForwarderZone -Name "partner.local" -MasterServers "192.168.200.53"🖱️ 验证外网解析:先把本机网卡 DNS
指向自己(ncpa.cpl → 以太网 → 属性 → IPv4 → 首选
DNS 填 127.0.0.1,第 2 篇配过的话改一下),然后
nslookup www.baidu.com,能返回地址就行。
⚠️ 坑:配了转发器还解析不了外网,先确认 53 端口通:
Test-NetConnection 223.5.5.5 -Port 53。NAT 环境一般没问题,Host-Only 隔离网(第 1 篇)里本来就上不了外网,别在这上面浪费时间。
五、动态更新与老化清理:僵尸记录的终结者(图形界面)
DHCP 客户端上线会自动往 DNS 注册 A
记录,机器下线/改名后旧记录就成了僵尸。lab.local
里躺着 50 条早已不存在的记录,排错时能把人逼疯。
老化清理(Scavenging) 就是 DNS 的垃圾回收:
🖱️ 图形界面做法: 1. 右键
lab.local → 属性 →
常规 →
动态更新选安全和非安全(实验环境;AD
集成后选”仅安全”)。 2. 同一窗口点老化 →
勾选”清理过期的资源记录”: - 无刷新间隔:7 天(记录注册后 7
天内不允许刷新时间戳,防频繁写) - 刷新间隔:7 天(之后 7
天允许刷新,续命) - 7+7 天没人续命 → 下次清理时删除。 3.
右键服务器名 → 属性 →
高级选项卡 →
勾选启用自动清理过期的记录,清理周期 7 天 →
确定。 4. 想立刻看效果:右键服务器名 →
清理过期的资源记录。
时间线:注册 → [7天无刷新] → [7天可刷新] → 过期 → 清理删除。
💻
命令行版:Start-DnsServerScavenging -Force
💡 AD 集成区域(第 6 篇)的老化默认是开的,独立 DNS 默认没开。这就是为什么实验环境 DNS 越用越脏。
六、排错三板斧(图形界面+命令)
DNS 出问题按这个顺序查:
🖱️ 1. 本机 DNS 指向谁?
ncpa.cpl → 以太网 → 属性 → IPv4,看首选 DNS。或命令
Get-DnsClientServerAddress。
🖱️ 2. 目标记录在不在? DNS 管理器里直接展开
lab.local 看 A 记录在不在;或
nslookup dc01.lab.local 127.0.0.1。
🖱️ 3. 缓存里是不是脏数据? 右键服务器名 →
清除缓存;客户端
ipconfig /flushdns。
再不行开调试日志:🖱️ 右键服务器名 → 属性 → 调试日志记录选项卡 → 勾”查询/响应”,看看到底问了谁、谁没回。日志量巨大,开完记得关。
七、检查清单
八、下篇预告
第 6 篇《AD 域服务:第一台域控制器、OU
设计与批量建用户》:系列第一个大
Boss。把这台机器升成 lab.local
的域控,你会发现 DNS 里自动冒出一堆 SRV
记录——到时候就知道这篇为什么先讲 DNS 了。
🌐 —— Bosh,AD 域里 90% 的灵异事件,根因都是 DNS