2.1 Azure DNS & Private DNS Zones
Key Takeaways
- Azure-provided DNS operates at the non-routable virtual IP 168.63.129.16, providing basic intra-VNet name resolution, DHCP, and load balancer health probes, but cannot resolve custom on-premises domains or unlinked private zones.
- Public DNS zones support standard record sets and Alias records, which natively track Azure resource lifecycles and solve DNS apex (root domain) CNAME limitations for Azure Front Door and Traffic Manager.
- Azure Private DNS Zones provide internal name resolution without exposing DNS records to the Internet, supporting up to 1,000 Resolution Virtual Network Links and exactly 1 Registration Virtual Network Link per zone.
- Auto-registration dynamically provisions and deprovisions DNS A and PTR records for up to 100 virtual machines per Virtual Network Link upon VM creation and deletion.
Azure DNS & Private DNS Zones
Name resolution is the foundational dependency for all distributed systems, hybrid architectures, and service communications in Microsoft Azure. Designing an enterprise network requires a comprehensive understanding of how Azure-provided name resolution functions, when to leverage authoritative Azure Public DNS Zones, and how to structure Azure Private DNS Zones to achieve secure, split-horizon resolution across isolated virtual networks.
Azure-Provided DNS & the Special Virtual IP 168.63.129.16
When a Virtual Network (VNet) is created without custom DNS server settings, Azure assigns Azure-provided DNS by default. Azure-provided DNS operates through a well-known, non-routable public IP address: 168.63.129.16.
Functions of 168.63.129.16
The virtual IP address 168.63.129.16 is an internal platform communication endpoint available from all Azure virtual subnets. It performs several critical platform duties:
- Recursive DNS Resolution: Acts as the default DNS resolver for virtual machines inside the VNet, resolving internal hostnames within the same VNet (
internal.cloudapp.net) and external public Internet domains. - Load Balancer Health Probes: Originates platform health probe packets from Azure Standard and Basic Load Balancers to monitor VM backend pool health.
- DHCP Services: Delivers dynamic IP address assignments, default gateway routes, and DNS server configurations to VM Network Interface Cards (NICs).
- Azure Instance Metadata Service (IMDS): Communicates with VM Guest Agents for heartbeat monitoring, guest OS provisioning, and scheduled maintenance notifications.
+-------------------------------------------------------------------------+
| Azure Subnet |
| |
| +-------------------+ +-----------------------+ |
| | VM Instance | -- DNS Query -----> | 168.63.129.16 | |
| | (NIC Configured | <-- DHCP / Probes - | (Virtual Platform IP | |
| | for Default) | | Azure SDN Fabric) | |
| +-------------------+ +-----------------------+ |
+-------------------------------------------------------------------------+
Limitations of Azure-Provided DNS
While convenient for standalone development environments, Azure-provided DNS exhibits significant constraints in enterprise networking:
- No Cross-VNet Resolution: Virtual machines in one VNet cannot resolve the hostnames of virtual machines in a different VNet, even if the VNets are connected via VNet Peering, without Private DNS Zones.
- No Custom Domain Registration: VMs receive default suffix names under
*.internal.cloudapp.net. You cannot register custom domains (such ascorp.contoso.com) directly into Azure-provided DNS. - Non-Routable Outside Azure: The
168.63.129.16resolver cannot be queried across Site-to-Site (S2S) VPN, ExpressRoute, or from on-premises datacenters. - No Conditional Forwarding: Azure-provided DNS cannot conditionally forward specific domain queries to custom on-premises DNS servers.
Public DNS Zones & Record Sets
Azure DNS is a globally distributed, high-availability hosting service for authoritative DNS domains. It uses Microsoft's global Anycast name server infrastructure to provide ultra-low-latency DNS query responses and 100% availability SLA.
Supported Public Record Types
Azure DNS supports all standard DNS record types:
| Record Type | Purpose | Example | Use in Azure |
|---|---|---|---|
| A | Maps a hostname to an IPv4 address | app.contoso.com -> 20.42.50.10 | Standard public endpoint hosting |
| AAAA | Maps a hostname to an IPv6 address | app.contoso.com -> 2603:1030::1 | Dual-stack network endpoints |
| CNAME | Canonical name alias pointing to another FQDN | www.contoso.com -> contoso.azurewebsites.net | App Service, Azure CDN subdomains |
| MX | Mail exchange server priority and target | 10 mail.contoso.com | Enterprise email routing |
| TXT | Arbitrary text attributes | v=spf1 include:spf.protection.outlook.com -all | SPF, DKIM, domain verification |
| PTR | Reverse DNS lookup (IP to FQDN) | 10.50.42.20.in-addr.arpa -> app.contoso.com | Anti-spam validation |
| SRV | Service locator (port, weight, priority) | _sip._tls.contoso.com -> sipdir.online.lync.com | SIP, Microsoft Teams federation |
| CAA | Certification Authority Authorization | 0 issue "digicert.com" | Restricts valid SSL/TLS certificate issuers |
Alias Records & Zone Apex Hosting
A critical exam objective is understanding Alias Record Sets. Standard DNS specifications (RFC 1034 / RFC 2181) prohibit creating a CNAME record at the zone apex (@ or root domain, such as contoso.com) because the apex must also host SOA and NS records, and a CNAME cannot coexist with other record types for the same name.
Azure DNS solves this problem through Alias Records:
- Direct Resource Targeting: An Alias record points directly to the Azure Resource ID of an Azure Public IP, Azure Traffic Manager profile, Azure Front Door endpoint, or Azure CDN profile.
- Dynamic IP Synchronization: If the underlying Azure resource changes its IP address, Azure DNS updates the record automatically without manual DNS management or TTL caching delays.
- Apex Hosting: Allows naked/root domains (e.g.,
contoso.com) to reference Traffic Manager or Front Door profiles using an Alias A or AAAA record set.
// Azure Bicep Snippet: Zone Apex Alias Record for Traffic Manager
resource apexAliasRecord 'Microsoft.Network/dnsZones/A@2018-05-01' = {
name: 'contoso.com/@'
properties: {
ttl: 3600
targetResource: {
id: trafficManagerProfile.id
}
}
}
Azure Private DNS Zones Architecture
Azure Private DNS Zones provide reliable, secure domain name resolution within virtual networks without needing custom VM-based DNS servers or exposing records to the public Internet.
Key Use Cases
- Internal Microservices & Workloads: Assigning predictable hostnames (e.g.,
api.internal.contoso.com) to private IP addresses across peered VNets. - Azure Private Endpoints (Private Link): Translating PaaS private endpoints (e.g.,
storageaccount.privatelink.blob.core.windows.net) to internal private IP addresses (10.1.4.5). - Split-Horizon (Split-Brain) DNS: Maintaining identical zone names (e.g.,
contoso.com) where internal Azure workloads resolve private IPs (10.0.1.10) while external Internet clients query Azure Public DNS and receive public IPs (20.40.100.50).
Virtual Network Links: Resolution vs. Registration
To make a Private DNS Zone accessible to a Virtual Network, you must establish a Virtual Network Link (Microsoft.Network/privateDnsZones/virtualNetworkLinks). Azure defines two distinct link behaviors:
+---------------------------------------------------------------------------------------+
| Azure Private DNS Zone |
| (corp.privatelink.contoso.com) |
+---------------------------------------------------------------------------------------+
^ ^
| (1. Registration Link) | (2. Resolution Link)
| - Auto-creates VM A & PTR records | - Read-only query access
| - Max 1 Registration Link per Zone | - Up to 1,000 Links per Zone
v v
+---------------------------+ +---------------------------+
| Registration VNet | | Resolution VNet |
| (VNet-Hub) | | (VNet-Spoke1) |
| +---------------------+ | | +---------------------+ |
| | VM-Web01 (10.0.1.4) | | | | VM-App01 (10.1.1.4) | |
| +---------------------+ | | +---------------------+ |
+---------------------------+ +---------------------------+
1. Resolution Virtual Network Links
- Purpose: Enables any VM located in the linked VNet to perform forward and reverse DNS queries against records defined in the Private DNS Zone.
- Scalability: A single Private DNS Zone supports up to 1,000 Resolution Virtual Network Links.
- Behavior: Read-only access to zone records. Workloads within the VNet do not register their hostnames automatically.
2. Registration Virtual Network Links (Auto-Registration)
- Purpose: In addition to resolving zone records, the linked VNet automatically registers its VMs' hostnames as DNS
Arecords and reversePTRrecords inside the Private DNS Zone. - Lifecycle Synchronization: When a VM is provisioned, assigned a new private IP, or terminated/deallocated, Azure automatically adds, updates, or deletes the corresponding DNS record.
- Critical Constraints:
- A Private DNS Zone can have only ONE Registration Virtual Network Link.
- A Virtual Network can be linked as a Registration VNet to only ONE Private DNS Zone.
- Auto-registration Limit: Up to 100 virtual machines per VNet are automatically registered by default.
Public DNS vs. Private DNS Zones Comparison
| Architectural Attribute | Azure Public DNS Zones | Azure Private DNS Zones |
|---|---|---|
| Visibility & Scope | Global Internet | Linked Virtual Networks only |
| Query Resolution Fabric | Global Anycast DNS Root Servers | Azure SDN Platform (168.63.129.16) |
| Record Registration | Manual / REST API / CI/CD pipeline | Manual, API, or Dynamic Auto-Registration |
| Registration Links Allowed | Not Applicable | Exactly 1 VNet Link per Zone |
| Resolution Links Allowed | Not Applicable | Up to 1,000 VNet Links per Zone |
| Split-Horizon Support | Yes (serves external public IPs) | Yes (serves internal private IPs) |
| Alias Records Support | Yes (Traffic Manager, Front Door, Public IP) | No (Alias records are public zone specific) |
| Private Link Integration | No | Yes (Required for privatelink.* zones) |
Real-World Exam Troubleshooting Scenarios
Scenario 1: Spoke VM Fails to Resolve Private Endpoint in Hub
- Topology: Hub VNet contains an Azure Private Endpoint for Azure SQL (
sql-prod.privatelink.database.windows.net->10.0.5.4). The private zone is linked only to Hub VNet. - Symptom: VM in
VNet-Spoke1(peered with Hub) fails to resolve the private IP and instead receives the public IP orNXDOMAIN. - Root Cause:
VNet-Spoke1lacks a Resolution Virtual Network Link toprivatelink.database.windows.net. VNet Peering provides IP routing, but does NOT forward DNS zone linkage automatically. - Remediation: Create a Virtual Network Link from
privatelink.database.windows.nettoVNet-Spoke1withregistrationEnabled: false.
Scenario 2: Second Registration Link Deployment Failure
- Topology: DevOps engineer configures
privatelink.contoso.localwith auto-registration enabled onVNet-A. They then deploy an ARM template linkingVNet-BwithregistrationEnabled: true. - Symptom: Deployment fails with error
OverlappingRegistrationVirtualNetworkLinksNotAllowed. - Remediation: Change
VNet-B's link configuration toregistrationEnabled: false. Only one registration link is permitted per Private DNS Zone.
An enterprise organization hosts its public domain apex (contoso.com) on Azure DNS. The network team needs to route all root apex traffic dynamically to an Azure Traffic Manager profile without violating DNS specifications. What record configuration should be implemented?
A network engineer creates an Azure Private DNS Zone named internal.contoso.com and links VNet-East with auto-registration enabled. The engineer then attempts to link VNet-West to internal.contoso.com with auto-registration enabled, but the deployment fails. What is the root cause of this failure?
A multi-tier application resides in a spoke VNet whose DNS server settings are configured with a custom on-premises DNS forwarder IP (10.0.0.4). VMs in the spoke VNet are unable to resolve Azure Private Endpoints in privatelink.database.windows.net, even though the zone is linked to the spoke VNet. Why is name resolution failing?