Azure Private DNS Zoneを理解するための前提
Private DNS zoneのrecordはInternetから解決されず、zoneにlinkされたVNet、または適切なresolver/forwarder pathを通るclientから利用する。 VNet linkはautoregistration無効ならresolution network、 有効ならregistration networkとして動作する。1つのzoneには複数VNetをlinkできる。
1 VNetは複数のresolution zoneへlinkできるが、VM autoregistrationを有効にできるregistration zoneは1つだけ。 autoregistrationはVMのprimary NICを対象にし、すべてのAzure resourceを自動登録する万能機能ではない。
public zoneと同名private zoneを作るsplit-horizonは可能。ただしprivate zoneに存在しないpublic recordのfallbackを期待すると名前解決を壊すためauthority設計が必要。 VNetでcustom DNS serverを指定すると、linked Private DNS zoneをAzure-provided DNSが自動参照する標準順序をそのまま使えない。Private Resolver/conditional forwardingを設計する。
Control plane / DNS plane / Data plane
global Azure resourceとしてrecord setsを保持。public DNSとは別authorityで、Internetから直接queryできない。
どのVNetがそのzoneをresolveできるかを決め、optionでVM autoregistrationを有効化。
Default Azure-provided DNSならlinked zoneを直接参照。custom DNSならそのserverがPrivate DNSへ到達するforwarding designが必要。
Query / packet path
- clientのVNet DNS settingを確認する。
- Default Azure DNSならVNetにlinkされたPrivate DNS zonesが照会候補になる。
- query nameがlinked zoneにmatchしrecordがあればprivate answerを返す。
- matchしないnameはAzure-provided DNSの通常resolutionへ進む。
- custom DNS設定ならqueryは指定resolverへ送られ、Private DNS zoneはそのresolverのforwarding path次第になる。
- Private Endpoint用zoneではzone groupがA record lifecycleを管理し、clientはservice FQDNのCNAME chain経由で利用する。
仕組みを分解する
Private DNS zoneの「link」はnetwork reachabilityそのものではなくname-resolution associationです。Microsoft Learnは、zoneをlinkしたVNet同士がDNS resolutionのためだけにpeeringを必要としないことも示しています。一方、DNSで得たprivate IPへ実trafficを送るには別途VNet peering/ER/VPN/routeが必要です。このため「名前が引ける=packetが届く」「VNetがpeeringされている=zoneも引ける」という2つの誤認を避けます。
設計判断
| 判断軸 | 設計方針 |
|---|---|
| Namespace ownership | corp internal zoneとprivatelink service zoneを分け、誰がrecordを作るかを明確化する。 |
| Autoregistration | VM discoveryに必要なVNetだけで有効化。PaaS/ILB等は自動登録対象とみなさない。 |
| Split horizon | public/private同名zoneを使うなら、private sideで必要なrecord set全体とfallback要件を設計する。 |
| Custom DNS coexistence | AD DNS等をVNet custom DNSにする場合、Private Resolverまたはconditional forwarderでAzure private zoneへ戻すpathを作る。 |
確認手順
Read-only verification
- zone resource ID、record、VNet links、registrationEnabledをinventoryとして保存する。
- linked VNet内clientでA/AAAA/CNAMEをqueryし、expected recordとTTLを確認する。
- custom DNS VNetでは指定resolverへ直接queryし、forward先とresponse authorityを追う。
- split-horizonはAzure内部とInternet側の同一FQDNを両方queryし、意図した異なるanswerになっているか確認する。
Evidence to keep
- resource ID / subscription / region / VNet / subnetを固定し、同名resource取り違えを防ぐ。
- DNS queryはresolver IP、query name、answer/CNAME、TTL、timestampを一緒に保存する。
- network testはsource、resolved destination IP、protocol/port、winning route/security decisionを保存する。
- 変更前後で同じquery/application journeyを再実行し、cache/既存sessionでの見かけ上成功を避ける。
az network private-dns zone show -g <rg> -n <zone> -o jsonc
az network private-dns link vnet list -g <rg> -z <zone> -o table
az network private-dns record-set list -g <rg> -z <zone> -o table
az network vnet show -g <vnet-rg> -n <vnet> --query "dhcpOptions.dnsServers" -o jsonGet-AzPrivateDnsZone -ResourceGroupName <rg> -Name <zone>
Get-AzPrivateDnsVirtualNetworkLink -ResourceGroupName <rg> -ZoneName <zone>
Get-AzPrivateDnsRecordSet -ResourceGroupName <rg> -ZoneName <zone>
障害切り分け
| 症状 | 第一候補 | 証拠 | 次の確認 |
|---|---|---|---|
| zoneにrecordがあるのに引けない | VNet link/custom DNS | VNet DNS setting + link state | link/forwarderを修正 |
| VM recordが自動登録されない | registration link条件/primary NIC以外 | registrationEnabledとVM NIC | autoreg制約に合わせる |
| public名までNXDOMAIN | private同名zoneのoverride | SOA/record list | namespace設計を見直す |
| 別VNetで名前は引けるが通信不可 | routingはDNSと別 | resolved IP + route | peering/route/security確認 |
| 削除VMのrecord期待と不一致 | manual vs autoreg record混在 | record metadata/ownership | record lifecycleを整理 |
変更時の確認と rollback
- zone/link変更前にzone exportまたはrecord/link inventoryを保存する。
- registration link切替では自動record作成/削除の影響を確認し、手動recordと衝突させない。
- split-horizon変更はTTLを考慮して段階化し、private/public両resolverから検証する。
- rollback後はrecord存在だけでなく実client resolverからのanswerを確認する。
Current notes — 2026-09-11
Azure Private DNSはglobal zone resourceとして複数region/VNetから利用できます。2026-09-11時点の公式資料では、custom DNSをVNetに指定した場合はlinked private zoneの標準resolution orderが上書きされる点が明示されており、Private Resolverとの組み合わせを設計上の必須確認にします。