分享方式:


透過主要伺服器使用地理位置流量管理的 DNS 原則

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

您可以使用本主題了解如何設定 DNS 原則,以允許主要 DNS 伺服器根據用戶端及其嘗試連線之資源的地理位置來回應 DNS 用戶端查詢,為用戶端提供最接近資源的 IP 位址。

重要

此案例說明當您僅使用主要 DNS 伺服器時,如何部署地理位置型流量管理的 DNS 原則。 同時有主要和次要 DNS 伺服器時,您也可以完成地理位置型流量管理。 如果您有主要次要部署,請先完成本主題中的步驟,然後再完成透過主要-次要部署使用地理位置流量管理的 DNS 原則主題中提供的步驟。

透過新的 DNS 原則,您可以建立 DNS 原則,讓 DNS 伺服器回應要求網頁伺服器 IP 位址的用戶端查詢。 網頁伺服器的執行個體可能位於不同實體位置的不同資料中心。 DNS 可以評估用戶端和網頁伺服器的位置,然後確認實體位置較接近用戶端的網頁伺服器,並為用戶端提供該網頁伺服器的 IP 位址,藉以回應用戶端要求。

您可以使用下列 DNS 原則參數來控制 DNS 伺服器對 DNS 用戶端查詢的回應。

  • 用戶端子網路。 預先定義的用戶端子網路名稱。 用來驗證查詢傳送來源的子網路。
  • 傳輸通訊協定。 查詢中使用的傳輸通訊協定。 可能的項目為 UDPTCP
  • 網際網路通訊協定。 查詢中使用的網路通訊協定。 可能的項目為 IPv4IPv6
  • 伺服器介面 IP 位址。 接收 DNS 要求之 DNS 伺服器的網路介面 IP 位址。
  • FQDN。 查詢中所含記錄的完整網域名稱 (FQDN),可能會使用萬用字元。
  • 查詢類型。 正在查詢的記錄類型 (A、SRV、TXT 等)。
  • 一天中的時間。 接收到查詢的時間 (一天中的時間)。

您可以將下列準則與邏輯運算子 (AND/OR) 結合,以制定原則運算式。 當這些運算式相符時,原則應該會執行下列其中一個動作。

  • 忽略。 DNS 伺服器會以無訊息方式捨棄查詢。
  • 拒絕。 DNS 伺服器會以失敗回應來回應該查詢。
  • 允許。 DNS 伺服器會以流量受控回應來回應。

地理位置型流量管理範例

下列範例說明如何使用 DNS 原則,根據執行 DNS 查詢的用戶端實體位置來實現流量重新導向。

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

Contoso 雲端服務有兩個資料中心,一個在美國,一個在歐洲。 歐洲資料中心裝載了 woodgrove.com 的食品訂購入口網站。

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

下圖描述此案例。

Geo-Location Based Traffic Management Example

DNS 名稱解析程序的運作方式

在名稱解析程序期間,使用者嘗試連線至 www.woodgrove.com。 這導致 DNS 名稱解析要求傳送至設定於使用者電腦的 [網路連線] 屬性中的 DNS 伺服器。 一般而言,這是由本機 ISP 提供作為快取解析程式的 DNS 伺服器,稱為 LDNS。

如果 DNS 名稱不存在於 LDNS 的本機快取中,LDNS 伺服器會將查詢轉送至 woodgrove.com 的權威 DNS 伺服器。 權威 DNS 伺服器會以要求的記錄 (www.woodgrove.com) 回應 LDNS 伺服器,而後者接著會在本機快取記錄,再將其傳送至使用者的電腦。

由於 Contoso 雲端服務使用 DNS 伺服器原則,因此裝載 contoso.com 的權威 DNS 伺服器設定為傳回地理位置型流量受控回應。 這導致歐洲用戶端導向至歐洲資料中心,美國用戶端導向至美國資料中心,如下圖所示。

在此案例中,權威 DNS 伺服器通常會看到來自 LDNS 伺服器的名稱解析要求,而很少會有來自使用者電腦的要求。 因此,權威 DNS 伺服器所看到的名稱解析要求中的來源 IP 位址,是 LDNS 伺服器的 IP 位址,而不是使用者電腦的 IP 位址。 不過,在設定地理位置型查詢回應時使用 LDNS 伺服器的 IP 位址,可以合理估計使用者的地理位置,因為使用者正在查詢其本機 ISP 的 DNS 伺服器。

注意

DNS 原則使用包含 DNS 查詢的 UDP/TCP 封包中的寄件者 IP。 如果查詢透過多個解析程式/LDNS 躍點連線到主要伺服器,原則只會考量 DNS 伺服器從中接收查詢的最後一個解析程式的 IP。

如何設定地理位置型查詢回應的 DNS 原則

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

  1. 建立 DNS 用戶端子網路
  2. 建立區域的範圍
  3. 將記錄新增至區域範圍
  4. 建立原則

注意

您必須在您要設定的區域可信的權威 DNS 伺服器上執行這些步驟。 需要 DnsAdmins 或對等的成員資格,才能執行下列程序。

以下幾節提供詳細的設定指示。

重要

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

建立 DNS 用戶端子網路

第一個步驟是識別需要重新導向流量之區域的子網路或 IP 位址空間。 例如,如果您想要重新導向美國和歐洲的流量,必須識別這些區域的子網路或 IP 位址空間。

您可以從「地理位置-IP」對應中取得這項資訊。 根據這些「地理位置-IP」分佈,您必須建立「DNS 用戶端子網路」。DNS 用戶端子網路是 IPv4 或 IPv6 子網路的邏輯群組,查詢會從中傳送至 DNS 伺服器。

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

Add-DnsServerClientSubnet -Name "USSubnet" -IPv4Subnet "192.0.0.0/24"
Add-DnsServerClientSubnet -Name "EuropeSubnet" -IPv4Subnet "141.1.0.0/24"

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

建立區域範圍

設定用戶端子網路之後,您必須將要重新導向流量的區域分成兩個不同的區域範圍,您已設定的每個 DNS 用戶端子網路各一個範圍。

例如,如果您想要重新導向 DNS 名稱 www.woodgrove.com 的流量,則必須在 woodgrove.com 區域中建立兩個不同的區域範圍,一個用於美國,一個用於歐洲。

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

注意

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

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

Add-DnsServerZoneScope -ZoneName "woodgrove.com" -Name "USZoneScope"
Add-DnsServerZoneScope -ZoneName "woodgrove.com" -Name "EuropeZoneScope"

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

將記錄新增至區域範圍

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

例如 USZoneScopeEuropeZoneScope。 在 USZoneScope 中,您可以新增記錄 www.woodgrove.com,IP 位址為 192.0.0.1,位於美國資料中心;而在 EuropeZoneScope 中,您可以在歐洲資料中心新增 IP 位址為 141.1.1.0.1 的相同記錄 (www.woodgrove.com)。

您可以使用下列 Windows PowerShell 命令,將記錄新增至區域範圍。

Add-DnsServerResourceRecord -ZoneName "woodgrove.com" -A -Name "www" -IPv4Address "192.0.0.1" -ZoneScope "USZoneScope"
Add-DnsServerResourceRecord -ZoneName "woodgrove.com" -A -Name "www" -IPv4Address "141.1.0.1" -ZoneScope "EuropeZoneScope"

在此範例中,您也必須使用下列 Windows PowerShell 命令將記錄新增至預設區域範圍中,以確保世界上的其他區域仍可從兩個資料中心之一存取 woodgrove.com 網頁伺服器。

Add-DnsServerResourceRecord -ZoneName "woodgrove.com" -A -Name "www" -IPv4Address "192.0.0.1"
Add-DnsServerResourceRecord -ZoneName "woodgrove.com" -A -Name "www" -IPv4Address "141.1.0.1"

在預設範圍中新增記錄時,不會包含 ZoneScope 參數。 這與將記錄新增至標準 DNS 區域相同。

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

建立原則

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

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

Add-DnsServerQueryResolutionPolicy -Name "USPolicy" -Action ALLOW -ClientSubnet "eq,USSubnet" -ZoneScope "USZoneScope,1" -ZoneName "woodgrove.com"
Add-DnsServerQueryResolutionPolicy -Name "EuropePolicy" -Action ALLOW -ClientSubnet "eq,EuropeSubnet" -ZoneScope "EuropeZoneScope,1" -ZoneName "woodgrove.com"

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

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

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

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