TL

Cloud Service

Azure Private DNS

独自の DNS サーバーを立てずに、仮想ネットワーク内だけで使えるプライベートな名前解決を実現。VM 名の自動登録やプライベートエンドポイントの FQDN 解決を担う Azure Private DNS。AWS の Route 53 プライベートホストゾーンに相当。

基礎運用上の優秀性セキュリティ信頼性
最終更新: 2026-06-28公式ドキュメント ↗
TL;DR要点だけ先に
  • 1.VNet 内専用のプライベートゾーンで名前解決を提供。DNS サーバー不要のマネージドサービス。
  • 2.VNet リンクと自動登録で VM の A レコードを自動管理できる。
  • 3.プライベートエンドポイントの FQDN をプライベート IP に解決させる要。Route 53 プライベートホストゾーン相当。

解決する課題

VNet 内部だけで通用するドメイン名を、独自の DNS サーバー(BIND など)を構築・運用せずにマネージドで提供できます。

  • VM やサービスを IP ではなく名前で参照したいが、内部ホスト名を外部に晒したくない
  • VM を作るたびに DNS レコードを手作業で登録するのを避け、自動でレコードを管理したい
  • プライベートエンドポイントの FQDN をパブリック IP ではなくプライベート IP に解決させたい
  • カスタム DNS サーバーを立てて維持する運用負担をなくしたい

主要概念と用語

  • プライベート DNS ゾーン (Private DNS zone): VNet 内部向けの権威 DNS ゾーン。corp.contoso.com のような任意の名前を持て、インターネットには公開されない。パブリックな Azure DNS ゾーンとは別物
  • 仮想ネットワークリンク (Virtual network link): ゾーンを VNet に紐づける設定。リンクした VNet 内のクライアントだけがこのゾーンを解決できる
  • 自動登録 (Autoregistration): リンク作成時に有効化すると、その VNet 内の VM が起動・名前変更されるたびに A レコードが自動で登録・更新・削除される。リンクごとに有効/無効を選べる
  • レコードセット: 同名・同種のレコードの集合。A / AAAA / CNAME / MX / PTR / SOA / SRV / TXT などをサポート(NS レコードはゾーン頂点のみ)
  • Azure 提供 DNS (168.63.129.16): VNet のクライアントが既定で問い合わせる Azure の内部リゾルバ。リンクされたプライベートゾーンを参照して応答する
  • privatelink.* ゾーン: プライベートエンドポイントの名前解決で使われる慣例的なゾーン名(例 privatelink.blob.core.windows.net

仕様・制限・クォータ

  • プライベート DNS ゾーンは特定のリージョンに属さないグローバルなリソースだが、解決はリンクした VNet からのみ可能
  • 1 つのゾーンを複数の VNet にリンクでき、逆に 1 つの VNet には複数のゾーンをリンクできる
  • 自動登録は 1 つの VNet リンクにつき有効化できる範囲が限られる。自動登録を有効にしたリンクはその VNet の VM レコードを管理する
  • 自動登録で管理されるのは VM の A レコードのみ。ネットワークインターフェースを複数持つ VM などでは登録挙動に注意する
  • ゾーン数・ゾーンあたりレコードセット数・VNet あたりリンク数などにサブスクリプション単位の上限があり、多くは引き上げ申請が可能
  • VNet 内のクライアントが Azure 提供 DNS を使っていることが前提。カスタム DNS サーバーを指定している場合は、そこからのフォワーディング設計が必要

内部の仕組み

VNet 内の VM は、既定で Azure 提供の内部リゾルバ(仮想 IP 168.63.129.16)に DNS 問い合わせを送ります。このリゾルバは、その VNet にリンクされたプライベート DNS ゾーンを参照し、該当すればプライベートなレコードで応答します。該当しなければ Azure の再帰リゾルバがパブリック DNS へ解決を続けます。

自動登録を有効にしたリンクでは、VNet 内で VM が作成・削除・改名されるたびに、対応する A レコードがゾーンに反映されます。これにより、管理者がレコードを手で触らなくても VM 名での名前解決が成立します。

プライベートエンドポイントの解決でも同じ仕組みが使われます。account.blob.core.windows.net のようなパブリック FQDN は、CNAME で account.privatelink.blob.core.windows.net に向けられており、privatelink.* ゾーンをリンクしておくと、その名前がエンドポイントのプライベート IP に解決されます。

カスタム DNS を使うと素通しされない

VNet にカスタム DNS サーバーを設定している場合、クライアントの問い合わせはまずそのサーバーへ行き、Azure 提供 DNS(168.63.129.16)を経由しないとプライベートゾーンを参照できません。カスタム DNS から 168.63.129.16 へフォワードする設定を入れないと、プライベートゾーンのレコードが解決されません。

設計パターン / ベストプラクティス

  • ハブ集約: プライベート DNS ゾーン(特に privatelink.*)をハブ VNet に集約し、各スポークからハブ経由で解決させると、ゾーンの重複管理を避けられる
  • VM 中心の環境では自動登録を有効化して A レコードの手作業を排除する。逆に厳密にレコードを管理したいゾーンでは自動登録を無効にする
  • プライベートエンドポイントでは、エンドポイント作成時に DNS ゾーングループを併せて作り、A レコードのプライベート IP 登録を自動化する
  • オンプレミスからの解決には、Azure DNS Private Resolver や DNS フォワーダを併用し、条件付きフォワーディングを設計初期に決める
  • ゾーンとリンクは IaC(Bicep / Terraform) でテンプレ化し、命名規則を標準化する

運用・監視

  • VNet リンクの状態(リンク済み/自動登録の有効・無効)を確認し、解決できない VNet がないかを点検する
  • 名前解決の問題は、まずクライアントから実際に nslookup / dig で FQDN を引き、プライベート IP が返るかを確認する
  • カスタム DNS 利用時は、168.63.129.16 へのフォワード設定が生きているかを最初に疑う
  • 自動登録レコードが残存・欠落していないか、VM のライフサイクルと突き合わせて確認する
  • privatelink.* ゾーンでは、対象 PaaS の FQDN がパブリック IP に解決されていないかを継続的に検証する

コスト

要素課金ポイント
プライベート DNS ゾーンゾーン数(月額)ホストするゾーンの数に応じた固定的な料金
DNS クエリクエリ数(従量)VNet 内からの解決回数に応じる
VNet リンク無料ゾーンと VNet の紐づけ自体に課金はない
自動登録無料登録される A レコードに追加料金はない
コスト最適化

不要になったゾーンや使われていない privatelink.* ゾーンは削除すると月額のゾーン課金が止まります。ハブにゾーンを集約して重複ゾーンを排除すれば、ゾーン数に比例する基本コストを抑えられます。

セキュリティ

  • ゾーンは VNet 内部からのみ解決され、内部ホスト名がインターネットに公開されない
  • Microsoft Entra ID + RBAC でゾーン/レコードの変更権限を最小化する。Private DNS Zone Contributor などの組み込みロールを使う(AWS の IAM 相当)
  • リソースロックでゾーンやリンクの誤削除を防止する
  • プライベートエンドポイントと組み合わせ、PaaS の FQDN をプライベート IP に解決させることで、トラフィックを閉域経路に誘導する
  • VNet リンクの範囲を必要な VNet に限定し、解決できる範囲を最小化する
アンチパターン

プライベートエンドポイントを作っても、privatelink.* のプライベート DNS ゾーンを VNet にリンクし忘れると、FQDN がパブリック IP に解決され閉域経路を通りません。エンドポイント作成と同時に DNS ゾーングループでレコード登録まで自動化し、解決結果がプライベート IP になることを必ず確認してください。

関連サービス・比較

観点Azure Private DNSAzure DNS(パブリックゾーン)
公開範囲リンクした VNet 内のみインターネット全体の権威 DNS
主な用途内部ホスト名・プライベートエンドポイント解決独自ドメインのパブリック名前解決
VM レコード自動登録に対応自動登録なし(手動)
VNet リンク必須(解決の前提)不要
AWS 相当Route 53 プライベートホストゾーンRoute 53 パブリックホストゾーン

関連サービスとして、PaaS へ閉域でアクセスする Azure Private Link(プライベートエンドポイントの FQDN 解決にプライベート DNS ゾーンを使う)、オンプレミスとの双方向解決を担う Azure DNS Private Resolver、パブリックな権威 DNS の Azure DNS がある。AWS では Route 53 プライベートホストゾーンが同等概念にあたる。

ハンズオン / CLI例

# リソースグループと VNet/サブネットを作成
az group create --name demo-rg --location japaneast

az network vnet create \
  --resource-group demo-rg \
  --name demo-vnet \
  --address-prefixes 10.0.0.0/16 \
  --subnet-name app-subnet \
  --subnet-prefixes 10.0.1.0/24

# 内部向けのプライベート DNS ゾーンを作成
az network private-dns zone create \
  --resource-group demo-rg \
  --name corp.contoso.com

# ゾーンを VNet にリンクし、自動登録を有効化(VM の A レコードを自動管理)
az network private-dns link vnet create \
  --resource-group demo-rg \
  --zone-name corp.contoso.com \
  --name demo-dns-link \
  --virtual-network demo-vnet \
  --registration-enabled true

# 手動で A レコードを追加(自動登録外のサービス用)
az network private-dns record-set a add-record \
  --resource-group demo-rg \
  --zone-name corp.contoso.com \
  --record-set-name app \
  --ipv4-address 10.0.1.10

# 解決結果の確認(VNet 内の VM から実行する想定)
# nslookup app.corp.contoso.com  → 10.0.1.10 が返ることを確認

Azure Service

Azure Private DNSを実務で読む

TL;DRは入口です。実際に選ぶ・使う段階では、何を解決するか、何と比較するか、導入後にどこで詰まるかまで見る必要があります。

解決すること

ネットワーキング

比較で見る軸

クラウド: Azure / カテゴリ: ネットワーキング / 難易度: basic

導入後に効く点

VNet リンクと自動登録で VM の A レコードを自動管理できる。

先に潰すリスク

サービス単体ではなく、権限、ネットワーク、監視、課金、バックアップを含めて設計する必要がある。

数字・仕様の読み方
クラウド
Azure
カテゴリ
ネットワーキング
難易度
basic
関連資格
設計柱
operational / security / reliability

判断チェックリスト

  • 自社の用途が「ネットワーキング / operational」に近いか確認する。
  • 強みである「VNet 内専用のプライベートゾーンで名前解決を提供。DNS サーバー不要のマネージドサービス。」が本当に評価軸になるか確認する。
  • 注意点の「サービス単体ではなく、権限、ネットワーク、監視、課金、バックアップを含めて設計する必要がある。」を運用で吸収できるか確認する。
  • 公開値や仕様値は、対象プラン・対象機種・対象リージョンまで確認する。
  • 既存システム、ID、ネットワーク、監視、バックアップとの接続方法を先に洗い出す。
  • 小さく試してから、本番移行、権限設計、障害時手順、コスト監視を決める。

次に確認する観点

ネットワーキングoperationalsecurityreliability