Azure portal を使用して DNS ゾーン ファイルをインポートおよびエクスポートする
この記事では、Azure portal を使用して Azure DNS で DNS ゾーン ファイルをインポートおよびエクスポートする方法について説明します。 Azure PowerShell を使用してゾーン ファイルをインポートおよびエクスポートすることもできます。
DNS ゾーンの移行に関する概要
DNS ゾーン ファイルとは、ゾーン内のすべての DNS レコードに関する詳細が含まれるテキスト ファイルです。 このファイルは標準の形式に従っているため、DNS システム間で DNS レコードを転送するのに適しています。 ゾーン ファイルの使用は、DNS ゾーンを Azure DNS にインポートするための高速で便利な方法です。 また、Azure DNS からゾーン ファイルをエクスポートして、他の DNS システムと共に使用することもできます。
Azure DNS では、Azure CLI および Azure portal を使用したゾーン ファイルのインポートとエクスポートをサポートしています。
既存の DNS ゾーン ファイルの取得
Azure DNS に DNS ゾーン ファイルをインポートするには、事前にゾーン ファイルのコピーを取得しておく必要があります。 このファイルのソースは、DNS ゾーンがホストされている場所によって異なります。
- ご利用の DNS ゾーンがパートナーのサービスによってホストされている場合、そのサービスによって DNS ゾーン ファイルをダウンロードするための方法が提供されます。 パートナーのサービスには、ドメイン レジストラー、専用の DNS ホスティング プロバイダー、または代替クラウド プロバイダーが含まれます。
- DNS ゾーンが Windows DNS にホストされている場合、ゾーン ファイルは既定のフォルダー %systemroot%\system32\dns にあります。 各ゾーン ファイルへの完全なパスは、DNS コンソールの [全般] タブにも表示されます。
- DNS ゾーンが BIND を使用してホストされている場合、各ゾーンのゾーン ファイルの場所は、named.conf という名前の BIND 構成ファイルに指定されています。
重要
インポートするゾーン ファイルにプライベート ゾーン内の名前を指す CNAME エントリが含まれている場合、他のゾーンもインポートされるか、CNAME エントリが変更されない限り、CNAME の Azure DNS 解決は失敗します。
Azure DNS への DNS ゾーン ファイルのインポート
ゾーン ファイルのインポートを実行すると、Azure DNS 内にまだゾーンが存在しない場合、新しいゾーンが作成されます。 ゾーンが存在する場合は、ゾーン ファイル内のレコード セットが既存のレコード セットにマージされます。
マージ動作
- 既定では、新しいレコード セットは既存のレコード セットとマージされます。 マージされたレコード セット内の一致するレコードは、複製されません。
- レコード セットをマージした場合、既存のレコード セットの有効期限 (TTL) が使用されます。
- SOA (Start of Authority) パラメーター (
host
を除く) は常に、インポートされたゾーン ファイルから取得されます。 ゾーンの頂点にあるネーム サーバー レコード セットでも、インポートされたゾーン ファイルから取得された TTL が常に使用されます。 - インポートされた CNAME レコードは、同じ名前を持つ既存の CNAME レコードに取って代わります。
- CNAME レコードと、名前が同じで種類が異なるレコードとの間で競合が発生した場合は、既存のレコードが使用されます。
インポートに関する追加情報
次に、ゾーンのインポート プロセスに関するその他の詳細を説明します。
$TTL
ディレクティブは省略可能であり、サポートされています。$TTL
ディレクティブを指定しなかった場合、明示的な TTL を持たないレコードは、既定の TTL である 3600 秒が設定されてインポートされます。 同じレコード セット内の 2 つのレコードで別々の TTL を指定した場合は、小さい方の値が使用されます。$ORIGIN
ディレクティブは省略可能であり、サポートされています。$ORIGIN
を設定しない場合、使用される既定値は、コマンドラインで指定したゾーン名 (末尾にドット (.) を含む) となります。$INCLUDE
と$GENERATE
ディレクティブはサポートされていません。- A、AAAA、CAA、CNAME、MX、NS、SOA、SRV、および TXT のレコード タイプがサポートされています。
- ゾーンの作成時には、Azure DNS によって SOA レコードが自動的に作成されます。 ゾーン ファイルのインポート時には、
host
パラメーターを "除き"、すべての SOA パラメーターがゾーン ファイルから取得されます。 このパラメーターには、Azure DNS によって提供される値を使用します。Azure DNS によって提供されたプライマリ ネーム サーバーが参照される必要があるからです。 - ゾーンの作成時には、ゾーンの頂点のネーム サーバー レコード セットも Azure DNS によって自動的に作成されます。 このレコード セットの TTL のみがインポートされます。 これらのレコードには、Azure DNS によって提供されたネーム サーバー名が格納されています。 レコード データは、インポートされたゾーン ファイルに含まれる値によって上書きされることはありません。
- Azure DNS では単一行文字列の TXT レコードしかサポートしません。 複数行文字列の TXT レコードは連結され、255 文字に切り捨てられます。
- インポートするゾーン ファイルは、10,000 行以下で、レコード セットが 3,000 個以下である必要があります。
ゾーン ファイルをインポートする
インポートするゾーンのゾーン ファイルのコピーを取得します。
この例では、以下の小さいゾーン ファイルとリソース レコードを使用します。
$ORIGIN adatum.com. $TTL 86400 @ IN SOA dns1.adatum.com. hostmaster.adatum.com. ( 2023091201 ; serial 21600 ; refresh after 6 hours 3600 ; retry after 1 hour 604800 ; expire after 1 week 86400 ) ; minimum TTL of 1 day IN NS dns1.adatum.com. IN NS dns2.adatum.com. IN MX 10 mail.adatum.com. IN MX 20 mail2.adatum.com. dns1 IN A 5.4.3.2 dns2 IN A 4.3.2.1 server1 IN A 4.4.3.2 server2 IN A 5.5.4.3 ftp IN A 3.3.2.1 IN A 3.3.3.2 mail IN CNAME server1 mail2 IN CNAME server2 www IN CNAME server1
使用される名前:
- 元のゾーン名: adatum.com
- 宛先ゾーン名: adatum.com
- ゾーン ファイル名: adatum.com.txt
- リソース グループ: myresourcegroup
[DNS zones]\(DNS ゾーン\) 概要ページを開き、[作成] を選択します。
[DNS ゾーンの作成] ページで、以下の値を入力または選択します。
- [リソース グループ]: 既存のリソース グループを選択するか、または [新規作成] を選択し、「myresourcegroup」と入力して [OK] を選択します。 Azure サブスクリプション内で一意となるリソース グループ名を使用してください。
- [名前]: この例では、「adatum.com」と入力します。 DNS ゾーン名には、Azure DNS サーバーに既に構成されていない任意の値を指定できます。 実際の値は、ドメイン名レジストラーから購入したドメインになります。
[Review create]\(確認および作成\) を選択し、次に [作成] を選択します。
デプロイが完了したら、[リソースに移動] を選択します。 Azure パブリック DNS と互換性のある NS レコードと SOA レコードは、ゾーンに自動的に追加されます。 次の例を参照してください。
[インポート] を選択し、[Import DNS zone]\(DNS ゾーンのインポート\) ページで [参照] を選択します。
adatum.com.txt ファイルを選択し、[開く] を選択します。 ゾーン ファイルが DNS ゾーン エディターに表示されます。 次の例を参照してください。
次の手順に進む前に、ゾーン データ値を編集します。
Note
ゾーン ファイルに古い NS レコードが存在する場合は、ゾーンのインポート中に非ブロッキング エラーが表示されます。 Azure NS レコードは上書きされません。 インポート前に古い NS レコードが削除されるのが理想的です。
ゾーンのシリアル番号をリセットする場合は、インポートする前に SOA から古いシリアル番号を削除します。[Review Create]\(確認および作成\) を選択し、DNS ゾーン差分ビューアーで情報を確認します。 次の例を参照してください。
[作成] を選択します 既存のゾーンを上書きする前に、ローカル デバイスに保存するように求めるダイアログが表示されます。 [ダウンロードして続行] を選択します。 ゾーン データがインポートされ、ゾーンが表示されます。
[レコードセット] を選択すると、新しくインポートされたリソース レコードが表示されます。 次の例を参照してください。
ゾーン ファイルをエクスポートする
[DNS zones]\(DNS ゾーン\) 概要ページを開き、エクスポートするゾーンを選択します。 たとえば、adatum.com とします。 次の例を参照してください。
エクスポートを選択します。 このファイルは、既定のダウンロード ディレクトリに、AzurePublicDnsZone-adatum.com
number
.txt という名前のテキスト ファイルとしてダウンロードされます。ここで、number
は自動生成されたインデックス番号です。ファイルを開いて内容を表示します。 次の例を参照してください。
; Exported zone file from Azure DNS ; Zone name: adatum.com ; Date and time (UTC): Tue, 12 Sep 2023 21:33:17 GMT $TTL 86400 $ORIGIN adatum.com ; SOA Record @ 3600 IN SOA SOA dns1.adatum.com. ( 0 ;serial 21600 ;refresh 3600 ;retry 604800 ;expire 86400 ;minimum ttl ) ; NS Records @ 172800 IN NS ns1-36.azure-dns.com. @ 172800 IN NS ns2-36.azure-dns.net. @ 172800 IN NS ns3-36.azure-dns.org. @ 172800 IN NS ns4-36.azure-dns.info. ; MX Records @ 3600 IN MX 10 mail.adatum.com. @ 3600 IN MX 20 mail2.adatum.com. ; A Records dns1 3600 IN A 5.4.3.2 dns2 3600 IN A 4.3.2.1 ftp 3600 IN A 3.3.2.1 ftp 3600 IN A 3.3.3.2 server1 3600 IN A 4.4.3.2 server2 3600 IN A 5.5.4.3 ; AAAA Records ; CNAME Records mail 3600 IN CNAME server1 mail2 3600 IN CNAME server2 www 3600 IN CNAME server1 ; PTR Records ; TXT Records ; SRV Records ; SPF Records ; CAA Records ; DS Records ; Azure Alias Records