分类: WINDOWS
2017-12-28 11:35:12
【摘要】
在Windows Server 2016以前的版本,DNS服务只能提供DNS的循环响应来实现负载平衡;但是在Windows Server 2016中的DNS,可以通过配置DNS策略来使实现负载平衡。
学领未来直播学IT技术:
【正文】
DNS策略是2016中的新功能,不同于我们平常的策略,它是根据我们的配置获取不同的返回值,从而实现基于返回值的解析功能。它能实现以下功能:
1) 应用程序负载平衡。
当您在不同位置部署了多个应用程序实例时,可以使用DNS策略来平衡不同应用程序实例之间的流量负载,为应用程序动态分配流量负载。
2) 地理-基于位置的交通管理。
您可以使用DNS策略来允许主DNS服务器和辅助DNS服务器根据客户端尝试连接的客户端和资源的地理位置来响应DNS客户端查询,为客户端提供最近资源的IP地址 。。
3) 拆分DNS
对于相同的DNS记录,DNS策略能将不同的区域范围访问的客户端进行解析,判断是从内网访问还是外网访问。
4) 筛选。
您可以配置DNS策略来创建基于您提供的条件的查询过滤器。 DNS策略中的查询过滤器允许您将DNS服务器配置为根据发送DNS查询的DNS查询和DNS客户端以自定义方式进行响应。
5) 鉴定。
您可以使用DNS策略将恶意DNS客户端重定向到不存在的IP地址,而不是将其引导到他们试图访问的计算机。
6) 基于时间的重定向
您可以使用DNS策略通过使用基于一天中的时间的DNS策略来在应用程序的不同地理位置分布的实例上分发应用程序流量。
本文示例配置DNS策略来实现负载平衡。
1. 实验环境
实验拓扑如下:
假如公司部署了一个网站,该网站在广州和深圳各有服务器提供服务,其中广州服务器拥有的资源是深圳的两倍;若使用DNS轮询,可能导致有的服务器负载过重,有的服务器负载空闲;因此,我们希望实现所有客户端请求按照2:1的比例分配给两地的web服务器响应。
2. 配置DNS策略
1) 创建区域范围。为广州和深圳各创建一个区域范围。运行powershell命令Add-DnsServerZoneScope -ZoneName "test.com" -Name "GZZoneScope" 和Add-DnsServerZoneScope -ZoneName "test.com" -Name "SZZoneScope"。
2) 添加记录到区域范围,添加两地 web 服务器主机的记录到两个区域范围。运行powershell命令Add-DnsServerResourceRecord -ZoneName "test.com" -A -Name "www" -IPv4Address "10.10.10.100" -ZoneScope "GZZoneScope"和Add-DnsServerResourceRecord -ZoneName "test.com" -A -Name "www" -IPv4Address "10.10.11.100" -ZoneScope "SZZoneScope";
3) 创建策略;运行命令Add-DnsServerQueryResolutionPolicy -Name "WebPolicy" -Action ALLOW –FQDN "eq,*.contoso.com" -ZoneScope "GZZoneScope,2;SZZoneScope,1" -ZoneName "test.com",已分配2/3的流量定向到广州服务器,1/3的流量定向到深圳服务器。–FQDN "eq,*.contoso.com" 表示应用该策略的条件,此处为contos.com内部用户。
1. 应用场景
当网站存在两个版本,比如内部使用的版本,服务器的IP为10.0.0.39;和外部用户使用的版本,服务器IP为65.55.39.10,管理员需要再承载这两个区域的不同DNS服务器单独管理它们,使用DNS策略可以将这些区域承载在同一台DNS服务器上。
2. 配置DNS策略
1) 创建区域范围;此处将外部版本的记录存放在默认区域范围,因此不需要创建外部解析的区域范围,只创建内部解析的区域范围。运行命令Add-DnsServerZoneScope -ZoneName "test.com" -Name "internal"。
2) 添加记录到区域范围;在内部区域范围内,记录添加的 IP 地址 10.0.0.39,它是专用 IP;在默认区域范围相同的记录,添加 65.55.39.10 的 IP 地址。运行命令Add-DnsServerResourceRecord -ZoneName "test.com" -A -Name "www" -IPv4Address "65.55.39.10" 和Add-DnsServerResourceRecord -ZoneName "test.com" -A -Name "www" -IPv4Address "10.0.0.39” -ZoneScope "internal"。
3) 创建DNS策略;由于外部区域范围建立在默认区域范围内,因此此处不需要为默认范围创建策略;为内部网络的内部区域范围建立策略可以使用命令Add-DnsServerQueryResolutionPolicy -Name "SplitBrainZonePolicy" -Action ALLOW -ServerInterface "eq,10.0.0.56" -ZoneScope "internal,1" -ZoneName test.com,此示例中使用服务器接口作为条件,以便区分内部和外部的客户端。 另一种方法来区分内部和外部客户端是通过使用客户子网作为条件。