Share via


使用 DNS 原則進行具有地理位置感知的應用程式負載平衡

適用於:Windows Server 2022、Windows Server 2019、Windows Server 2016

您可以使用此主題來瞭解如何設定 DNS 原則來負載平衡具有地理位置感知的應用程式。

本指南中的先前主題使用 DNS 原則進行應用程式負載平衡使用一家虛構公司 Contoso Gift Services 範例,而此公司提供線上禮品服務,並且有一個名為 contosogiftservices.com 的網站。 Contoso Gift Services 會在位於華盛頓州西雅圖、伊利諾州芝加哥和德克薩斯州達拉斯之北美資料中心內的伺服器之間負載平衡其線上 Web 應用程式。

注意

建議您先熟悉使用 DNS 原則進行應用程式負載平衡主題,再執行此案例中的指示。

本主題使用相同的虛構公司和網路基礎結構作為包括地理位置感知之新範例部署的基礎。

在此範例中,Contoso Gift Services 將其存在成功擴充至全球。

與北美類似,該公司現在具有歐洲資料中心內所裝載的網頁伺服器。

Contoso Gift Services DNS 系統管理員想要使用與美國 DNS 原則實作類似的方式來設定歐洲資料中心的應用程式負載平衡,而且應用程式流量分散至位於都柏林、愛爾蘭、阿姆斯特丹、荷蘭和其他地方的 Web 伺服器。

DNS 系統管理員也想要來自世界其他位置的所有查詢都平均分散至其所有資料中心。

在接下來的各節中,您可以瞭解如何達到與您自己網路上 Contoso DNS 系統管理員類似的目標。

如何設定具有地理位置感知的應用程式負載平衡

下列各節顯示如何設定 DNS 原則進行具有地理位置感知的應用程式負載平衡。

重要

以下幾節提供範例 Windows PowerShell 命令,其中包含許多參數的範例值。 在執行這些命令之前,請務必先將這些命令中的範例值取代為您部署所需的值。

建立 DNS 用戶端子網路

您必須先識別北美和歐洲地區的子管理或 IP 位址空間。

您可以從「地理-IP」對應中取得這項資訊。 根據這些地理 IP 發佈,您必須建立 DNS 用戶端子網路。

DNS 用戶端子網路是 IPv4 或 IPv6 子網路的邏輯群組,而查詢會從這些子網路傳送至 DNS 伺服器。

您可以使用下列 Windows PowerShell 命令來建立 DNS 用戶端子網路。

Add-DnsServerClientSubnet -Name "AmericaSubnet" -IPv4Subnet 192.0.0.0/24,182.0.0.0/24
Add-DnsServerClientSubnet -Name "EuropeSubnet" -IPv4Subnet 141.1.0.0/24,151.1.0.0/24

如需詳細資訊,請參閱 Add-DnsServerClientSubnet

建立區域範圍

用戶端子網路備妥之後,您必須將 contosogiftservices.com 區域分割為不同的區域範圍,而且一個資料中心一個區域。

區域範圍是區域的唯一執行個體。 一個 DNS 區域可以有多個區域範圍,而且每個區域範圍都會包含其本身的 DNS 記錄集。 相同的 DNS 記錄可以出現在多個區域範圍中,這些記錄可具有不同的 IP 位址,也可具有相同的 IP 位址。

注意

根據預設,DNS 區域上會有區域範圍。 此區域範圍的名稱與區域相同,而且舊版 DNS 作業會在這個範圍上進行。

前一個應用程式負載平衡案例示範如何針對北美資料中心設定三個區域範圍。

使用下面的命令,您可以建立另外兩個區域範圍,而都柏林和阿姆斯特丹資料中心各一個。

您可以新增這些區域範圍,而不需要對相同區域中的三個現有北美區域範圍進行任何變更。 此外,建立這些區域範圍之後,您不需要重新啟動 DNS 伺服器。

您可以使用下列 Windows PowerShell 命令來建立區域範圍。

Add-DnsServerZoneScope -ZoneName "contosogiftservices.com" -Name "DublinZoneScope"
Add-DnsServerZoneScope -ZoneName "contosogiftservices.com" -Name "AmsterdamZoneScope"

如需詳細資訊,請參閱 Add-DnsServerZoneScope

將記錄新增至區域範圍

現在,您必須將代表網頁伺服器主機的記錄新增至區域範圍。

在先前的案例中,已新增美國資料中心的記錄。 您可以使用下列 Windows PowerShell 命令,以將記錄新增至歐洲資料中心的區域範圍。

Add-DnsServerResourceRecord -ZoneName "contosogiftservices.com" -A -Name "www" -IPv4Address "151.1.0.1" -ZoneScope "DublinZoneScope”
Add-DnsServerResourceRecord -ZoneName "contosogiftservices.com" -A -Name "www" -IPv4Address "141.1.0.1" -ZoneScope "AmsterdamZoneScope"

如需詳細資訊,請參閱 Add-DnsServerResourceRecord

建立 DNS 原則

建立磁碟分割 (區域範圍) 並新增記錄之後,您必須建立 DNS 原則,以將傳入查詢分散到這些範圍。

在此範例中,不同資料中心內跨應用程式伺服器的查詢散發符合下列準則。

  1. 從北美用戶端子網路中的來源接收到 DNS 查詢時,50% 的 DNS 回應會指向西雅圖資料中心、25% 的回應會指向芝加哥資料中心,而其餘 25% 的回應會指向達拉斯資料中心。
  2. 從歐洲用戶端子網路中的來源接收到 DNS 查詢時,50% 的 DNS 回應會指向都柏林資料中心,而 50% 的回應會指向阿姆斯特丹資料中心。
  3. 查詢來自世界各處時,會將 DNS 回應分散到所有五個資料中心。

您可以使用下列 Windows PowerShell 命令來實作這些 DNS 原則。

Add-DnsServerQueryResolutionPolicy -Name "AmericaLBPolicy" -Action ALLOW -ClientSubnet "eq,AmericaSubnet" -ZoneScope "SeattleZoneScope,2;ChicagoZoneScope,1; TexasZoneScope,1" -ZoneName "contosogiftservices.com" –ProcessingOrder 1
Add-DnsServerQueryResolutionPolicy -Name "EuropeLBPolicy" -Action ALLOW -ClientSubnet "eq,EuropeSubnet" -ZoneScope "DublinZoneScope,1;AmsterdamZoneScope,1" -ZoneName "contosogiftservices.com" -ProcessingOrder 2
Add-DnsServerQueryResolutionPolicy -Name "WorldWidePolicy" -Action ALLOW -FQDN "eq,*.contoso.com" -ZoneScope "SeattleZoneScope,1;ChicagoZoneScope,1; TexasZoneScope,1;DublinZoneScope,1;AmsterdamZoneScope,1" -ZoneName "contosogiftservices.com" -ProcessingOrder 3

如需詳細資訊,請參閱 Add-DnsServerQueryResolutionPolicy

您現在已成功建立 DNS 原則以提供跨 Web 伺服器的應用程式負載平衡,而這些 Web 伺服器位在多個大陸的五個不同資料中心中。

您可以根據流量管理需求建立幾千個 DNS 原則,且所有新原則都會動態套用至傳入查詢,而不需要重新啟動 DNS 伺服器。