透過主要-次要部署使用地理位置流量管理的 DNS 原則

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

此主題可幫助您了解在 DNS 部署包含主要和次要 DNS 伺服器時,如何為地理位置型流量管理建立 DNS 原則。

上一個案例 (透過主要伺服器使用地理位置流量管理的 DNS 原則) 介紹了如何在主要 DNS 伺服器上設定地理位置型流量管理的 DNS 原則。 不過,在網際網路基礎結構中,DNS 伺服器廣泛部署在主要-次要模型中,其中區域可寫入的複本會儲存在選取和安全的主要伺服器上,而區域唯讀複本則會保存在多個次要伺服器上。

次要伺服器會使用區域傳輸通訊協定授權傳輸 (AXFR) 和增量區域傳輸 (IXFR) 來要求和接收區域更新,包括主要 DNS 伺服器上區域的新變更。

注意

如需 AXFR 的詳細資訊,請參閱網際網路工程任務推動小組 (IETF) 註解 5936 的要求。 如需 IXFR 的詳細資訊,請參閱網際網路工程任務推動小組 (IETF) 註解 1995 的要求

主要-次要地理位置型流量管理範例

下列範例展示如何在主要-次要部署中使用 DNS 原則,根據執行 DNS 查詢的用戶端實體位置來實現流量重新導向。

此範例使用兩個虛構的公司:Contoso Cloud Services,此公司提供 Web 和網域裝載解決方案;Woodgrove Food Services,在全球各地的多個城市提供餐飲遞送服務,並擁有名為 woodgrove.com 的網站。

為了確保網站能為 woodgrove.com 客戶提供反應敏捷的體驗,Woodgrove 希望將歐洲客戶導向歐洲資料中心,而美國客戶則導向至美國資料中心。 位於全球其他地區的客戶可導向至任一資料中心。

Contoso Cloud Services 有兩個資料中心,一個位於美國,另一個位於歐洲,Contoso 在其中裝載 woodgrove.com 的餐飲訂購入口網站。

Contoso DNS 部署包含兩部次要伺服器:SecondaryServer1,IP 位址為 10.0.0.2;而 SecondaryServer2 其 IP 位址為 10.0.0.3。 這些次要伺服器會作為兩個不同區域中的名稱伺服器,SecondaryServer1 位於歐洲,而 SecondaryServer2 則位於美國。

主要可寫入區域複本位於 PrimaryServer 上 (IP 位址 10.0.0.1),區域會在此處變更。 使用一般區域傳輸至次要伺服器時,次要伺服器一律會更新為主要伺服器上區域的任何新變更。

下圖描述此案例。

Primary-Secondary Geo-Location Based Traffic Management Example

DNS 主要-次要系統的運作方式

當您要在主要-次要 DNS 部署中部署地理位置型流量管理時,在探討區域範圍層級傳輸之前,請務必了解如何進行一般的主要-次要區域傳輸。 下列各節提供區域和區域範圍層級傳輸的相關資訊。

DNS 主要-次要部署中的區域傳輸

您可以建立 DNS 主要-次要部署,並透過下列步驟使區域同步化。

  1. 當您安裝 DNS 時,系統會在主要 DNS 伺服器上建立主要區域。
  2. 在次要伺服器上,建立區域並指定主要伺服器。
  3. 在主要伺服器上,您可以將次要伺服器新增為主要區域上受信任的次要區域。
  4. 次要區域會提出完整的區域傳輸要求 (AXFR),並接收區域的複本。
  5. 如有需要,主要伺服器會將關於區域更新的通知傳送至次要伺服器。
  6. 次要伺服器會提出增量區域傳輸要求 (IXFR)。 因此,次要伺服器會與主要伺服器保持同步。

DNS 主要-次要部署中的區域範圍層級傳輸

流量管理案例需要額外的步驟,才能將區域分割成不同的區域範圍。 因此,您需要執行額外的步驟,才能將區域範圍中的資料傳輸到次要伺服器,以及將原則和 DNS 用戶端子網路傳送至次要伺服器。

使用主要和次要伺服器設定 DNS 基礎結構之後,DNS 會自動使用下列程序來執行區域範圍層級傳輸。

為了確保區域範圍層級傳輸,DNS 伺服器會使用 DNS (EDNS0) OPT RR 的擴充機制。 具有來自 EDNS0 OPT RR 範圍之區域的區域傳輸 (AXFR 或 IXFR) 要求,其選項識別碼預設為「65433」。 如需 EDNSO 的詳細資訊,請參閱 IETF 註解 6891 的要求

OPT RR 值是正在傳送要求的區域範圍名稱。 當主要 DNS 伺服器從受信任的次要伺服器接收此封包時,便會將要求解譯為針對該區域範圍。

如果主要伺服器具有該區域範圍,則會以該範圍的傳輸 (XFR) 資料回應。 回應包含具有相同選項識別碼「65433」的 OPT RR,並將值設定為相同區域範圍。 次要伺服器會收到此回應、從回應擷取範圍資訊,並更新該區域的特定範圍。

完成此程序之後,主要伺服器會維護信任的次要複本清單,這些次要複本已傳送這類區域範圍要求以取得通知。

針對區域範圍中的任何後續更新,IXFR 通知會傳送至具有相同 OPT RR 的次要伺服器。 接收該通知的區域範圍會發出包含該 OPT RR 的 IXFR 要求,以及如上所述的相同程序。

如何設定主要-次要地理位置型流量管理的 DNS 原則

開始之前,請確定您已完成透過主要伺服器使用地理位置流量管理的 DNS 原則內的所有步驟,而且您的主要 DNS 伺服器已設定區域、區域範圍、DNS 用戶端子網路和 DNS 原則。

注意

本主題會將 DNS 用戶端子網路、區域範圍和 DNS 原則從 DNS 主要伺服器複製到 DNS 次要伺服器的指示,並進行初始 DNS 設定和驗證。 未來您可能會想要變更主要伺服器上的 DNS 用戶端子網路、區域範圍和原則設定。 在此情況下,您可以建立自動化指令碼,讓次要伺服器與主要伺服器保持同步。

若要設定主要-次要地理位置型查詢回應的 DNS 原則,您必須執行下列步驟。

下列各節提供詳細的設定指示。

重要

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

需要 DnsAdmins 或對等的成員資格,才能執行下列程序。

建立次要區域

您可以建立要複寫至 SecondaryServer1 和 SecondaryServer2 的區域次要複本 (假設 Cmdlet 是從單一管理用戶端遠端執行)。

例如,您可以在 SecondaryServer1 和 SecondarySesrver2 上建立 www.woodgrove.com 的次要複本。

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

Add-DnsServerSecondaryZone -Name "woodgrove.com" -ZoneFile "woodgrove.com.dns" -MasterServers 10.0.0.1 -ComputerName SecondaryServer1
Add-DnsServerSecondaryZone -Name "woodgrove.com" -ZoneFile "woodgrove.com.dns" -MasterServers 10.0.0.1 -ComputerName SecondaryServer2

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

在主要區域上設定區域傳輸設定

您必須設定主要區域設定,以便:

  1. 允許從主要伺服器到指定次要伺服器的區域傳輸。
  2. 主要伺服器將區域更新通知傳送至次要伺服器。

您可以使用下列 Windows PowerShell 命令,在主要區域上設定區域傳輸設定。

注意

在下列範例命令中,參數 -Notify 會指定主要伺服器將更新的相關通知傳送至選取的次要複本清單。

Set-DnsServerPrimaryZone -Name "woodgrove.com" -Notify Notify -SecondaryServers "10.0.0.2,10.0.0.3" -SecureSecondaries TransferToSecureServers -ComputerName PrimaryServer

如需詳細資訊,請參閱 Set-DnsServerPrimaryZone

複製 DNS 用戶端子網路

您必須將 DNS 用戶端子網路從主要伺服器複製到次要伺服器。

您可以使用下列 Windows PowerShell 命令,將子網路複製到次要伺服器。

Get-DnsServerClientSubnet -ComputerName PrimaryServer | Add-DnsServerClientSubnet -ComputerName SecondaryServer1
Get-DnsServerClientSubnet -ComputerName PrimaryServer | Add-DnsServerClientSubnet -ComputerName SecondaryServer2

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

在次要伺服器上建立區域範圍

您必須在次要伺服器上建立區域範圍。 在 DNS 中,區域範圍也會開始向主要伺服器要求 XFR。 在主要伺服器的區域範圍上進行任何變更時,包含區域範圍資訊的通知將傳送至次要伺服器。 然後,次要伺服器可以使用增量變更來更新其區域範圍。

您可以使用下列 Windows PowerShell 命令,在次要伺服器上建立區域範圍。

Get-DnsServerZoneScope -ZoneName "woodgrove.com" -ComputerName PrimaryServer|Add-DnsServerZoneScope -ZoneName "woodgrove.com" -ComputerName SecondaryServer1 -ErrorAction Ignore
Get-DnsServerZoneScope -ZoneName "woodgrove.com" -ComputerName PrimaryServer|Add-DnsServerZoneScope -ZoneName "woodgrove.com" -ComputerName SecondaryServer2 -ErrorAction Ignore

注意

這些範例命令中包含 -ErrorAction Ignore 參數,因為每個區域都有預設區域範圍。 預設區域範圍無法建立或刪除。 管線會導致嘗試建立該範圍並且失敗。 或者,您可以在兩個次要區域上建立非預設區域範圍。

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

設定 DNS 原則

建立子網路、分割區 (區域範圍) 和新增記錄之後,您必須建立連接子網路和分割區的原則,如此一來,當查詢來自其中一個 DNS 用戶端子網路中的來源時,便會從區域的正確範圍傳回查詢回應。 對應預設區域範圍不需要任何原則。

您可以使用下列 Windows PowerShell 命令來建立 DNS 原則,以連結 DNS 用戶端子網路和區域範圍。

$policy = Get-DnsServerQueryResolutionPolicy -ZoneName "woodgrove.com" -ComputerName PrimaryServer
$policy | Add-DnsServerQueryResolutionPolicy -ZoneName "woodgrove.com" -ComputerName SecondaryServer1
$policy | Add-DnsServerQueryResolutionPolicy -ZoneName "woodgrove.com" -ComputerName SecondaryServer2

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

現在,次要 DNS 伺服器會設定為必要的 DNS 原則,以根據地理位置將流量重新導向。

當 DNS 伺服器收到名稱解析查詢時,就會根據設定的 DNS 原則評估 DNS 要求中的欄位。 如果名稱解析要求中的來源 IP 位址符合任意原則,則會使用相關聯的區域範圍來回應查詢,並將使用者導向至與其地理位置最接近的資源。

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