快速入門:使用 Azure CLI 建立 Azure 私人 DNS 區域
此快速入門將逐步引導您使用 Azure CLI 來建立第一個私人 DNS 區域與第一筆記錄。
DNS 區域用於裝載特定網域的 DNS 記錄。 若要開始將網域裝載到 Azure DNS 中,您必須建立該網域名稱的 DNS 區域。 接著在此 DNS 區域內,建立網域的每筆 DNS 記錄。 若要將私人 DNS 區域發佈到虛擬網路,則可指定允許解析區域內記錄的虛擬網路清單。 這稱為「連結」虛擬網路。 啟用自動註冊時,Azure DNS 也會在每次建立虛擬機器時更新區域記錄,變更其 IP 位址,或者在刪除虛擬機器時更新。
如果您沒有 Azure 訂閱,請在開始之前,先建立 Azure 免費帳戶。
必要條件
在 Azure Cloud Shell 中使用 Bash 環境。 如需詳細資訊,請參閱 Azure Cloud Shell 中的 Bash 快速入門。
若要在本地執行 CLI 參考命令,請安裝 Azure CLI。 若您在 Windows 或 macOS 上執行,請考慮在 Docker 容器中執行 Azure CLI。 如需詳細資訊,請參閱〈如何在 Docker 容器中執行 Azure CLI〉。
如果您使用的是本機安裝,請使用 az login 命令,透過 Azure CLI 來登入。 請遵循您終端機上顯示的步驟,完成驗證程序。 如需其他登入選項,請參閱使用 Azure CLI 登入。
出現提示時,請在第一次使用時安裝 Azure CLI 延伸模組。 如需擴充功能詳細資訊,請參閱使用 Azure CLI 擴充功能。
執行 az version 以尋找已安裝的版本和相依程式庫。 若要升級至最新版本,請執行 az upgrade。
- 您也可以使用 Azure PowerShell 完成此快速入門。
建立資源群組
首先,請建立包含 DNS 區域的資源群組:
az group create --name MyAzureResourceGroup --location "East US"
建立私人 DNS 區域
下列範例會建立名為 myAzureVNet 的虛擬網路。 然後,它會在 MyAzureResourceGroup資源群組中建立名為 private.contoso.com 的 DNS 區域、將 DNS 區域連結到 MyAzureVnet 虛擬網路,以及啟用自動註冊。
az network vnet create \
--name myAzureVNet \
--resource-group MyAzureResourceGroup \
--location eastus \
--address-prefix 10.2.0.0/16 \
--subnet-name backendSubnet \
--subnet-prefixes 10.2.0.0/24
az network private-dns zone create -g MyAzureResourceGroup \
-n private.contoso.com
az network private-dns link vnet create -g MyAzureResourceGroup -n MyDNSLink \
-z private.contoso.com -v myAzureVNet -e true
如果您只想建立一個區域僅供名稱解析使用 (沒有自動主機名稱註冊),您可以使用 -e false
參數。
列出 DNS 私人區域
若要列舉 DNS 區域,請使用 az network private-dns zone list
。 如需協助,請參閱 az network dns zone list --help
。
指定資源群組只會列出資源群組內的區域︰
az network private-dns zone list \
-g MyAzureResourceGroup
省略資源群組則會列出訂用帳戶中的所有區域︰
az network private-dns zone list
建立測試虛擬機器
現在,請建立兩部虛擬機器,讓您可以測試私人 DNS 區域:
az vm create \
-n myVM01 \
--admin-username AzureAdmin \
-g MyAzureResourceGroup \
-l eastus \
--subnet backendSubnet \
--vnet-name myAzureVnet \
--nsg NSG01 \
--nsg-rule RDP \
--image win2016datacenter
az vm create \
-n myVM02 \
--admin-username AzureAdmin \
-g MyAzureResourceGroup \
-l eastus \
--subnet backendSubnet \
--vnet-name myAzureVnet \
--nsg NSG01 \
--nsg-rule RDP \
--image win2016datacenter
建立虛擬機器需要數分鐘的時間才能完成。
建立其他的 DNS 記錄
若要建立 DNS 記錄,請使用 az network private-dns record-set [record type] add-record
命令。 如需說明,例如 A 記錄,請參閱 az network private-dns record-set A add-record --help
。
下列範例會在資源群組 MyAzureResourceGroup 中的 DNS 區域 private.contoso.com 中,建立具有相對名稱 db 的記錄。 記錄集的完整名稱是 db.private.contoso.com。 記錄類型為 "A",IP 位址是 "10.2.0.4"。
az network private-dns record-set a add-record \
-g MyAzureResourceGroup \
-z private.contoso.com \
-n db \
-a 10.2.0.4
檢視 DNS 記錄
若要列出區域中的 DNS 記錄,請執行︰
az network private-dns record-set list \
-g MyAzureResourceGroup \
-z private.contoso.com
測試私人區域
現在,您可以測試 private.contoso.com 私人區域的名稱解析。
設定 VM,以允許輸入 ICMP
您可以使用 Ping 命令來測試名稱解析。 因此,請在兩部虛擬機器上設定防火牆,以允許輸入的 ICMP 封包。
連線至 myVM01,然後以系統管理員權限開啟 Windows PowerShell 視窗。
執行以下命令:
New-NetFirewallRule –DisplayName "Allow ICMPv4-In" –Protocol ICMPv4
針對 myVM02 重複。
依照名稱 Ping VM
從 myVM02 Windows PowerShell 命令提示字元中,使用自動註冊的主機名稱 Ping myVM01:
ping myVM01.private.contoso.com
您應該會看到如下所示的類似輸出:
PS C:\> ping myvm01.private.contoso.com Pinging myvm01.private.contoso.com [10.2.0.4] with 32 bytes of data: Reply from 10.2.0.4: bytes=32 time<1ms TTL=128 Reply from 10.2.0.4: bytes=32 time=1ms TTL=128 Reply from 10.2.0.4: bytes=32 time<1ms TTL=128 Reply from 10.2.0.4: bytes=32 time<1ms TTL=128 Ping statistics for 10.2.0.4: Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), Approximate round trip times in milli-seconds: Minimum = 0ms, Maximum = 1ms, Average = 0ms PS C:\>
現在 Ping 您先前建立的 db 名稱:
ping db.private.contoso.com
您應該會看到如下所示的類似輸出:
PS C:\> ping db.private.contoso.com Pinging db.private.contoso.com [10.2.0.4] with 32 bytes of data: Reply from 10.2.0.4: bytes=32 time<1ms TTL=128 Reply from 10.2.0.4: bytes=32 time<1ms TTL=128 Reply from 10.2.0.4: bytes=32 time<1ms TTL=128 Reply from 10.2.0.4: bytes=32 time<1ms TTL=128 Ping statistics for 10.2.0.4: Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), Approximate round trip times in milli-seconds: Minimum = 0ms, Maximum = 0ms, Average = 0ms PS C:\>
清除資源
當不再需要時,請刪除 MyAzureResourceGroup 資源群組,來刪除本快速入門中建立的資源。
az group delete --name MyAzureResourceGroup