設計虛擬網路的名稱解析

已完成

根據您使用 Azure 來裝載 IaaS、PaaS 以及混合式解決方案的方式,您可能需要允許虛擬網路中所部署的虛擬機器 (VM) 與其他資源可以彼此通訊。 雖然可以使用 IP 位址來進行通訊,但是使用能輕鬆記住且不會變更的名稱會更加簡單。

DNS 分為兩個區域:公用和私人 DNS,可從您自己的內部網路存取資源。

公用 DNS 服務

公用 DNS 服務會解析可透過網際網路 (例如 Web 伺服器) 存取的資源和服務名稱和 IP 位址。 Azure DNS 是 DNS 網域的主機服務,可使用 Microsoft Azure 基礎結構來提供名稱解析。 Azure DNS 中的 DNS 網域裝載於 Azure 的 DNS 名稱伺服器全球網路。 Azure DNS 會使用「任一傳播」網路。 每個 DNS 查詢是由最接近的可用 DNS 伺服器回答,而為您的網域提供快速的效能和高可用性。

在 Azure DNS 中,您可以在相關區域內手動建立位址記錄。 最常使用的記錄將會是:

  • 主機記錄:A/AAAA (IPv4/IPv6)
  • 別名記錄:CNAME

Azure DNS 提供了可靠且安全的 DNS 服務,使您不需要新增自訂 DNS 解析,就能在虛擬網路中管理和解析網域名稱。

DNS 區域裝載網域的 DNS 記錄。 因此,若要開始將網域裝載到 Azure DNS 中,您必須建立該網域名稱的 DNS 區域。 接著在此 DNS 區域內,建立網域的每筆 DNS 記錄。

考量

  • 區域的名稱在資源群組內必須是唯一的,且區域必須尚未存在。
  • 不同的資源群組或不同的 Azure 訂用帳戶中,可重複使用相同的區域名稱。
  • 多個區域共用相同的名稱時,系統就會將不同的名稱伺服器位址,指派給每個執行個體。
  • 根/父系網域已在註冊機構註冊,並指向 Azure NS。
  • 子網域會直接在 AzureDNS 中註冊。

注意

您不必擁有網域名稱,也能在 Azure DNS 中以該網域名稱建立 DNS 區域。 不過,您必須擁有網域才能設定網域。

委派 DNS 網域

Azure DNS 可讓您裝載 DNS 區域,並在 Azure 中管理網域的 DNS 記錄。 網域必須從父系網域委派給 Azure DNS,該網域的 DNS 查詢才能送達 Azure DNS。 請注意,Azure DNS 不是網域登錄器。

若要將您的網域委派給 Azure DNS,您必須先知道區域的名稱伺服器名稱。 每次建立 DNS 區域時,Azure DNS 會從集區配置名稱伺服器。 指派名稱伺服器之後,Azure DNS 會自動在您的區域中建立權威 NS 記錄。

一旦建立 DNS 區域且您擁有名稱伺服器,您就必須更新父系網域。 每個註冊機構都有自己的 DNS 管理工具來更改網域的名稱伺服器記錄。 在註冊機構的 DNS 管理頁面中,編輯 NS 記錄,並用 Azure DNS 建立的記錄替換 NS 記錄。

注意

將網域委派到 Azure DNS 時,必須使用 Azure DNS 提供的名稱伺服器名稱。 不論您的網域名稱為何,您應一律將名稱伺服器的 4 個名稱全部用上。

子網域

如果您想要設定個別的子區域,您可以在 Azure DNS 中委派子網域。 例如,在 Azure DNS 中設定 contoso.com 之後,您可以為 partners.contoso.com 設定個別的子區域。

設定子網域的程序跟一般委派的程序相同。 唯一的差異在於,NS 記錄必須建立於 Azure DNS 的上層區域 contoso.com 中,而不是在網域註冊機構中進行。

注意

上層區域和子區域可以位於相同或不同的資源群組中。 請注意,上層區域中的記錄集名稱符合子區域名稱,在此案例中為合作夥伴

請務必了解 DNS 記錄集和個別 DNS 記錄之間的差別。 記錄集是指一個區域中有相同名稱和相同類型的記錄集合。

[新增記錄集] 頁面的螢幕擷取畫面。

記錄集不能包含兩筆相同的記錄。 您可以建立空的記錄集 (沒有記錄),但該記錄集不會出現在 Azure DNS 名稱伺服器上。 類型為 CNAME 的記錄集最多只能包含一筆記錄。

[新增記錄集] 頁面會根據您選取的記錄類型而變更。 若為 A 記錄,您將需要 TTL (存留時間) 和 IP 位址。 存留時間 (或 TTL) 會指定使用者端快取每一筆記錄多長時間後,才會重新查詢。

[新增記錄] 頁面的螢幕擷取畫面。

私人 DNS 服務

私人 DNS 服務會解析資源和服務的名稱和 IP 位址

當部署在虛擬網路中的資源需要將網域名稱解析為內部 IP 位址時,可以使用下列三種方法之一:

  • Azure DNS 私人區域
  • Azure 提供的名稱解析
  • 使用專屬 DNS 伺服器的名稱解析

您使用的名稱解析類型取決於資源如何彼此通訊。

您的名稱解析需求可能超過 Azure 所提供的功能。 例如,您可能需要使用 Microsoft Windows Server Active Directory 網域,在虛擬網路之間解析 DNS 名稱。 為了涵蓋這些案例,Azure 提供可讓您使用專屬 DNS 伺服器的能力。

虛擬網路中的 DNS 伺服器可以將 DNS 查詢轉送給 Azure 中的遞迴解析程式。 這可讓您解析該虛擬網路內的主機名稱。 例如,在 Azure 中執行的網域控制站 (DC) 可以回應其網域的 DNS 查詢,並將所有其他查詢轉送到 Azure。 轉送查詢可讓虛擬機器查看您的內部部署資源 (透過 DC) 以及 Azure 提供的主機名稱 (透過轉送工具)。 在 Azure 中遞迴解析程式的存取是透過虛擬 IP 168.63.129.16 所提供。

DNS 轉送也會啟用虛擬網路之間的 DNS 解析,並使內部部署電腦能夠解析 Azure 提供的主機名稱。 為了解析虛擬機器的主機名稱,DNS 伺服器虛擬機器必須位於同一個虛擬網路中,且設定為將主機名稱查詢轉送到 Azure。 因為每個虛擬網路的 DNS 尾碼都不同,所以您可以使用條件性轉送規則來將 DNS 查詢傳送到正確的虛擬網路進行解析。

Azure 提供的 DNS

Azure 提供自己的預設內部 DNS。 提供一律存在的內部 DNS 區域、支援自動註冊、不需要手動建立記錄,並且會在建立 VNet 時建立。 這是免費的服務。 Azure 提供的名稱解析只會提供基本的授權 DNS 功能。 如果您使用此選項,Azure 會自動管理 DNS 區域名稱和記錄,而且您將無法控制 DNS 區域名稱或 DNS 記錄的生命週期。

內部 DNS 會定義命名空間,如下所示:.internal.cloudapp.net。

在 VNet 中建立的任何 VM 都會在內部 DNS 區域中註冊,並取得 DNS 網域名稱 (例如 myVM.internal.cloudapp.net)。 請務必確認其為已註冊的 Azure 資源名稱,而不是 VM 上的客體作業系統名稱。

內部 DNS 的限制

  • 無法跨不同的 VNet 解析。
  • 註冊資源名稱,而不是客體作業系統名稱。
  • 不允許手動建立記錄。

Azure 私人 DNS 區域

Azure 中的私人 DNS 區域僅供內部資源使用。 其範圍是全域的,因此您可以從任何區域、任何訂用帳戶、任何 VNet 和任何租用戶加以存取。 如果您有讀取區域的權限,您可以使用其來解析名稱。 私人 DNS 區域具有高度復原能力,會複寫到世界各地的區域。 網際網路上的資源無法使用。

在需要比內部 DNS 所允許更多彈性的情況下,您可以建立自己的私人 DNS 區域。 這些區域可讓您:

  • 為區域設定特定的 DNS 名稱。
  • 視需要手動建立記錄。
  • 解析不同區域之間的名稱和 IP 位址。
  • 解析不同 VNet 之間的名稱和 IP 位址。

使用入口網站建立私人 DNS 區域

您可以使用 Azure 入口網站、Azure PowerShell 或 Azure CLI 建立私人 DNS 區域。 私人 DNS 區域搜尋的螢幕擷取畫面。

部署新的 DNS 區域時,您可以手動建立資源記錄,或使用自動註冊,這會根據 Azure 資源名稱建立資源記錄。

私人 DNS 區域支援完整的記錄範圍,包括指標、MX、SOA、服務和文字記錄。

在 Azure 中,VNet 代表 1 個或多個子網路的群組,如 CIDR 範圍所定義。 VM 之類的資源會新增至子網路。

在 VNet 層級,預設 DNS 設定是 Azure 所進行 DHCP 指派的一部分,指定特殊位址168.63.129.16 以使用 Azure DNS 服務。

如有必要,您可以在 VM NIC 上設定替代的 DNS 伺服器,以覆寫預設組態。

DNS 預設組態。

有兩種方式可將 VNet 連結至私人區域:

  • 註冊:每個 VNet 都可以連結至一個私人 DNS 區域進行註冊。 不過,最多 100 個 VNet 可以連結至相同的私人 DNS 區域進行註冊。
  • 解析:不同的命名空間可能有許多其他私人 DNS 區域。 您可以將 VNet 連結到每個區域,以進行名稱解析。 每個 VNet 最多可連結至 1000 個私人 DNS 區域,以進行名稱解析。

VNet 會連結至私人 DNS 區域以進行註冊,以及最多 100 個私人 DNS 區域以進行解析。

整合內部部署 DNS 與 Azure VNet

如果您有外部 DNS 伺服器 (例如內部部署伺服器),您可以使用 VNet 上的自訂 DNS 設定來整合兩者。

您的外部 DNS 可以在任何 DNS 伺服器上執行:BIND on UNIX、Active Directory Domain Services DNS 等等。 如果您想要使用外部 DNS 伺服器,而不是預設的 Azure DNS 服務,您必須設定所需的 DNS 伺服器。

組織通常會使用內部 Azure 私人 DNS 區域進行自動註冊,然後使用自訂設定從外部 DNS 伺服器轉送查詢外部區域。

轉送採用兩種形式:

  • 轉送 - 指定另一部 DNS 伺服器 (SOA 作為區域),如果初始伺服器無法,則會解析查詢。
  • 條件式轉送 - 指定命名區域的 DNS 伺服器,以便將該區域的所有查詢都路由傳送至指定的 DNS 伺服器。

注意

如果 DNS 伺服器在 Azure 之外,就無法在 168.63.129.16 上存取 Azure DNS。 在此案例中,請在您的 VNet 內設定 DNS 解析程式、將查詢轉送至該解析程式,然後將查詢轉送至 168.63.129.16 (Azure DNS)。 基本上,您正在使用轉送,因為 168.63.129.16 無法路由傳送,因此無法供外部用戶端存取。

內部部署 DNS 伺服器會使用條件式轉送來轉送 VNet 1 的查詢。VNet 1 中的 DNS 解析程式會將查詢傳送至 Azure DNS 以進行解析。

為以下每個問題選擇最佳的答案。 然後選取 [檢查您的答案]

檢定您的知識

1.

靜態公用 IP 位址和動態公用 IP 位址之間有何差異?

2.

應用程式擁有者必須針對其 VNet 上的特定資源使用動態 IP 位址。 他們必須選擇哪個 SKU?