Windows Server 2025 / 安装 DNS 并创建区域与记录

在 Windows Server 2025 中安装域名系统(DNS,Domain Name System)服务器角色、创建主区域并添加所需记录,即可练习内部名称解析。本实验在 DC1 提升为域控制器之前使用 lab.example.test,与后续的 Active Directory 域区域 ad.example.test 分开。

检查现有数据与实验网络

DC1 使用 172.24.50.10/24,FS1 使用 172.24.50.20/24,二者与 CLIENT1 必须位于同一隔离网络。/24 对应子网掩码 255.255.255.0。创建之前先检查现有区域和记录,不要覆盖业务数据;如果已有值正确的实验对象,应检查并跳过重复创建,发现冲突则先查清原因。

  • 确认 DC1 的静态地址,以及具有管理员权限的账户。
  • 将 lab.example.test 用于练习,将 ad.example.test 留给域配置。
  • 确认 FS1 的实际地址,避免同名记录出现冲突值。
  • 查询这些内部记录不需要外部名称解析。

安装 DNS 与管理工具

在 DC1 上选择“以管理员身份运行”打开 Windows PowerShell。下面的命令作用于本地服务器,不要在 CLIENT1 上执行角色安装。查看安装结果中的 Success 和 RestartNeeded,如有重启要求,先处理再继续。随后查询应显示 DNS 角色为 Installed,DNS 服务为 Running:

Install-WindowsFeature -Name DNS -IncludeManagementTools
Get-WindowsFeature -Name DNS
Get-Service -Name DNS

也可以使用“服务器管理器 → 管理 → 添加角色和功能”,选择“基于角色或基于功能的安装”,确认目标是 DC1,选择“DNS 服务器”,检查所需工具后安装。Microsoft 的 DNS 安装指南介绍了向导。安装后用 dnsmgmt.msc 打开 DNS 管理器,确认连接到 DC1。Server Core 应使用 PowerShell,或从已准备好的管理电脑通过 DNS 管理器远程管理;-IncludeManagementTools 不会把 Core 变成桌面安装。

创建实验主区域和主机记录

  1. 在连接到 DC1 的 DNS 管理器中,右键单击“正向查找区域”,选择“新建区域”。
  2. 选择主区域(Primary zone)。Active Directory 存储要求服务器是具有 DNS 角色的域控制器,在尚未提升的 DC1 上不可用。
  3. 输入 lab.example.test,创建新的区域文件 lab.example.test.dns,不要使用现有业务区域文件。
  4. 选择“不允许动态更新”,完成向导。域的安全动态更新在其他配置阶段处理。
  5. 在 lab.example.test 中选择“新建主机(A 或 AAAA)”,输入 fs1 与 172.24.50.20,单击“添加主机”。反向指针 PTR 留到反向区域准备好后再创建。

下面的代码是在 DC1 上通过 PowerShell 创建区域的替代方法,仅在 lab.example.test 尚不存在时使用。图形界面与代码选一种创建方式即可。如果已经用向导创建区域和 fs1,请跳过两行 Add,只运行最后的查询检查。-ZoneFile 使用文件存储区域,-DynamicUpdate None 则禁止这个手工实验区域的动态更新;不要把这一选择直接当成域区域的通用策略。DNS 区域管理文档说明了存储选项:

Add-DnsServerPrimaryZone -Name 'lab.example.test' -ZoneFile 'lab.example.test.dns' -DynamicUpdate None
Add-DnsServerResourceRecordA -ZoneName 'lab.example.test' -Name 'fs1' -IPv4Address 172.24.50.20
Get-DnsServerResourceRecord -ZoneName 'lab.example.test' -Name 'fs1'

添加反向区域与别名

本实验的反向查找区域对应 172.24.50.0/24,名称为 50.24.172.in-addr.arpa。先检查是否已有覆盖该范围的区域,以及其他服务是否依赖其中记录。向导接收正常顺序的网络 ID 172.24.50,再生成反向区域名称:

  1. 在“反向查找区域”下选择“新建区域”,创建基于文件的主区域。本实验尚未将 DC1 提升为域控制器,因此不选择 Active Directory 存储。
  2. 选择 IPv4 反向查找区域,输入网络 ID 172.24.50,核对生成名称为 50.24.172.in-addr.arpa。
  3. 创建新的区域文件,保留该区域建议的文件名,选择“不允许动态更新”,完成向导。
  4. 在新反向区域中选择“新建指针(PTR)”,补齐地址的最后一段 20,确认完整地址 172.24.50.20,主机名填写 fs1.lab.example.test。确认尚无正确的现有记录后再保存。
  5. 在 lab.example.test 中选择“新建别名(CNAME)”,别名输入 portal,目标完整名称输入 fs1.lab.example.test,而不是 IP 地址,然后保存。
  6. 分别检查 fs1 的 A、portal 的 CNAME 与 .20 的 PTR 值,再执行客户端查询。

CNAME 别名在这里仅用于验证名称解析,不会自动配置网站或文件共享访问。PTR 是从地址指向主机名称的记录,自动创建 PTR 同样需要合适的反向区域。如果之前已生成正确记录,应检查而不是重复添加。DNS 记录管理指南说明了各个字段,DNS 区域与记录类型基础解释了它们的区别。

从客户端验证三种查询

在 CLIENT1 打开 PowerShell,通过 -Server 172.24.50.10 明确查询 DC1 的 DNS,暂时不必修改网卡的默认解析器。下面三条命令分别检查地址记录 A、别名 CNAME 和反向关系 PTR:

Resolve-DnsName 'fs1.lab.example.test' -Type A -Server 172.24.50.10
Resolve-DnsName 'portal.lab.example.test' -Type CNAME -Server 172.24.50.10
Resolve-DnsName '172.24.50.20' -Type PTR -Server 172.24.50.10

A 响应应包含 172.24.50.20,CNAME 应指出目标 fs1.lab.example.test,PTR 应返回这个主机名。名称末尾的点可能表示 DNS 根,并非另一台计算机。超时时,检查 DNS 是否为 Running、是否侦听 .10,以及隔离网络中是否可达。名称错误则检查拼写、区域、类型和值。DNS 使用 UDP(用户数据报协议,User Datagram Protocol)和 TCP(传输控制协议,Transmission Control Protocol)的 53 端口,单独的 TCP 测试不能验证所有查询路径。检查适用防火墙规则的配置文件与范围,不要关闭防火墙;DNS 服务器排错指南有助于区分原因。

要比较可恢复的修改,先记下自己刚创建的 CNAME portal 的目标。在 lab.example.test 中仅删除这个实验别名,对 .10 重复 CNAME 查询,再以 fs1.lab.example.test 为目标重新创建并再次查询。旧响应或否定响应可能仍在缓存中,应结合生存时间(TTL,Time to Live)判断结果。不要删除 Active Directory 服务记录,也不要为了清理本练习而卸载 DNS。检查依赖关系后,再决定保留或移除实验区域;反向区域也可能被其他记录共用。