首页 > 代码库 > Windows Server 2016 DNS Policy Tod-Intelligent 2
Windows Server 2016 DNS Policy Tod-Intelligent 2
在上一篇中作者为大家简单介绍了下Windows Server 2016 DNS Policy基于地理位置的流量隔离功能,本文将为大家介绍DNS policy里面另一个主要的功能 ,基于时间的智能DNS定位
假定Contoso是一家跨国的图书公司,跨中国和德国,设立在中国大连和德国柏林都有分公司,希望实现平常时间两边分公司的员工都正常访问本分公司的服务器,当负载达到时间峰值时,例如,每天9点到11点是大连这边用户访问的高峰期,这时候百分之80的流量通过大连主机响应,百分之20定位到柏林服务器响应。柏林那边每天下午三点到五点是高峰期,这时候百分之80的流量通过柏林主机响应,百分之20流量通过大连主机响应,其余时间各自访问各自区域的服务器
接下来老王将带领大家看看如何实现这项效果
实验环境介绍
16DNS:承担DNS服务器,设置在公司总部 IP地址:100.0.0.2 GW:100.0.0.1
Web01:承担大连的Web服务器,同时也承担连接总部DNS,柏林客户端,大连客户端的路由器
IP地址1:80.0.0.1
IP地址2:90.0.0.1
IP地址3:100.0.0.1 DNS 100.0.0.2
Web02:承担柏林的Web服务器,假设在柏林DC,IP地址:90.0.0.2 GW:90.0.0.1
dalian:模仿大连客户端 IP地址:80.0.0.100 GW:80.0.0.1 DNS : 100.0.0.2
bolin:模仿柏林客户端 IP地址:90.0.0.100 GW:90.0.0.1 DNS:100.0.0.2
首先,创建DNS客户端子网,定义柏林和大连的地址范围
Add-DnsServerClientSubnet -Name "daliansubnet" -IPv4Subnet "80.0.0.0/24"
Add-DnsServerClientSubnet -Name "bolinsubnet" -IPv4Subnet "90.0.0.0/24"
接下来创建逻辑地理范围
Add-DnsServerZoneScope -ZoneName "eip.com" -Name "dalian"
Add-DnsServerZoneScope -ZoneName "eip.com" -Name "bolin"
添加主机记录,注意带有-ZoneScope参数
Add-DnsServerResourceRecord -ZoneName "eip.com" -A -Name "www" -IPv4Address "80.0.0.1" -ZoneScope "dalian"
Add-DnsServerResourceRecord -ZoneName "eip.com" -A -Name "www" -IPv4Address "90.0.0.2" -ZoneScope "bolin"
创建DNS policy
创建大连上午9点到11点百分之80流量走本地服务器,百分之20走柏林服务器策略
Add-DnsServerQueryResolutionPolicy -Name "Dalian9to11Policy" -Action ALLOW -ClientSubnet "eq,daliansubnet" -ZoneScope "dalian,4;bolin,1" -TimeOfDay "EQ,01:00-03:00" -ZoneName "eip.com" -ProcessingOrder 1
2.创建柏林下午1点到3点百分之80流量走本地服务器,百分之20走大连服务器策略
Add-DnsServerQueryResolutionPolicy -Name "bolin1to3policy" -Action ALLOW -ClientSubnet "eq,bolinsubnet" -ZoneScope "bolin,4;dalian,1" -TimeOfDay "EQ,19:00-21:00" -ZoneName "eip.com" -ProcessingOrder 2
在这两条命令中大家可能发现和上一篇的文章中有点不一样
在定义ZoneScope的时候采用了多个逻辑地理区域,正如我上一章节和大家解释的一样,可以通过设置比例来实现负载调换,定义4和1就代表 80|20
增加了TimeOfDay参数,这个参数就是用来定义根据时间只能定位DNS服务器的,但是这里的时间需要换算成GMT时间才可以,这点需要注意
增加了ProcessingOrder参数,这个参数主要用来定义当前策略的优先级,当有多条策略可以匹配时,优先级越低的,越优先。
3.创建正常时间大连客户端访问大连服务器策略
Add-DnsServerQueryResolutionPolicy -Name "dalianPolicy" -Action ALLOW -ClientSubnet "eq,daliansubnet" -ZoneScope "dalian,1" -ZoneName "eip.com" -ProcessingOrder 3
4.创建正常时间柏林客户端访问柏林服务器策略
Add-DnsServerQueryResolutionPolicy -Name "bolinPolicy" -Action ALLOW -ClientSubnet "eq,bolinsubnet" -ZoneScope "bolin,1" -ZoneName "eip.com" -ProcessingOrder 4
5.添加正常主机记录,允许世界其他客户端访问,并在柏林和大连之间轮询
Add-DnsServerResourceRecord -ZoneName "eip.com" -A -Name "www" -IPv4Address "80.0.0.1"
Add-DnsServerResourceRecord -ZoneName "eip.com" -A -Name "www" -IPv4Address "90.0.0.2"
当柏林到达指定时间下午一点,通过nslookup可以看到分别在柏林和大连之间进行解析,并不一直落在柏林上
相信通过简单的介绍,大家已经大概明白这项功能是什么意思了,无非是多了时间的参数,可以根据时间,智能的调整负载DNS,能够根据业务场景动态调整DNS服务器的负载了,更加智能化了,唯独就是不同国家每次需要转换不同的GMT时间有点麻烦
除了本地跨国跨地域之间的智能DNS时间定位,2016DNS还支持和Azure联动,例如每天下午3点到5点大连访问较多,在这个时间点,可以配置百分之80的的响应由本地承担,百分之20的响应由云端Azure承担
要配置和Azure进行混合云联动,你需要在Azure上面有一个本地DNS可访问到的服务器地址,或者VPN之后的地址
如果要使用Azure作为云端Site 在创建主机记录时需要注意添加TimeToLive参数,假定如果将大连服务器移动至Azure,应该运行命令如下
创建Azure逻辑地理区域
Add-DnsServerZoneScope -ZoneName "eip.com" -Name "AzureSiteZoneScope"
创建Azure地理位置主机记录
Add-DnsServerResourceRecord -ZoneName "eip.com" -A -Name "www" -IPv4Address "80.0.0.1" -ZoneScope "AzureSiteZoneScope" –TimeToLive 600
创建DNS policy
Add-DnsServerQueryResolutionPolicy -Name "Dalian3to5policy" -Action ALLOW -ClientSubnet "eq,daliansubnet" -ZoneScope "dalian,7;AzureSiteZoneScope,3" –TimeOfDay "EQ,15:00-17:00” -ZoneName "eip.com" –ProcessingOrder 1
可以看到并没有什么特别的,可见Windows Server 2016 DNS Policy可以实现和Azure完美的混合,只需要注意下Azure 主机DNS记录的TTL时间即可,默认保持600秒
本文出自 “一个倔强的孤岛” 博客,请务必保留此出处http://wzde2012.blog.51cto.com/6474289/1920624
Windows Server 2016 DNS Policy Tod-Intelligent 2