在 Azure Stack Hub 中使用 DNS

Azure Stack Hub 支援下列 Azure DNS 功能:

  • DNS 主機名稱解析。
  • 使用 API 建立和管理 DNS 區域和記錄。

支援 DNS 主機名稱解析

您可以指定公用 IP 資源的 DNS 網域名稱標籤。 Azure Stack Hub 使用 domainnamelabel.location.cloudapp.azurestack.external 作為標籤名稱,並將它對應至 Azure Stack Hub 受控 DNS 伺服器中的公用 IP 位址。

例如,如果您建立公用 IP 資源並以 contoso 作為本機 Azure Stack Hub 位置的網域名稱標籤,則完整網域名稱 (FQDN) contoso.local.cloudapp.azurestack.external 會解析為資源的公用 IP 位址。 您可以使用此 FQDN 來建立自訂網域 CNAME 記錄,其指向 Azure Stack Hub 中的公用 IP 位址。

若要從 Azure Stack Hub 外部進行 DNS 解析,您可以使用公用 IP 位址來建立新的區域,而不是委派內部 DNS 區域。 否則,用戶端將無法存取 Azure Stack Hub 基礎結構 DNS 伺服器所解析的 IP 位址。

若要深入了解名稱解析,請參閱 DNS 解析一文。

重要

您所建立的每個網域名稱標籤在其 Azure Stack Hub 位置中都必須是唯一的。

以下螢幕擷取畫面顯示 [建立公用 IP 位址] 對話方塊,以便使用入口網站建立公用 IP 位址:

Create public IP address

範例案例

您可讓負載平衡器處理來自 Web 應用程式的要求。 負載平衡器的背後是在一或多個虛擬機器上執行的網站。 您可以使用 DNS 名稱 (而不是 IP 位址) 來存取負載平衡的網站。

使用 API 建立和管理 DNS 區域和記錄

您可以建立和管理 DNS 區域和 Azure Stack Hub 中的記錄。

Azure Stack Hub 提供類似 Azure 的 DNS 服務,使用與 Azure DNS API 一致的 API。 將您的網域裝載於 Azure Stack Hub DNS,您就可以使用相同的認證、API 和工具來管理 DNS 記錄。 您也可以使用與其他 Azure 服務相同的計費方式和支援。

Azure Stack Hub DNS 的基礎結構比 Azure 更為精簡。 Azure Stack Hub 部署的大小和位置將會影響 DNS 範圍、級別和效能。 這也表示每個部署的效能、可用性、全域發佈和高可用性不盡相同。

與 Azure DNS 比較

Azure Stack Hub 中的 DNS 與 Azure 中的 DNS 類似,但有一些重要的例外:

  • 不支援 AAAA 記錄:Azure Stack Hub 不支援 AAAA 記錄,因為 Azure Stack Hub 並不支援 IPv6 位址。 這是 Azure 和 Azure Stack Hub DNS 之間的主要差異。

  • 不是多租用戶:Azure Stack Hub 中的 DNS 服務不是多租用戶。 租用戶無法建立相同的 DNS 區域。 僅有首個訂用帳戶嘗試建立區域會成功,後續要求皆會失敗。 這是 Azure 和 Azure Stack Hub DNS 之間的另一個主要差異。

  • 標記、中繼資料和 Etag:Azure Stack Hub 處理標記、中繼資料、Etag 和限制的方式有些許差異。

若要深入了解 Azure DNS,請參閱 DNS 區域和記錄

Tags

Azure Stack Hub DNS 支援在 DNS 區域資源上,使用 Azure Resource Manager 標記。 但不支援 DNS 記錄集上的標記。 支援在 DNS 記錄集上使用中繼資料作為替代,下一節中會詳述。

中繼資料

Azure Stack Hub DNS 支援使用中繼資料來替代記錄集標記,用以標註記錄集。 類似於標記,中繼資料可讓您建立名稱-值組與每個記錄集之間的關聯。 例如,中繼資料適合用來記錄每個記錄集的目的。 與標記不同的是,您無法使用中繼資料來提供 Azure 帳單篩選過的檢視,也無法在 Azure Resource Manager 原則中指定中繼資料。

Etag

假設有兩個人或兩個處理序同時嘗試修改 DNS 記錄。 何者獲勝? 獲勝者知道他已覆寫另一人所做的變更嗎?

Azure Stack Hub DNS 使用 Etag 以安全地處理相同資源的並行變更。 Etag 和 Azure Resource Manager 標籤是不同的。 每個 DNS 資源 (區域或記錄集) 都有一個相關聯的 Etag。 每當擷取資源時,也會擷取其 Etag。 更新資源時,您可以選擇傳回 Etag,讓 Azure Stack Hub DNS 可以確認伺服器上的 Etag 相符。 因為每次更新資源都會重新產生 Etag,Etag 不符就表示發生並行變更。 建立新的資源時也可以使用 Etag,以確定該資源尚不存在。

根據預設,Azure Stack Hub DNS PowerShell Cmdlet 會使用 Etag 來禁止對區域和記錄集進行並行變更。 您可以使用選擇性的 -Overwrite 參數來停用 Etag 檢查。 如果沒有 Etag 檢查,系統會覆寫任何已發生的並行變更。

在 Azure Stack Hub DNS REST API 層級上,將會使用 HTTP 標頭指定 Etag。 下表描述了其行為:

頁首 行為
None PUT 一定成功 (沒有 Etag 檢查)。
If-match 唯有當資源存在且 Etag 符合時,PUT 才會成功。
If-match * 唯有當資源存在時,PUT 才會成功。
If-none-match * 唯有當資源不存在時,PUT 才會成功。

限制

使用 Azure Stack Hub DNS 時,會適用下列的預設限制︰

資源 預設限制
每一訂用帳戶的區域 100
每一區域的記錄集 5000
每一記錄集的記錄 20

後續步驟