標籤:windows server2016 dns policy tod-intelligent
在上一篇中作者為大家簡單介紹了下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"
650) this.width=650;" src="https://s2.51cto.com/wyfs02/M00/92/D0/wKioL1kDLwmCPJKmAACbafnlI3E436.jpg" title="2017-04-28_200055.jpg" alt="wKioL1kDLwmCPJKmAACbafnlI3E436.jpg" />
接下來建立邏輯地理範圍
Add-DnsServerZoneScope -ZoneName "eip.com" -Name "dalian"
Add-DnsServerZoneScope -ZoneName "eip.com" -Name "bolin"
650) this.width=650;" src="https://s1.51cto.com/wyfs02/M02/92/D0/wKioL1kDLzbCbpVsAADL8wkXKwc903.jpg" style="float:none;" title="2017-04-28_200140.jpg" alt="wKioL1kDLzbCbpVsAADL8wkXKwc903.jpg" />
添加主機記錄,注意帶有-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"
650) this.width=650;" src="https://s2.51cto.com/wyfs02/M02/92/D0/wKioL1kDMZGQxwqnAAEzYszIrQ0645.jpg" title="2017-04-28_201143.jpg" alt="wKioL1kDMZGQxwqnAAEzYszIrQ0645.jpg" />
建立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
650) this.width=650;" src="https://s4.51cto.com/wyfs02/M01/92/D1/wKioL1kDN2aQpbtQAAEG7aCHLNs896.jpg" title="2017-04-28_203323.jpg" alt="wKioL1kDN2aQpbtQAAEG7aCHLNs896.jpg" />
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
650) this.width=650;" src="https://s3.51cto.com/wyfs02/M00/92/D2/wKiom1kDODnhhqzgAACLww84C6Q131.jpg" title="2017-04-28_204009.jpg" alt="wKiom1kDODnhhqzgAACLww84C6Q131.jpg" />
在這兩條命令中大家可能發現和上一篇的文章中有點不一樣
在定義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
650) this.width=650;" src="https://s5.51cto.com/wyfs02/M00/92/D1/wKioL1kDOhLw6gSTAABc7nUIR9U322.jpg" title="2017-04-28_204802.jpg" alt="wKioL1kDOhLw6gSTAABc7nUIR9U322.jpg" />
4.建立正常時間柏林用戶端訪問柏林伺服器策略
Add-DnsServerQueryResolutionPolicy -Name "bolinPolicy" -Action ALLOW -ClientSubnet "eq,bolinsubnet" -ZoneScope "bolin,1" -ZoneName "eip.com" -ProcessingOrder 4
650) this.width=650;" src="https://s1.51cto.com/wyfs02/M01/92/D2/wKiom1kDOnWRrjqJAABZhe8sLhU375.jpg" title="2017-04-28_204937.jpg" alt="wKiom1kDOnWRrjqJAABZhe8sLhU375.jpg" />
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"
650) this.width=650;" src="https://s4.51cto.com/wyfs02/M00/92/D1/wKioL1kDPtLgvUP6AABr0GtsUls052.jpg" title="2017-04-28_210817.jpg" alt="wKioL1kDPtLgvUP6AABr0GtsUls052.jpg" />
當柏林到達指定時間下午一點,通過nslookup可以看到分別在柏林和大連之間進行解析,並不一直落在柏林上
650) this.width=650;" src="https://s5.51cto.com/wyfs02/M02/92/D1/wKioL1kDP2yA5xSHAAHoKy8bHnk600.jpg" title="2017-04-28_211054.jpg" alt="wKioL1kDP2yA5xSHAAHoKy8bHnk600.jpg" />
相信通過簡單的介紹,大家已經大概明白這項功能是什麼意思了,無非是多了時間的參數,可以根據時間,智能的調整負載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