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

Hybrid DNS Design

Azureとon-premisesの双方向名前解決を、Private Resolver inbound/outbound、conditional forwarding、Private DNS zone、VPN/ExpressRoute pathで設計・検証する。

Hybrid DNS Designを理解するための前提

hybrid DNSは2方向: Azure resourceがon-prem domainを解決する経路と、on-prem DNS/clientがAzure Private DNS zoneを解決する経路。片方向成功だけでは完成しない。 on-prem→Azure private zoneは、on-prem DNS conditional forwarderからDNS Private Resolver inbound endpoint private IPへ送る。168.63.129.16はAzure VNet内部用で、on-premから直接到達させない。

Azure→on-premはPrivate Resolver outbound endpoint + forwarding rulesetでon-prem DNS targetへ送る。Azure client側はdistributed modelならDefault Azure DNSを維持できる。 DNS packet自体にVPN/ExpressRoute等のnetwork reachabilityが必要。名前解決設計とtransport route/NSG/firewallを別々に検証する。

Private DNS zoneはResolverが存在するVNet、またはqueryを受けるinbound endpointが参照できるVNetへlinkする。 DNS failoverではresolver endpointだけでなくon-prem conditional forwarder target、region failure、upstream DNS consistencyを含めて複数failure domainを試験する。

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

Control plane / DNS plane / Data plane

Azure → on-prem

Azure DNS → matching ruleset → outbound endpoint → on-prem DNS → authoritative/recursive answer。

On-prem → Azure

client → on-prem DNS → conditional forwarder → inbound endpoint → Azure DNS/linked Private DNS zone。

Transport

VPN/ExpressRoute + routing + firewall/NSGでDNS UDP/TCP 53を双方向に運ぶ。DNS controlとnetwork pathの両方が必要。

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

Query / packet path

  1. Azure側test clientでon-prem FQDNをqueryする。
  2. Azure DNSがruleset suffixをmatchし、outbound endpointからon-prem DNSへ送る。
  3. on-prem DNSがanswerを返しAzure clientへ戻る。
  4. on-prem側test clientでAzure private FQDNをqueryする。
  5. on-prem DNSのconditional forwarderがAzure Resolver inbound IPへ送る。
  6. inbound endpointがlinked Private DNS zone/Azure DNSで解決しanswerを返す。
  7. 同じ2本のqueryをfailure test時にも再実行し、secondary resolver/pathへの切替を確認する。

仕組みを分解する

Hybrid DNSのincidentでは最初にfailure directionを固定します。「Azure→on-prem」が失敗しているのか、「on-prem→Azure」が失敗しているのかで見るresourceが逆になります。前者はruleset/outbound/target DNS、後者はon-prem conditional forwarder/inbound/Private DNS linkが中心です。両方向ともtimeoutならDNS設定より先にER/VPN、UDR、NSG/firewall、MTU/TCP 53などtransportを疑います。

設計判断

判断軸設計方針
Namespace mapon-prem authoritative zones、Azure Private DNS zones、public zonesを一覧化し、suffixごとのauthority/forward targetを1枚にする。
Direction-specific HAinbound endpoint/region、outbound target DNS、on-prem DNSの冗長性を別々に設計する。
Forwarding scope`azure.contoso.com`等の必要suffixだけをforwardし、`.` rootを安易に跨がせてunexpected dependencyを作らない。
Observabilityresolver resource stateだけでなくquery latency/rcode、target DNS logs、VPN/ER network evidenceをincident timelineへ統合する。

確認手順

Read-only verification

  • Azure VM→on-prem FQDN、on-prem client→Azure private FQDNを同じchange windowで両方testする。
  • resolver endpoint/ruleset/zone linkのcontrol plane snapshotに加え、target DNS serverでquery受信を確認する。
  • UDPだけでなく必要に応じTCP 53も確認し、大きいDNS responseやfragmentation問題を切り分ける。
  • failover testではprimary resolver/pathを止めた状態で同一queryがsecondary経路で成功するか、復旧後のfailbackも確認する。

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 inbound-endpoint list -g <rg> --dns-resolver-name <resolver> -o jsonc
az dns-resolver forwarding-rule list -g <rg> --ruleset-name <ruleset> -o table
az network private-dns link vnet list -g <dns-rg> -z <private-zone> -o table
nslookup <onprem-name>
nslookup <azure-private-name> <onprem-dns-ip>
PowerShell — read-only first
Get-AzDnsResolverInboundEndpoint -ResourceGroupName <rg> -DnsResolverName <resolver>
Get-AzDnsForwardingRule -ResourceGroupName <rg> -DnsForwardingRulesetName <ruleset>
Test-NetConnection <onprem-dns-ip> -Port 53

障害切り分け

症状第一候補証拠次の確認
on-prem→Azureだけtimeoutconditional forwarder/inbound pathforward target + 53 reachabilityinbound IP/route/firewall修正
Azure→on-premだけNXDOMAINruleset suffix/targetrule match + target queryruleset/authority修正
両方向timeouthybrid network transportER/VPN route + port53network path修正
短いAは成功、大response失敗MTU/UDP fragmentation/TCP53dig +tcp/packet capturetransport/firewall調整
region failureでDNS停止single resolver/forwarder targetfailover configurationmulti-region resolver targets設計

変更時の確認と rollback

  • conditional forwarder/ruleset変更前にold target/suffix/stateをexportする。
  • hybrid DNS切替は両方向を別check-pointに分け、一方向を戻せるようにする。
  • 新Resolverへの移行でold VM forwarderを即停止せず、query telemetryを比較してから退役する。
  • rollback後はAzure→on-prem/on-prem→Azureのpair testを再実施する。

Current notes — 2026-09-11

Current behavior / guidance

2026年のMicrosoft troubleshooting guidanceでも、on-premから168.63.129.16を直接queryする構成は誤りとして扱われます。Private Resolver inbound endpointをon-prem conditional forwarderのtargetにし、directionごとのpathを明示します。

Official sources