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"

wKioL1kDLwmCPJKmAACbafnlI3E436.jpg

接下來創建邏輯地理範圍

Add-DnsServerZoneScope -ZoneName "eip.com" -Name "dalian"  

Add-DnsServerZoneScope -ZoneName "eip.com" -Name "bolin"  

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"

wKioL1kDMZGQxwqnAAEzYszIrQ0645.jpg


創建DNS policy


  1. 創建大連上午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


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


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

wKioL1kDOhLw6gSTAABc7nUIR9U322.jpg

4.創建正常時間柏林客戶端訪問柏林服務器策略

Add-DnsServerQueryResolutionPolicy -Name "bolinPolicy" -Action ALLOW -ClientSubnet "eq,bolinsubnet" -ZoneScope "bolin,1" -ZoneName "eip.com"  -ProcessingOrder 4

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"


wKioL1kDPtLgvUP6AABr0GtsUls052.jpg

當柏林到達指定時間下午一點,通過nslookup可以看到分別在柏林和大連之間進行解析,並不一直落在柏林上

wKioL1kDP2yA5xSHAAHoKy8bHnk600.jpg


相信通過簡單的介紹,大家已經大概明白這項功能是什麼意思了,無非是多了時間的參數,可以根據時間,智能的調整負載DNS,能夠根據業務場景動態調整DNS服務器的負載了,更加智能化了,唯獨就是不同國家每次需要轉換不同的GMT時間有點麻煩


除了本地跨國跨地域之間的智能DNS時間定位,2016DNS還支持和Azure聯動,例如每天下午3點到5點大連訪問較多,在這個時間點,可以配置百分之80的的響應由本地承擔,百分之20的響應由雲端Azure承擔


要配置和Azure進行混合雲聯動,你需要在Azure上面有一個本地DNS可訪問到的服務器地址,或者***之後的地址


如果要使用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秒




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章