クイック スタート:Azure CLI を使用して Azure プライベート DNS ゾーンを作成する
このクイックスタートでは、Azure CLI を使用して最初のプライベート DNS ゾーンとレコードを作成する手順について説明します。
DNS ゾーンは、特定のドメインの DNS レコードをホストするために使用されます。 Azure DNS でドメインのホストを開始するには、そのドメイン名用に DNS ゾーンを作成する必要があります。 ドメインの DNS レコードはすべて、この DNS ゾーン内に作成されます。 仮想ネットワークにプライベート DNS ゾーンを発行するには、そのゾーン内のレコードを解決することが認められた仮想ネットワークの一覧を指定します。 これらを "リンクされている" 仮想ネットワーク と呼びます。 また、自動登録を有効にすると、仮想マシンの作成または削除、あるいはその IP アドレスの変更を行うたびに、Azure DNS でそのゾーン レコードも更新されます。
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 という名前の仮想ネットワークを作成します。 次に、private.contoso.com という名前の DNS ゾーンを MyAzureResourceGroup リソース グループに作成し、その 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 ゾーンをテストできるように 2 つの仮想マシンを作成します。
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 プライベート ゾーンでの名前解決をテストできます。
受信 ICMP を許可するように VM を構成する
名前解決は ping コマンドを使用してテストできます。 そこで、両方の仮想マシン上のファイアウォールを、受信 ICMP パケットを許可するように構成します。
myVM01 に接続し、管理者特権で Windows PowerShell ウィンドウを開きます。
次のコマンドを実行します。
New-NetFirewallRule –DisplayName "Allow ICMPv4-In" –Protocol ICMPv4
MyVM02 についても同じ手順を繰り返します。
VM を名前で ping する
myVM02 の Windows PowerShell コマンド プロンプトから、自動的に登録されたホスト名を使用して myVM01 を ping します。
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:\>
次に、前に作成した db 名を ping します。
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