この記事では、Azure portal を使用して Azure プライベート DNS で DNS ゾーン ファイルをインポートおよびエクスポートする方法について説明します。 Azure CLI を使用してゾーン ファイルをインポートおよびエクスポートすることもできます。 現在、インポートおよびエクスポート コマンドレットは 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 エントリが含まれている場合、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 個以下である必要があります。
ゾーン ファイルをインポートする
インポートするゾーンのゾーン ファイルのコピーを取得します。
Note
Start of Authority (SOA) レコードがゾーンに存在する場合、Azure プライベート DNS と互換性のある値で上書きされます。 ネームサーバー (NS) レコードはインポート前に削除する必要があります。 Azure プライベート DNS の互換性のあるリソース レコードの種類には、A、AAAA、CNAME、MX、PTR、SOA、SRV、TXT があります。 互換性のないレコードには、プライベート DNS ゾーン エディター内で赤の下線が引かれます。
この例では、以下の小さいゾーン ファイルとリソース レコードを使用します。
; MX Records ; A Records aa1 3600 IN A 10.10.0.1 db1002 3600 IN A 10.1.1.2 myvm 10 IN A 10.10.2.5 server1 3600 IN A 10.0.1.1 server2 3600 IN A 10.0.1.2 ; AAAA Records ; CNAME Records app1 3600 IN CNAME aa1.private.contoso.com. ; PTR Records ; TXT Records ; SRV Records
使用される名前:
- 元のゾーン名: private.contoso.com
- 宛先ゾーン名: private.contoso.com
- ゾーン ファイル名: private.contoso.com.txt
- リソース グループ: myresourcegroup
[プライベート DNS ゾーン] 概要ページを開き、[作成] を選択します。
[DNS ゾーンの作成] ページで、以下の値を入力または選択します。
- [リソース グループ]: 既存のリソース グループを選択するか、または [新規作成] を選択し、「myresourcegroup」と入力して [OK] を選択します。
- Name:この例では、「private.contoso.com」と入力します。
[Private DNS Zone Editor] (プライベート DNS ゾーン エディター) タブを選択し、private.contoso.com.txt ファイルをドラッグ アンド ドロップするか、参照して選択します。 [Private DNS Zone Editor] (プライベート DNS ゾーン エディター) が開きます。
ゾーンに対する変更が必要な場合は、表示されている値を編集できます。
[確認および作成] を選択し、次に [作成] を選択します。
デプロイが完了したら、[Go to resource] (リソースに移動) を選択し、[Recordsets] (レコードセット) を選択します。 Azure プライベート DNS と互換性のある SOA レコードが、自動的にゾーンに追加されます。 次の例を参照してください。
ゾーン ファイルをエクスポートする
[プライベート DNS ゾーン] 概要ページを開き、エクスポートするゾーンを選択します。 たとえば、private.contoso.com です。 次の例を参照してください。
エクスポートを選択します。 このファイルは、既定のダウンロード ディレクトリに、AzurePrivateDnsZone-private.contoso.com-
number
.txt という名前のテキスト ファイルとしてダウンロードされます。ここで、number
は自動生成されたインデックス番号です。ファイルを開いて内容を表示します。 次の例を参照してください。
; Exported zone file from Azure Private DNS ; Zone name: private.contoso.com ; Date and time (UTC): Mon, 17 Jun 2024 20:35:47 GMT $TTL 10 $ORIGIN private.contoso.com ; SOA Record @ 3600 IN SOA azureprivatedns.net azureprivatedns-host.microsoft.com ( 1 ;serial 3600 ;refresh 300 ;retry 2419200 ;expire 10 ;minimum ttl ) ; MX Records ; A Records aa1 3600 IN A 10.10.0.1 db1002 3600 IN A 10.1.1.2 myvm 10 IN A 10.10.2.5 server1 3600 IN A 10.0.1.1 server2 3600 IN A 10.0.1.2 ; AAAA Records ; CNAME Records app1 3600 IN CNAME aa1.private.contoso.com. ; PTR Records ; TXT Records ; SRV Records
次のステップ
- DNS ゾーンでレコード セットとレコードを管理する方法についてはこちらをご覧ください。