10.4 Hybrid Name Resolution with Azure DNS Private Resolver
Key Takeaways
- Azure Private DNS zones depend on the link-local platform address 168.63.129.16, which cannot be reached from on-premises, so a bridge component is always required.
- An Azure DNS Private Resolver inbound endpoint takes a private IP inside the virtual network and receives queries forwarded from on-premises Windows Server conditional forwarders.
- An outbound endpoint plus a DNS forwarding ruleset sends queries from Azure virtual networks back to on-premises domain controllers for corporate zones such as corp.contoso.com.
- Forwarding rulesets are linked to virtual networks and evaluated by rule priority, so the most specific domain suffix must carry the winning priority.
- The Private Resolver is a managed PaaS service with built-in high availability, removing the need to build, patch, and cluster custom IaaS DNS forwarder VMs.
Hybrid Name Resolution with Azure DNS Private Resolver
1. Hybrid DNS Resolution Challenges & The Special VIP (168.63.129.16)
In Microsoft Azure, default DNS resolution inside Virtual Networks is handled by the Azure wire server virtual IP: 168.63.129.16.
+-----------------------------------------------------------------------------+
| THE HYBRID DNS RESOLUTION ROUTING DILEMMA |
| |
| [ON-PREMISES NETWORK] [AZURE CLOUD VNET] |
| +-----------------------+ +------------------------+ |
| | On-Premises DNS | | Azure Default Resolver | |
| | (10.0.1.10) | | 168.63.129.16 (VIP) | |
| +-----------------------+ +------------------------+ |
| | | |
| | =====[ ExpressRoute / S2S VPN Tunnel ]========= |
| | | |
| x (CANNOT ROUTE) x |
| +---> 168.63.129.16 is a non-routable link-local | |
| IP address unreachable from on-premises. | |
+-----------------------------------------------------------------------------+
The Two Hybrid DNS Dilemmas:
- On-Premises to Azure Resolution: When on-premises servers attempt to resolve Azure Private Endpoints (
mysqldb.privatelink.database.windows.net), they cannot forward queries to168.63.129.16because that IP address is a link-local virtual IP reachable only from within the local Azure VNet host hypervisor. - Azure to On-Premises Resolution: If an Azure VNet's DNS settings are changed from "Default (Azure-provided)" to "Custom" (pointing to on-premises DC IP
10.0.1.10), Azure VMs can resolve on-premises records, but they lose native resolution for Azure Private DNS zones, breaking Private Endpoint connectivity for Azure Storage, Azure SQL, and Azure Key Vault.
2. Azure DNS Private Resolver Architecture
The Azure DNS Private Resolver is a fully managed, cloud-native PaaS service that bridges Azure Virtual Networks with on-premises DNS infrastructure without requiring custom virtual machines.
+-----------------------------------------------------------------------------+
| AZURE DNS PRIVATE RESOLVER FULL TOPOLOGY |
| |
| [ON-PREMISES DATACENTER] [AZURE CLOUD INFRASTRUCTURE]|
| +-----------------------+ +------------------------+ |
| | Windows DNS Server | | Azure DNS Resolver VNet| |
| | (10.0.1.10) | | | |
| | | | +--------------------+ | |
| | Conditional Forwarder | | | Inbound Endpoint | | |
| | for *.privatelink -> | ---(VPN/ExpressRoute)| | Subnet (/28) | | |
| | points to Inbound IP | ===================> | | IP: 10.100.1.4 | | |
| +-----------------------+ | +---------+----------+ | |
| ^ | | | |
| | | v | |
| | | [168.63.129.16 / Azure | |
| | | Private DNS Zones] | |
| | | | | |
| | | v | |
| | | +--------------------+ | |
| | | | Outbound Endpoint | | |
| | | | Subnet (/28) | | |
| | | +---------+----------+ | |
| | +-----------|------------+ |
| | | |
| +---(Queries corp.contoso.com forwarded via)----+ |
| Forwarding Ruleset linked to Spoke VNets |
+-----------------------------------------------------------------------------+
Core Components of Azure DNS Private Resolver:
- Inbound Endpoints:
- Provisioned in a dedicated subnet (minimum subnet size:
/28; cannot contain any other resources). - Receives an allocated private IP address from the subnet (e.g.,
10.100.1.4). - Function: Serves as the target IP address for on-premises Windows Server conditional forwarders. Queries received from on-premises are routed directly to Azure's internal resolver (
168.63.129.16) to resolve Azure Private DNS zones and Private Endpoints.
- Provisioned in a dedicated subnet (minimum subnet size:
- Outbound Endpoints:
- Provisioned in a separate dedicated subnet (minimum subnet size:
/28). - Function: Originates DNS queries from Azure and transmits them to on-premises DNS servers or external public targets based on rules.
- Provisioned in a separate dedicated subnet (minimum subnet size:
- DNS Forwarding Rulesets & Rules:
- A Ruleset contains one or more DNS forwarding rules and is linked to one or more Virtual Networks.
- Each Rule specifies:
- Domain Name: Suffix to match (e.g.,
corp.contoso.com.or10.in-addr.arpa.). - Target DNS Servers: List of on-premises DNS IP addresses and ports (e.g.,
10.0.1.10:53,10.0.1.11:53). - Rule State:
EnabledorDisabled. - Priority: Value between 100 and 1000 (lower number = higher precedence).
- Domain Name: Suffix to match (e.g.,
- When an Azure VM in a linked VNet queries
server01.corp.contoso.com, the Outbound Endpoint intercepts the query and forwards it directly to the on-premises domain controller.
3. Architecture Comparison: PaaS Resolver vs. Custom IaaS Forwarder VMs
| Feature / Metric | Azure DNS Private Resolver (PaaS) | Custom IaaS DNS Forwarders (VMs) |
|---|---|---|
| Deployment Model | Fully managed cloud-native PaaS | IaaS Windows Server / BIND Linux VMs |
| High Availability | Built-in Multi-AZ redundancy (99.99%) | Requires Availability Sets / Zones + Load Balancers |
| Maintenance & Patching | Zero OS patching, zero maintenance | Monthly OS updates, reboot management |
| Throughput & Scaling | Auto-scales up to 10,000 queries/sec per endpoint | Constrained by VM SKU, vCPU, and network limits |
| Cost Model | Hourly endpoint + query transaction fee | VM compute, managed disks, OS licensing, Load Balancer |
| VNet Architecture | Requires dedicated /28 subnets | Shares standard workload or management subnets |
4. Hybrid DNS Deployment Workflow via PowerShell
# PowerShell: End-to-End Hybrid DNS Resolution with Azure DNS Private Resolver
# 1. Register the Microsoft.Network provider
Register-AzResourceProvider -ProviderNamespace 'Microsoft.Network'
# 2. Deploy the Azure DNS Private Resolver
$Resolver = New-AzDnsResolver `
-Name 'Resolver-EastUS' `
-ResourceGroupName 'RG-HybridDNS' `
-Location 'eastus' `
-VirtualNetworkId '/subscriptions/.../subnets/default'
# 3. Create the Inbound Endpoint (for queries originating from on-premises)
$InboundSubnet = '/subscriptions/.../subnets/snet-resolver-inbound'
New-AzDnsResolverInboundEndpoint `
-DnsResolverName 'Resolver-EastUS' `
-Name 'Inbound-Endpoint' `
-ResourceGroupName 'RG-HybridDNS' `
-Location 'eastus' `
-IpConfiguration @{ SubnetId = $InboundSubnet; PrivateIpAllocationMethod = 'Dynamic' }
# 4. Create the Outbound Endpoint and DNS Forwarding Ruleset
$OutboundSubnet = '/subscriptions/.../subnets/snet-resolver-outbound'
$OutboundEndpoint = New-AzDnsResolverOutboundEndpoint `
-DnsResolverName 'Resolver-EastUS' `
-Name 'Outbound-Endpoint' `
-ResourceGroupName 'RG-HybridDNS' `
-Location 'eastus' `
-SubnetId $OutboundSubnet
$Ruleset = New-AzDnsForwardingRuleset `
-Name 'Ruleset-OnPrem' `
-ResourceGroupName 'RG-HybridDNS' `
-Location 'eastus' `
-DnsResolverOutboundEndpoint $OutboundEndpoint
# 5. Add a Forwarding Rule for the On-Premises Active Directory Domain
$TargetDNS = New-AzDnsForwardingRulesetTargetDnsServerObject -IpAddress '10.0.1.10' -Port 53
New-AzDnsForwardingRule `
-DnsForwardingRulesetName 'Ruleset-OnPrem' `
-Name 'Rule-CorpContoso' `
-ResourceGroupName 'RG-HybridDNS' `
-DomainName 'corp.contoso.com.' `
-TargetDnsServer $TargetDNS `
-ForwardingRuleState 'Enabled'
# 6. Link the Ruleset to Spoke Virtual Networks
New-AzDnsForwardingRulesetVirtualNetworkLink `
-DnsForwardingRulesetName 'Ruleset-OnPrem' `
-Name 'Link-VNet-Spoke01' `
-ResourceGroupName 'RG-HybridDNS' `
-VirtualNetworkId '/subscriptions/.../virtualNetworks/VNet-Spoke01'
# 7. On-Premises Windows Server DNS: Add Conditional Forwarder for Private Link
# Points to the Azure Private Resolver Inbound Endpoint IP (10.100.1.4)
Add-DnsServerConditionalForwarderZone `
-Name 'privatelink.database.windows.net' `
-MasterServers '10.100.1.4' `
-ReplicationScope 'Forest'
An enterprise hybrid cloud engineer notices that on-premises applications cannot resolve hostnames within an Azure Private DNS zone linked to an Azure VNet, even though an active ExpressRoute connection is operational. What is the fundamental root cause of this resolution failure?
Which dedicated component of the Azure DNS Private Resolver must be provisioned to receive DNS queries originating from on-premises Windows Server conditional forwarders and route them to Azure Private DNS zones?
A cloud engineer is designing an Azure DNS Private Resolver deployment to allow Azure VMs to resolve on-premises Active Directory hostnames in 'corp.contoso.com'. Which set of configuration steps is required to route these queries from Azure to the on-premises domain controller IP address (10.0.1.10)?