
在企业 IT 基础架构里,Active Directory 域服务(AD DS)几乎是 Windows Server 生态的”中枢神经”——员工账号、电脑加入域、组策略下发、文件共享权限、企业 CA 证书,所有这些都依赖域控制器(DC)正常运转。而让 DC 正常工作的前提是 DNS 服务器,因为 AD DS 把域控制器的服务位置以 SRV 记录形式注册到 DNS 里,客户端和域成员要”找到”DC,必须先通过 DNS 解析。本文以 Windows Server 2022 为平台,完整演示 DNS 服务器的安装、主域控制器(PDC)的部署、辅助/额外域控制器(BDC)的添加,以及 AD 集成 DNS 区域的复制机制。本文所有 PowerShell 命令均直接引用自 Microsoft Learn 官方文档,版本号绑定 ADDSDeployment 模块,可放心用于生产环境。
一、整体规划与前提
在动手部署之前,先把整体规划讲清楚,避免后续返工。本文演示的是一个最常见的双 DC 部署场景:
- DC1(主域控制器 / PDC Emulator):192.168.10.11,Windows Server 2022 Datacenter,作为新林的第一台 DC,承担 PDC Emulator、RID Master、Infrastructure Master 等 FSMO 角色,同时安装并承载 DNS 服务器
- DC2(辅助域控制器 / 额外 DC):192.168.10.12,Windows Server 2022 Datacenter,作为副本域控制器加入现有域,提供冗余和读写负载分担
- 域名:contoso.local(内网测试林),Forest 级别与 Domain 级别都设为 Windows Server 2016(Windows Server 2022 默认支持到 2016 兼容级别,2022 林级别需手动指定)
- 客户端:任何能 ping 通两台 DC 的内网 PC,用于验证 DNS 解析和域加入
重要的前置条件:
- 两台 DC 都已配置静态 IP(切勿用 DHCP,因为 DC 自己就是 DNS,IP 必须在 DNS 解析中可被稳定查询)
- 两台 DC 的计算机名已改为永久名称(DC1 / DC2),并完成 Windows Update
- 两台 DC 的时间已同步(NTP),域内时间偏差超过 5 分钟会导致 Kerberos 认证失败
- 防火墙放通必要端口:53(DNS)、88(Kerberos)、135(RPC)、389(LDAP)、445(SMB)、3268(GC)、49152-65535(动态 RPC)
二、安装 DNS 服务器角色
虽然在后面部署主域时可以用 Install-ADDSForest 一并安装 DNS,但作为独立知识点,先把 DNS 角色单独安装的步骤讲清楚。后续在 DC2 上添加辅助域时,也会用到这个步骤。
在 DC1 和 DC2 上,分别用 PowerShell(管理员)执行:
Install-WindowsFeature -Name DNS -IncludeManagementTools
如果使用图形界面:服务器管理器 → 添加角色和功能 → 服务器角色 → 勾选「DNS 服务器」,一路下一步即可。
安装完成后,可以用以下命令验证 DNS 服务是否运行:
Get-Service DNS
如果 Status 显示 Running,DNS 服务已经正常启动。
三、部署主域控制器(DC1)
主域控制器的部署本质是”创建新林”。在 DC1 上以管理员身份打开 PowerShell,执行 Install-ADDSForest 命令(此 cmdlet 来自 ADDSDeployment 模块,Windows Server 2022 默认已安装):
Install-ADDSForest `
-DomainName "contoso.local" `
-DomainNetBIOSName "CONTOSO" `
-InstallDns `
-CreateDnsDelegation:$false `
-ForestMode "WinThreshold" `
-DomainMode "WinThreshold" `
-DatabasePath "D:NTDS" `
-SysvolPath "D:SYSVOL" `
-LogPath "E:Logs" `
-NoRebootOnCompletion:$false `
-Force
参数详解(参考自 Microsoft Learn 官方语法):
- -DomainName:林根域名,这里是 contoso.local。生产环境建议使用真实公网域名的子域(如 corp.example.com),避免 .local 带来多播解析问题
- -DomainNetBIOSName:NetBIOS 兼容名,老旧应用会用到,默认取域名最左侧标签
- -InstallDns:同时安装 DNS 服务器角色,这是 AD DS 的强制要求,否则 AD 无法注册 SRV 记录
- -CreateDnsDelegation:是否在父域创建 DNS 委派。如果是在内网独立建林,设为 $false;如果是在已有 DNS 区域下挂子域,设为 $true
- -ForestMode / -DomainMode:林/域功能级别。WinThreshold 表示当前 Windows Server 2022 支持的最高级别,后续加入的 DC 也必须满足这个最低版本要求
- -DatabasePath / -SysvolPath / -LogPath:AD 数据库、SYSVOL 共享、日志文件的存放路径。生产环境强烈建议放到非系统盘,避免 C 盘写满导致 AD 故障
- -SafeModeAdministratorPassword:目录服务还原模式(DSRM)密码,务必记录下来,用于灾难恢复。这里没写会在交互提示中输入
执行该命令后,系统会提示输入 DSRM 密码并确认,之后自动开始安装 AD DS、安装 DNS、配置 SYSVOL。安装完成后机器会自动重启。
重启后用域管理员账号 CONTOSOAdministrator 登录,打开 DNS 管理器(dnsmgmt.msc),应该能看到正向查找区域下自动创建了以下 AD 集成区域:
- contoso.local:域主区域
- _msdcs.contoso.local:DC 定位用的 SRV 记录所在区域
- ForestDnsZones.contoso.local:林级 DNS 应用分区
- DomainDnsZones.contoso.local:域级 DNS 应用分区
展开 _msdcs.contoso.local → dc → _tcp → _ldap,能看到自动注册的 SRV 记录(类似 _ldap._tcp.dc._msdcs.contoso.local 指向 dc1.contoso.local),证明 DNS 与 AD DS 集成正常。
四、添加辅助/额外域控制器(DC2)
DC2 的角色是”加入现有域的副本域控制器”,这台机器在提升之前,需要先把它指向 DC1 的 DNS,确保能找到 contoso.local 域。
步骤 1:配置 DC2 的网络与 DNS
在 DC2 上把首选 DNS 指向 DC1(192.168.10.11),备用 DNS 可以留空或指向其他公网 DNS(注意:备用 DNS 不能指向自身未提升的 127.0.0.1,会陷入解析死循环)。
Set-DnsClientServerAddress -InterfaceAlias "Ethernet" -ServerAddresses 192.168.10.11
验证 DNS 解析:
nslookup contoso.local 192.168.10.11
nslookup -type=SRV _ldap._tcp.dc._msdcs.contoso.local 192.168.10.11
能正常返回结果,说明 DC1 的 DNS 已经接管 contoso.local 区域的解析。
步骤 2:加入现有域
DC2 在提升为 DC 之前,需要先加入 contoso.local 域(也可以跳过,直接在提升时让 cmdlet 自动加入)。如果想手动加入:
Add-Computer -DomainName "contoso.local" -Credential (Get-Credential) -Restart -Force
(Get-Credential) 会弹出对话框,输入 CONTOSOAdministrator 和密码。完成后重启,使用域账号登录。
步骤 3:提升为副本域控制器
这是最关键的一步——把 DC2 提升为额外 DC,安装 AD DS 和 DNS。在 DC2 上以域管理员身份执行:
Install-ADDSDomainController `
-DomainName "contoso.local" `
-SiteName "Default-First-Site-Name" `
-InstallDns `
-CreateDnsDelegation:$false `
-DatabasePath "D:NTDS" `
-SysvolPath "D:SYSVOL" `
-LogPath "E:Logs" `
-ReplicationSourceDC "DC1.contoso.local" `
-NoRebootOnCompletion:$false `
-Force
关键参数:
👉 Windows Server 企业级部署工具精选
收录 Windows Server 2022/2019 各版本镜像、AD DS 工具集、组策略模板、DNS 诊断工具等企业 IT 基础设施资源。
- -SiteName:站点名,默认是 Default-First-Site-Name。多站点部署时需指定对应的 AD 站点
- -ReplicationSourceDC:复制源 DC,显式指定 DC1.contoso.local 可以避免提升时自动选择源带来的不确定性
- -SafeModeAdministratorPassword:DSRM 密码,必须与 DC1 保持一致,用于日后跨 DC 的 SYSVOL 修复和权威还原
执行后会提示输入 DSRM 密码,完成后自动重启。
步骤 4:验证复制状态
重启后用域账号登录 DC2,运行以下命令检查复制情况:
repadmin /replsummary
repadmin /showrepl
repadmin /syncall /APed
第一条汇总复制统计;第二条显示每个命名上下文的复制伙伴状态;第三条强制全量同步。如果出现错误(常见 1311、1865、1864),说明复制链路有问题,需要先排查。
同时打开 DNS 管理器(dnsmgmt.msc)连接 DC2,确认 _msdcs.contoso.local 区域的 SRV 记录已经从 DC1 同步过来,可以看到 dc2.contoso.local 的 _ldap / _kerberos 记录。
五、AD 集成 DNS 的复制机制
这里需要单独讲清楚”AD 集成 DNS 区域”和传统”主/辅 DNS 区域”的本质区别,避免误用。
传统 DNS 中,主 DNS(primary zone)的数据存储在主 DNS 服务器的文本文件里,辅助 DNS(secondary zone)通过 AXFR/IXFR 区域传输从主 DNS 拉取数据。这套机制在 Windows Server DNS 服务里依然存在(右键新建区域可以看到”主要区域””辅助区域””存根区域”三种类型),但 AD DS 部署中默认不使用。
AD 集成 DNS(Active Directory-Integrated DNS)则完全不同。区域数据直接存储在 AD 数据库的应用分区里,具体包括两个专用分区(参考 Microsoft Learn 官方说明):
- ForestDnsZones:林级分区,所有域共用的 DNS 区域(如 ForestDnsZones.contoso.local)
- DomainDnsZones:域级分区,每个域单独一份(如 DomainDnsZones.contoso.local)
数据写入后,会通过 AD 复制机制自动同步到林中所有 DC。这意味着:
- 不需要单独配置”主 DNS / 辅助 DNS”和 AXFR/IXFR
- DNS 区域数据与 AD 数据库天然一致,不会出现 DNS 记录和 AD 对象错位
- 支持安全动态更新(Secure Dynamic Updates),只有经过 Kerberos 认证的域成员才能注册自己的 A 记录,杜绝非法抢占 IP
- 每台 DC 都是权威 DNS,任意一台宕机,其他 DC 都能继续响应 DNS 查询
因此,只要主域和辅助域都启用了”AD 集成 DNS”,DNS 数据就是”自动同步”的,不需要像传统 BIND 那样手动配置主/辅关系。但如果有特殊需求(比如把 DNS 区域委派给第三方 DNS 服务器),可以在 DNS 管理器里把区域类型从”AD 集成”改为”标准主要区域”,手动建立辅助区域和区域传输。
六、客户端验证与常见故障排查
客户端验证步骤:
- 把客户端 PC 的 DNS 指向 192.168.10.11 和 192.168.10.12(任一即可)
- nslookup contoso.local —— 应能返回 DC 的 A 记录
- nslookup -type=SRV _ldap._tcp.dc._msdcs.contoso.local —— 应能列出所有 DC
- 把客户端加入域:设置 → 系统 → 关于 → 重命名这台电脑 → 域,输入 contoso.local,输入域管理员凭据,重启后生效
- 登录后用 whoami /upn 验证账户所在域
常见故障 1:客户端找不到 DC,提示”找不到网络路径”
原因通常是 DNS 没正确指向。先用 nslookup 测试,确认 DNS 客户端指向的 IP 正确;再检查 _msdcs 区域的 SRV 记录是否存在。如果 _msdcs 区域为空,说明 Netlogon 服务没有正确启动,在 DC 上 net start netlogon 后等待 15 分钟让 SRV 记录重新注册。
常见故障 2:复制失败,提示事件 ID 1865(复制延迟过大)
原因通常是两台 DC 的时间不同步(超过 5 分钟触发 Kerberos 保护)。在两台 DC 上执行 w32tm /resync /force 强制同步,然后再尝试 repadmin /syncall。
常见故障 3:辅助 DC 提升失败,提示”找不到具有域名控制器 DNS 名称的域控制器”
原因通常是辅助 DC 的 DNS 没指向主 DC,或者防火墙没放通必要的 RPC 端口。检查 ipconfig /all 确认 DNS 设置,再检查两台 DC 之间的防火墙策略(尤其是 ICMPv4 和 TCP 135/389/445/49152-65535)。
常见故障 4:Web 登录提示”无法联系域控制器”
检查 KDC 服务(TCP/88)、LDAP 服务(TCP/389)是否在防火墙放通。同时用 nltest /dsgetdc:contoso.local 验证 DC 的发现是否正常。
七、生产环境最佳实践
1. 每台 DC 都装 DNS。即使你打算做 DNS 集中管理,也建议每台 DC 都装 DNS 服务,通过 AD 复制天然实现高可用,不必额外搞 DNS 集群。
2. 使用专用站点和子网。多机房/多办公区部署时,通过 Active Directory 站点和服务(dssite.msc)定义子网与站点对应关系,可以让客户端优先连接本机房的 DC,降低跨广域网延迟。
3. 定期备份 SYSVOL 和 AD 数据库。使用 Windows Server Backup 做系统状态备份,或者用第三方备份工具定期快照 SYSVOL 共享所在分区,灾难时才能快速权威还原。
4. 监控复制健康。通过 repadmin /replsummary 定期巡检(建议设为每日任务),第一时间发现复制失败。可以把结果通过邮件/IM 告警,接入 Zabbix 或 SCOM。
5. 妥善保管 DSRM 密码。DSRM 密码不要与域管理员密码相同,生产环境建议 25 位以上复杂密码,定期更换并记录在加密保管库中。
八、总结
Windows Server 2022 部署 DNS 主域和辅助域,核心思路是:用 Install-ADDSForest 在 DC1 上创建新林并自动集成 DNS,用 Install-ADDSDomainController 在 DC2 上加入现有域并安装 DNS。两台 DC 的 DNS 数据通过 AD 复制天然同步,无需额外配置主/辅区域传输。本文所有命令均出自 Microsoft Learn 官方 ADDSDeployment 模块文档,生产环境可直接复制使用。
双 DC 是企业 AD 部署的最小可靠单元。理解了 DNS 角色安装、新林创建、副本提升、AD 集成复制这四个核心步骤,后续无论是扩展到三 DC、四 DC,还是搭建多站点/多林架构,都可以在这套基础上平滑演进。
如果你正在学习 Windows Server 企业级部署,或者希望系统掌握 DNS、AD DS、组策略、企业 CA 等基础设施的实战方案,推荐你持续关注 IT 峰哥软件库,获取更多企业 IT 基础设施的实战资源与配置手册。
更多企业级 Windows Server 部署资源与运维工具,欢迎访问 IT峰哥软件库 获取精选资源包。
🚀 IT峰哥软件库
国内领先的一站式IT软件资源下载平台,收录超十万款软件资源,覆盖操作系统、办公软件、开发工具、系统工具、安全防护、数据恢复等20余大类。
🛡️ 安全可靠 · 每日更新
所有资源经过严格安全检测,绿色无毒,提供 免注册版 · 绿色版 · 激活版 · 简体中文版 等多种版本选择。每日更新!