windows server 2016+ ad集成dns中,dns策略通过客户端子网匹配+响应操作(如返回指定a记录)实现访问重定向,不创建传统dns记录;需powershell配置子网、策略及启用ad集成正向区域。
在 ad 环境中,dns 策略(dns policy)本身不直接创建“记录”,而是通过条件匹配 + 响应操作,实现按客户端位置、时间、设备类型等动态控制解析结果——包括重定向。真正承载重定向逻辑的,是策略中关联的 响应操作(response action),比如返回特定 ip(a/aaaa 记录)、cname 或 nxdomain,而非传统意义上的“添加一条 dns 记录”。
明确策略适用前提
DNS 策略功能仅在 Windows Server 2016 及更高版本的 DNS 服务器上可用,且要求:
- DNS 服务器必须是域控制器或已加入域,并启用 AD 集成区域(非文件区域);
- 策略配置需使用 PowerShell(Windows Admin Center 和 DNS 管理器不支持策略创建);
- 目标区域必须已存在且为正向查找区域(如 contoso.com),策略作用于该区域范围。
按地理位置实现重定向的核心步骤
典型场景:将来自北京办公网段的用户访问 www.contoso.com 解析到本地 CDN 节点 10.1.1.100,其他地区仍解析到公网 IP 203.0.113.50。
免费 DNS 与邮件安全分析(IntoDNS.ai):包括 DNSSEC、SPF、DKIM、DMARC、MTA-STS、BIMI、SMTP STARTTLS、FCrDNS、黑名单、发件人要求及报告。
-
1. 定义客户端子网:
使用Add-DnsServerClientSubnet创建子网对象,例如:Add-DnsServerClientSubnet -Name "Beijing-Office" -IPv4Subnet "172.16.10.0/24" -
2. 创建 DNS 策略:
用Add-DnsServerQueryResolutionPolicy绑定子网与响应行为:Add-DnsServerQueryResolutionPolicy -Name "Beijing-Redirect-WWW" -Action ALLOW -ClientSubnet "Beijing-Office" -ZoneName "contoso.com" -FQDN "www.contoso.com." -Answer "10.1.1.100" -
3. 确保基础解析存在:
策略不会替代区域数据,必须保证 contoso.com 区域中已有 www 的 A 记录(如 203.0.113.50)作为默认应答;策略仅在匹配时覆盖该应答。
按时间或设备类型做重定向的变通方式
DNS 策略原生支持基于时间(-TimeOfDay)和基于设备类别(-DeviceCategory)的条件,但“重定向”效果需结合响应动作理解:
- 时间调度:可设置夜间策略返回维护页 IP(如 192.168.99.10),白天返回生产服务器 IP;
-
设备区分:对移动设备(
Mobile)返回精简版 Web 服务地址(CNAME 到 m.contoso.com),桌面设备保持原解析; - 注意:DNS 层无法实现 HTTP 301/302 跳转,所谓“重定向”本质是返回不同目标地址,由客户端自行连接——真正的网页跳转需由 Web 服务器(如 IIS/Apache)完成。
验证与排错要点
策略生效后,不能仅靠 nslookup 测试,因为其默认不携带源 IP 子网信息:
- 用
Resolve-DnsName -Server dc1.contoso.com -Name www.contoso.com -ClientIP 172.16.10.5模拟指定客户端 IP 查询; - 检查策略是否启用:
Get-DnsServerQueryResolutionPolicy -ZoneName "contoso.com"; - 若无响应,确认 DNS 服务器系统时间准确(时间策略依赖 NTP 同步);
- 确保策略中 FQDN 末尾带英文句点(如
"www.contoso.com."),否则可能匹配失败。










