クイック スタート: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 パケットを許可するように構成します。

  1. myVM01 に接続し、管理者特権で Windows PowerShell ウィンドウを開きます。

  2. 次のコマンドを実行します。

    New-NetFirewallRule –DisplayName "Allow ICMPv4-In" –Protocol ICMPv4
    

MyVM02 についても同じ手順を繰り返します。

VM を名前で ping する

  1. 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:\>
    
  2. 次に、前に作成した 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

次のステップ