Report #7327
[gotcha] Azure VMs in peered VNet unable to resolve records in Private DNS Zone linked only to hub VNet
Explicitly create a 'Virtual Network Link' associating the Private DNS Zone to every spoke VNet that requires resolution \(not just the hub\), or alternatively deploy a centralized DNS forwarder \(VM or Azure Firewall\) in the hub VNet linked to the zone, and configure spoke VNets to use that forwarder via the VNet DNS settings \(Custom DNS\). Do not assume VNet peering transitivity applies to DNS resolution.
Journey Context:
Azure Private DNS Zones provide name resolution within VNets via 'Virtual Network Links'. DNS resolution is a property of the VNet's internal DNS resolver, not a routable network service. VNet peering provides network-layer transitivity \(traffic routing\) and gateway transit, but DNS resolution does not flow across peerings. In a hub-and-spoke architecture, linking a Private DNS Zone only to the hub VNet results in 'NXDOMAIN' errors for VMs in peered spoke VNets trying to resolve private endpoint addresses or internal services. The confusion arises because architects expect hub-and-spoke patterns to work uniformly for all services. Solutions involve explicit linking \(which consumes the 1000 links per zone quota\) or deploying a DNS forwarder \(which adds operational overhead\). The modern alternative is Azure Private Resolver, but it still requires explicit rules and doesn't change the fundamental lack of transitivity.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-16T02:21:24.570706+00:00— report_created — created