DNS策略概述
01/05/2021
正文内容
如果适用: Windows Server 2022、Windows Server 2019、Windows Server 2016
本主题介绍作为Windows Server 2016的DNS策略。 您可以使用DNS策略管理基于地理位置的流量、基于一天中时间的智能DNS响应、管理为分区部署配置的单个DNS服务器以及将过滤器应用于DNS查询。 有关这些功能的详细信息,请参见:
平衡APP应用程序的负载。 在不同位置部署多个APP应用程序实例后,可以使用DNS策略平衡不同APP应用程序实例之间的流量负载,并动态分配APP应用程序的流量负载。
-基于地理位置的流量管理。 使用DNS策略,主DNS服务器和从属DNS服务器可以根据客户端和客户端尝试连接的资源的地理位置响应DNS客户端查询,并提供最接近客户端的资源的IP地址
分割的Brain DNS。 使用分区DNS时,DNS记录被划分到同一DNS服务器上的不同区域范围,DNS客户端根据客户端是内部客户端还是外部客户端进行接收-响应。 在独立DNS服务器上,可以为- Active Directory集成区域或区域配置分区DNS。
过滤。 可以将DNS策略配置为根据指定的条件创建查询筛选器。 使用DNS策略查询过滤器,可以将DNS服务器配置为以自定义方式响应发送DNS查询的DNS查询和DNS客户端。
取证。 您可以使用DNS策略重定向到不存在的IP地址,而不是重定向到尝试访问恶意DNS客户端的计算机。
根据一天的时间进行重定向。 DNS策略允许通过基于一天中时间的DNS策略在APP应用程序的地理上分散的实例之间分配APP应用程序通信量。
新概念
要创建支持上述方案的策略,必须能够识别区域中的记录组、网络上的客户端组和其他元素。 这些元素由以下新的DNS对象表示:
客户机子网:客户机子网对象表示将查询发送到DNS服务器的IPv4或IPv6子网。 可以创建子网,以便稍后根据发出请求的子网定义要应用的策略。 例如,分区DNS方法可以使用内部子网客户端的内部IP地址和外部子网客户端的不同IP地址来响应名称解析请求,如www.microsoft.com。
递归范围:递归范围是控制DNS服务器上递归的一组设置的唯一实例。 递归范围包含转发器列表,用于指定是否启用递归。 DNS服务器可以有很多递归作用域。 DNS服务器递归策略允许您选择一组查询的递归范围。 如果DNS服务器对特定查询不具有权限,则DNS服务器递归策略允许您控制查询的解决方法。 可以指定是否使用要使用的转发器和递归。
区域—DNS区域可以具有多个区域范围,每个区域范围都包含自己的一组DNS记录。 同一记录可以存在于多个范围中并且具有不同的IP地址。 此外,区域传输可以在区域范围级别完成。 也就是说,主区域中区域范围内的记录将转发到子区域中的同一区域范围。
策略类型
DNS策略按级别和类型分类。 您可以使用查询解析策略定义查询的处理方式,使用区域传输策略定义区域传输的发生方式。 每个策略类型都可以在服务器级别或区域级别应用。
查询解析策略
您可以使用DNS查询解析策略指定DNS服务器如何处理传入解析查询。 每个DNS查询解析策略都包含以下元素:
字段
说明
可能的值
名字
策略名称
-最多256个字符
-文件名可以包含有效的任何字符
状态
策略状态
-启用(默认)
-无效
水平
策略级别
-服务器
-区域
处理顺序
在按级别分类应用查询时,服务会搜索查询满足条件的第一个策略并将其应用于查询
-数值
-每个策略的唯一值。 包含相同的级别,并应用于值
操作
DNS服务器执行的操作
- (级别设置,允许默认值)
在()等级为“拒绝”) )。
-无视
条件
策略(AND/OR )和应用策略时必须满足的条件列表
-条件运算符(AND/OR )。
-条件列表(请参考以下条件)
范围
各范围的范围和加权值的列表。 加权值用于负载均衡分布。 例如,如果此列表包含权重为3的数据中心1和权重为5的数据中心2,服务器将响应来自数据中心1的八个请求中的三次记录
-按名称和权重(区域)列表
备注
服务器
级别策略只能将" 拒绝 "或" 忽略" 值作为操作。DNS 策略条件字段由两个元素组成:
名称
说明
示例值
客户端子网
预定义客户端子网的名称。 用于验证从其中发送查询的子网。
- EQ、西班牙、法国 - 如果子网被标识为西班牙或法国,则解析为 true
- NE、Canada、Mexico - 如果客户端子网是除加拿大和墨西哥外的任何子网,则解析为 true
传输协议
查询中使用的传输协议。 可能的条目为 UDP 和 TCP
- EQ,TCP
- EQ、UDP
Internet 协议
查询中使用的网络协议。 可能的条目为 IPv4 和 IPv6
- EQ、IPv4
- EQ、IPv6
服务器接口 IP 地址
传入 DNS 服务器网络接口的 IP 地址
- EQ,10.0.0.1
- EQ、192.168.1。1
FQDN
查询中记录的 FQDN,可能使用通配符
- EQ、www .com -仅当查询尝试解析 www.contoso.com FQDN 时,解析为 true
- EQ、 * . contoso.com、 * . woodgrove.com -如果查询用于以 * contoso.com *或woodgrove.com 结尾的任何记录,则解析为 true。
查询类型
(,SRV,TXT) 查询的记录类型
- EQ,TXT,SRV -如果查询请求 TXT 或 SRV 记录,则解析为 true
- EQ、MX -如果查询请求 MX 记录,则解析为 true
当天的时间
接收查询的时间
- EQ,10: 00-12:00,22: 00-23: 00 -解析为 true (如果在上午10点到中午之间, 或 在10PM 和晚上11点之间接收查询)
使用上述表格作为起点,下表可用于定义一个条件,该条件用于匹配任何类型的记录的查询,但 contoso.com 域中的 SRV 记录是从 10.0.0.0/24 子网中的客户端通过 TCP 从 10.0.0.0/24 子网中的客户端到 interface 10.0.0.3 的 TCP 记录:
名称
值
客户端子网
EQ、10.0.0.0/24
传输协议
EQ,TCP
服务器接口 IP 地址
EQ,10.0.0。3
FQDN
EQ,* .com
查询类型
NE,SRV
时间
EQ,20: 00-22:00
您可以创建同一级别的多个查询解析策略,只要它们具有不同的处理顺序值。 当有多个策略可用时,DNS 服务器将按以下方式处理传入的查询:
递归策略
递归策略是一 种特殊类型 的服务器级别策略。 递归策略控制 DNS 服务器对查询执行递归的方式。 仅当查询处理达到递归路径时,递归策略才适用。 对于一组查询,可以选择 "拒绝" 或 "忽略" 值。 或者,可以为一组查询选择一组转发器。
可以使用递归策略来实现裂脑 DNS 配置。 在此配置中,DNS 服务器为查询的一组客户端执行递归,而 DNS 服务器不为该查询的其他客户端执行递归。
递归策略包含与下表中的元素相同的常规 DNS 查询解析策略所包含的元素:
名称
说明
应用于递归
指定仅应将此策略用于递归。
递归范围
递归作用域的名称。
备注
只能在服务器级别创建递归策略。
区域传输策略
区域传输策略控制 DNS 服务器是否允许区域传输。 可以在服务器级别或区域级别为区域复制创建策略。 服务器级别策略适用于在 DNS 服务器上发生的每个区域传输查询。 区域级别策略仅适用于在 DNS 服务器上托管的区域上的查询。 区域级别策略的最常见用途是实现阻止或安全列表。
备注
区域传输策略只能使用 DENY 或 IGNORE 作为操作。
你可以使用以下服务器级别区域传输策略拒绝给定子网中的 contoso.com 域的区域传送:
Add-DnsServerZoneTransferPolicy -Name DenyTransferOfContosoToFabrikam -Zone contoso.com -Action DENY -ClientSubnet "EQ,192.168.1.0/24"
您可以创建同一级别的多个区域传输策略,只要它们具有不同的处理顺序值。 当有多个策略可用时,DNS 服务器将按以下方式处理传入的查询:
管理 DNS 策略
可以使用 PowerShell 来创建和管理 DNS 策略。 以下示例介绍了可通过 DNS 策略配置的不同示例方案:
流量管理
你可以根据 DNS 客户端的位置,将基于 FQDN 的流量定向到不同的服务器。 下面的示例演示如何创建流量管理策略,以将特定子网中的客户定向到北美数据中心,并将其他子网定向到欧洲数据中心。
Add-DnsServerClientSubnet -Name "NorthAmericaSubnet" -IPv4Subnet "172.21.33.0/24"
Add-DnsServerClientSubnet -Name "EuropeSubnet" -IPv4Subnet "172.17.44.0/24"
Add-DnsServerZoneScope -ZoneName "Contoso.com" -Name "NorthAmericaZoneScope"
Add-DnsServerZoneScope -ZoneName "Contoso.com" -Name "EuropeZoneScope"
Add-DnsServerResourceRecord -ZoneName "Contoso.com" -A -Name "www" -IPv4Address "172.17.97.97" -ZoneScope "EuropeZoneScope"
Add-DnsServerResourceRecord -ZoneName "Contoso.com" -A -Name "www" -IPv4Address "172.21.21.21" -ZoneScope "NorthAmericaZoneScope"
Add-DnsServerQueryResolutionPolicy -Name "NorthAmericaPolicy" -Action ALLOW -ClientSubnet "eq,NorthAmericaSubnet" -ZoneScope "NorthAmericaZoneScope,1" -ZoneName "Contoso.com"
Add-DnsServerQueryResolutionPolicy -Name "EuropePolicy" -Action ALLOW -ClientSubnet "eq,EuropeSubnet" -ZoneScope "EuropeZoneScope,1" -ZoneName contoso.com
脚本的前两行为北美和欧洲创建客户端子网对象。 后面的两行在 contoso.com 域中创建区域作用域,每个区域各有一个区域。 后面的两行在每个区域中创建一条记录,将 ww.contoso.com 关联到不同的 IP 地址,一个用于欧洲,另一个用于北美。 最后,该脚本的最后几行创建两个 DNS 查询解析策略,一个策略应用于北美子网,另一个应用于欧洲子网。
阻止域查询
你可以使用 DNS 查询解析策略来阻止查询到域。 下面的示例将阻止所有查询 treyresearch.net:
Add-DnsServerQueryResolutionPolicy -Name "BlackholePolicy" -Action IGNORE -FQDN "EQ,*.treyresearch.com"
阻止子网中的查询
还可以阻止来自特定子网的查询。 下面的脚本将创建 172.0.33.0/24 的子网,然后创建一个策略,以忽略来自该子网的所有查询:
Add-DnsServerClientSubnet -Name "MaliciousSubnet06" -IPv4Subnet 172.0.33.0/24
Add-DnsServerQueryResolutionPolicy -Name "BlackholePolicyMalicious06" -Action IGNORE -ClientSubnet "EQ,MaliciousSubnet06"
允许内部客户端的递归
可以通过使用 DNS 查询解析策略来控制递归。 下面的示例可用于为内部客户端启用递归,同时为裂脑方案中的外部客户端禁用递归。
Set-DnsServerRecursionScope -Name . -EnableRecursion $False
Add-DnsServerRecursionScope -Name "InternalClients" -EnableRecursion $True
Add-DnsServerQueryResolutionPolicy -Name "SplitBrainPolicy" -Action ALLOW -ApplyOnRecursion -RecursionScope "InternalClients" -ServerInterfaceIP "EQ,10.0.0.34"
脚本中的第一行更改默认递归作用域,只需将其命名为 "." (点) 来禁用递归。 第二行创建一个名为 InternalClients 的递归作用域,其中启用了递归。 第三行创建一个策略,以将新创建的递归范围应用于通过将10.0.0.34 作为 IP 地址的服务器接口传入的任何查询。
创建服务器级别区域传输策略
你可以使用 DNS 区域传输策略以更精细的方式控制区域传输。 下面的示例脚本可用于允许对给定子网上的任何服务器进行区域传输:
Add-DnsServerClientSubnet -Name "AllowedSubnet" -IPv4Subnet 172.21.33.0/24
Add-DnsServerZoneTransferPolicy -Name "NorthAmericaPolicy" -Action IGNORE -ClientSubnet "ne,AllowedSubnet"
脚本中的第一行将创建一个名为 AllowedSubnet 的子网对象,其中包含 IP 块 172.21.33.0/24。 第二行创建区域传输策略,以允许将区域传输到之前创建的子网上的任何 DNS 服务器。
创建区域级别区域传输策略
你还可以创建区域级别区域传输策略。 下面的示例忽略来自 IP 地址为本例为10.0.0.33 的服务器接口的 contoso.com 的区域传输请求:
Add-DnsServerZoneTransferPolicy -Name "InternalTransfers" -Action IGNORE -ServerInterfaceIP "eq,10.0.0.33" -PassThru -ZoneName "contoso.com"
DNS 策略方案
有关如何在特定情况下使用 DNS 策略的信息,请参阅本指南中的以下主题。
在 Read-Only 域控制器上使用 DNS 策略
DNS 策略与 Read-Only 域控制器兼容。 请注意,需要重新启动 DNS 服务器服务,才能将新 DNS 策略加载到 Read-Only 域控制器上。 这不是可写域控制器所必需的。