当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 在 Windows Server 上配置 DNS 条件转发和 DNS 策略

作者:精品下载站 日期:2024-12-15 00:50:42 浏览:17 分类:玩电脑

在 Windows Server 上配置 DNS 条件转发和 DNS 策略


在本文中,我们将介绍在 Windows Server 2016/2019/2022 上的 DNS 服务器中组织条件名称解析的两种方法:DNS 条件转发DNS 策略。这些技术允许您根据请求的名称、IP 地址、客户端位置、一天中的时间等配置条件 DNS 名称解析。

DNS 条件转发允许将有关特定域的 DNS 请求转发到特定的 DNS 服务器。通常,当您想要在多个私有内部域之间配置快速名称解析,或者如果您不希望通过 Internet 发送来自服务器的 DNS 请求时,请使用条件转发器。在这种情况下,您可以在 DNS 服务器上创建一条规则,将特定域区域(仅限!!!)的 DNS 请求转发到指定的 DNS 服务器。

如何在 Windows Server 上配置 DNS 条件转发器?

让我们尝试在 Windows Server 2019 上为特定域区域配置 DNS 条件转发。例如,所有 DNS 请求

corp.a-d.site

区域应转发到 DNS 服务器

10.1.10.11

  1. 打开 DNS 管理控制台(

    dnsmgmt.msc

    );

  2. 展开您的 DNS 服务器,右键单击条件转发器,然后选择新建条件转发器

  3. DNS域字段中输入您想要启用条件转发的域的FQDN;

  4. 主服务器的 IP 地址字段中指定应将指定命名空间的所有请求转发到的 DNS 服务器的 IP 地址;

    [玩转系统] 在 Windows Server 上配置 DNS 条件转发和 DNS 策略

  5. 如果您想要在多个 DNS 服务器上存储条件转发规则,您可以将其与 AD 集成。选中选项将此条件转发器存储在 Active Directory 中;

  6. 配置条件转发复制选项(此林中的所有 DNS 服务器此域中的所有 DNS 服务器此域中的所有域控制器)。

    [玩转系统] 在 Windows Server 上配置 DNS 条件转发和 DNS 策略

使用 PowerShell 配置 DNS 条件转发

您可以使用 PowerShell 为 DNS 区域创建条件转发器规则。使用 Add-DnsServerConditionalForwarderZone cmdlet:

Add-DnsServerConditionalForwarderZone -Name dmz.a-d.site -MasterServers 192.168.1.11,192.168.101.11 -ReplicationScope Forest

了解有关使用 PowerShell 管理 DNS 服务器的更多信息。

运行以下 PowerShell 脚本以列出特定服务器上的 DNS 条件转发器:

$DNSServer = "DC01"
$Zones = Get-WMIObject -Computer $DNSServer -Namespace "root\MicrosoftDNS" -Class "MicrosoftDNS_Zone"
$Zones | Select-Object Name,MasterServers,DsIntegrated,ZoneType | where {$_.ZoneType -eq "4"} | ft -AutoSize

[玩转系统] 在 Windows Server 上配置 DNS 条件转发和 DNS 策略

使用 Windows Server DNS 策略过滤 DNS 查询

Windows Server 2016 向 DNS 服务器添加了 DNS 策略功能。 DNS 策略允许您将 DNS 服务器配置为对 DNS 查询返回不同的响应,具体取决于您所在的位置(取决于发送请求的 IP 地址或子网)、DNS 服务器的接口、一天中的时间、请求的记录类型(A、CNAME、PTR、MX)等。Windows Server 中的 DNS 策略允许您实现负载平衡、DNS 流量过滤、基于地理位置(客户端 IP 地址)返回 DNS 记录以及其他复杂场景。

您可以在 DNS 服务器或特定域区域级别创建策略。 Windows Server 中 DNS 策略的配置只能通过 PowerShell 命令行完成。

让我们尝试创建一个简单的策略,根据客户端的位置返回不同的 DNS 查询响应。假设您希望每个分支中的客户端使用站点上的本地代理服务器。

您已创建一个 GPO 来配置域中的代理设置(将在所有客户端上指定proxy.a-d.site)。但是,为了使用本地代理服务器,来自不同办公室的客户端需要以不同的方式解析此 FQDN。

我为公司分支机构创建了3个子网:

Add-DnsServerClientSubnet -Name "BER_DNS_Subnet" -IPv4Subnet "192.168.1.0/24"
Add-DnsServerClientSubnet -Name "HH_DNS_Subnet" -IPv4Subnet "192.168.11.0/24"
Add-DnsServerClientSubnet -Name "MCH_DNS_Subnet" -IPv4Subnet "192.168.21.0/24"

您必须在要启用条件 DNS 策略的所有 DC 上运行这些命令。这些设置不会复制到 DNS 中,而是本地存储在 DNS 服务器的注册表中。您可以使用以下命令指定服务器名称

-ComputerName dc01

选项。

列出 DNS 服务器上所有可用的 IP 子网:

Get-DnsServerClientSubnet

[玩转系统] 在 Windows Server 上配置 DNS 条件转发和 DNS 策略

现在您需要为每个办公室创建一个单独的 DNS 区域:

Add-DnsServerZoneScope -ZoneName "a-d.site" -Name "BERZoneScope"
Add-DnsServerZoneScope -ZoneName "a-d.site" -Name "HHZoneScope"
Add-DnsServerZoneScope -ZoneName "a-d.site" -Name "MCHZoneScope"

以下命令将添加 3 个同名 DNS 记录,指向不同 DNS 区域中的不同 IP 地址:

Add-DnsServerResourceRecord -ZoneName "a-d.site" -A -Name proxy -IPv4Address "192.168.1.10" -ZoneScope "BERZoneScope"
Add-DnsServerResourceRecord -ZoneName "a-d.site" -A -Name proxy -IPv4Address "192.168.11.10" -ZoneScope "HHZoneScope"
Add-DnsServerResourceRecord -ZoneName "a-d.site" -A -Name proxy -IPv4Address "192.168.21.10" -ZoneScope "MCHZoneScope"

您可以使用以下命令列出区域中的所有 DNS 资源记录:

Get-DnsServerResourceRecord -ZoneName "a-d.site" -ZoneScope BERZoneScope

[玩转系统] 在 Windows Server 上配置 DNS 条件转发和 DNS 策略

然后创建绑定 IP 子网、DNS 区域和 A 记录的 DNS 策略。

Add-DnsServerQueryResolutionPolicy -Name BERResolutionPolicy -Action ALLOW -ClientSubnet "eq,BER_DNS_Subnet" -ZoneScope "BERZoneScope,1" -ZoneName a-d.site -PassThru
Add-DnsServerQueryResolutionPolicy -Name HHResolutionPolicy -Action ALLOW -ClientSubnet "eq,HH_DNS_Subnet" -ZoneScope "HHZoneScope,1" -ZoneName a-d.site -PassThru
Add-DnsServerQueryResolutionPolicy -Name MCHResolutionPolicy -Action ALLOW -ClientSubnet "eq,MCH_DNS_Subnet" -ZoneScope "MCHZoneScope,1" -ZoneName a-d.site -PassThru

DNS 策略中提供以下操作:

  • -Action ALLOW
  • -Action DENY
  • -Action IGNORE

您可以在 DNS 过滤器中使用以下选项:

-InternetProtocol "EQ,IPv4,NE,IPv6"
-TransportProtocol "EQ,UDP,TCP"
-ServerInterfaceIP "EQ,192.168.1.21"
-QType "EQ,A,AAAA,NE,PTR"
-TimeOfDay "EQ,9:00-18:00"

您可以显示服务器上 DNS 区域的 DNS 策略列表:

Get-DnsServerQueryResolutionPolicy -ZoneName a-d.site

[玩转系统] 在 Windows Server 上配置 DNS 条件转发和 DNS 策略

现在检查 DNS 服务器是否针对从不同办公室的设备发送的相同请求返回不同的代理 IP 地址:

nslookup proxy.a-d.site

您可以阻止 DNS 服务器返回命名空间(域)的 DNS 地址:

Add-DnsServerQueryResolutionPolicy -Name 'BlockDNSQuery' -Action IGNORE -FQDN "EQ,*.spamorg.org"

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯