DNS & Private Access参照資料確認: 2026-09-11

Azure DNS Private Resolver

Azure DNS Private Resolverのinbound/outbound endpointsとforwarding rulesetsを、query direction、dedicated subnet、hybrid path、current limitsまで運用目線で整理する。

Azure DNS Private Resolverを理解するための前提

DNS Private ResolverはVMベースDNS forwarderを置かず、Azure VNetとon-premises間のprivate DNS resolution/conditional forwardingを行うmanaged service。 inbound endpointはon-premises等からAzureへ入るDNS queryの宛先IP。linked Private DNS zoneを含むAzure DNS resolutionへ接続する。

outbound endpointはAzureからon-premises/other cloud/external DNSへqueryを出すため、DNS forwarding rulesetと関連付ける。outbound endpoint自体はinboundのようなquery先VIPではない。 rulesetをVNetへlinkすると、そのVNetがAzure-provided DNSを使ったままsuffix別forwarding ruleを利用できる。resolver VNetとのpeeringはruleset linkの必須条件ではない。

inbound/outbound endpointはそれぞれdedicated subnetが必要で、Microsoft.Network/dnsResolversへdelegationする。current guidanceは/28〜/24を許容し、各endpointでsubnetを共有しない。 2026-06-22更新の公式overviewでは1 endpointあたり10,000 QPS、resolverあたりinbound/outbound各5、rulesetあたり1,000 rules/500 VNet links等のcurrent limitsが記載される。

通信や判断の流れを追う
ClientDNS queryResolver / Private DNSPrivate endpointService

Control plane / DNS plane / Data plane

Inbound endpoint

outside/other network → Azure DNS。conditional forwarderのtargetとしてprivate IPを持つ。

Outbound endpoint

Azure resolver → external DNS。rulesetがmatchしたqueryをtarget DNS serversへegressさせる。

Ruleset + VNet link

どのsuffixをどこへforwardするか、どのVNetがそのpolicyを利用するかを定義する。

判定順序まず client がどの resolver を使い何IPを得たか固定し、そのIPに対するroute/securityを確認します。DNSを確認せずroute tableだけを見る、またはprivate IPを得ただけでservice到達済みと判定するのは避けます。

Query / packet path

  1. VNet clientがDefault Azure-provided DNSへqueryする。
  2. linked Private DNS zoneにmatchすればzoneをresolveする。
  3. matchしなければlinked forwarding rulesetsを評価する。
  4. suffix matchが複数ならlongest suffixを使う。
  5. matching ruleがあればoutbound endpoint経由でtarget DNS serverへ送る。
  6. ruleがなければAzure DNSが通常resolutionを行う。
  7. on-prem→Azure private zoneはon-prem conditional forwarderからinbound endpoint IPへ送り、Azure DNS/linked zoneで解決する。

仕組みを分解する

Private Resolverで「inbound」と「outbound」をclient位置で覚えると混乱します。Azure serviceから見たqueryの方向で考えます。Azureへqueryを受け入れるprivate IPがinbound、Azureから外部resolverへqueryを出す出口がoutboundです。spoke VNetがruleset linkを使うdistributed modelではVM DNS settingを変更せず、Azure-provided DNSがrulesetを評価します。centralized modelではspokeのcustom DNSにhub inbound IPを指定し、全DNS queryをhubへ集約します。

設計判断

判断軸設計方針
Topology choicedistributed ruleset-linkかcentralized custom-DNSかを選び、同一suffixで二重経路を作らない。
Subnet/IP planinbound/outboundを別dedicated subnetにし、/28以上を確保。将来endpoint増加とIPAMを考慮する。
ScaleQPS、rules、links、endpoint数をcurrent limitsと照合し、region単位failure/traffic volumeを計測する。
Unsupported combinationsVNet encryption、IPv6-enabled endpoint subnet、ExpressRoute FastPath等のcurrent restrictionsをdeployment前に確認する。

確認手順

Read-only verification

  • resolver/VNet region、endpoint subnet delegation、inbound IP、outbound/ruleset associationを取得する。
  • Azure→on-premとon-prem→Azureの両方向で別FQDNをqueryし、片方向成功を「hybrid DNS正常」としない。
  • rulesetはdomainName/target IP:port/state/VNet linkを確認し、longest-suffix matchを想定したtest nameを使う。
  • UDP/TCP 53のnetwork reachability、QPS/latency、upstream resolver responseを障害時のevidenceとして残す。

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での見かけ上成功を避ける。
Azure CLI / client — read-only first
az dns-resolver list -g <rg> -o table
az dns-resolver inbound-endpoint list -g <rg> --dns-resolver-name <resolver> -o jsonc
az dns-resolver outbound-endpoint list -g <rg> --dns-resolver-name <resolver> -o jsonc
az dns-resolver forwarding-ruleset list -g <rg> -o table
az dns-resolver forwarding-rule list -g <rg> --ruleset-name <ruleset> -o table
PowerShell — read-only first
Get-AzDnsResolver -ResourceGroupName <rg>
Get-AzDnsResolverInboundEndpoint -ResourceGroupName <rg> -DnsResolverName <resolver>
Get-AzDnsResolverOutboundEndpoint -ResourceGroupName <rg> -DnsResolverName <resolver>
Get-AzDnsForwardingRuleset -ResourceGroupName <rg>

障害切り分け

症状第一候補証拠次の確認
on-prem→Azure timeoutinbound IP route/53 blockedconditional forwarder target + route/NSG/firewallinbound reachability修正
Azure→on-prem public/NXDOMAINruleset link/rule mismatchVNet link + suffix + targetrule/link修正
一部domainだけ別resolverへ行くlongest suffix ruleruleset全rule比較よりspecificなruleを確認
query loop/SERVFAILinbound宛forward ruleをsame hubへlinkquery path/rulesetloopを作るlink/rule除去
高負荷でsporadic failureendpoint QPS/target DNS capacitymetrics + query ratescale/failover design見直し

変更時の確認と rollback

  • endpoint/ruleset変更前にresource JSON、inbound IP、VNet links、rulesをexportする。
  • inbound endpointを再作成するとforwarder targetへの影響があるため、IP lifecycleとon-prem config更新順序を設計する。
  • outbound endpoint削除にはruleset/link依存があるため、dependencyを確認して逆順に戻す。
  • rollback後はAzure→on-prem/on-prem→Azureの両方向queryを再実行する。

Current notes — 2026-09-11

Current behavior / guidance

Microsoft Learnの2026-06-22更新overviewではPrivate Resolverのcurrent limitsとrestrictionsが明確化されています。特にendpoint dedicated subnet、same-region VNet、VNet encryption非対応、ExpressRoute FastPath非対応を古い設計資料から更新します。

Official sources