FREE STUDY NOTES · AZ-305

Private endpoints vs service endpoints, and the DNS that makes them work

How private endpoints and service endpoints differ, and how to design private DNS for hybrid networks.

From Ultra Transcenders AZ-305 by Tony Rough (publishing soon)

Platform services such as Azure SQL and Storage have public endpoints by default. Private endpoints and service endpoints both keep traffic on Microsoft’s network, but they work very differently, and private endpoints depend on correct DNS configuration.

Private endpoint Service endpoint
Target A private IP in your VNet The service’s public endpoint, reached over the Azure backbone
Reachable from on-premises Yes, over ExpressRoute private peering or VPN No, Azure subnets only
Public access Can be disabled Still a public endpoint

DNS for private endpoints

A private endpoint is only useful if clients resolve the service’s name to its private IP. A private DNS zone linked to the VNet holds the private A record, but it is queryable only via Azure’s resolver at 168.63.129.16, which is unreachable from on-premises. On-premises clients therefore resolve through this chain: client, on-premises DNS server (conditional forwarder), a forwarder VM in the VNet (or Azure DNS Private Resolver), 168.63.129.16, the private zone, and finally the private IP.

Common trap: Forwarding on-premises DNS queries to the public DNS zone — that resolves to the public endpoint; forward to the private zone via Azure’s resolver (through a forwarder VM or DNS Private Resolver).

App Service to a private database

Connecting App Service privately to SQL uses two features in opposite directions. Regional VNet integration is outbound (App Service to private IPs, such as VMs or a private endpoint), while a private endpoint is inbound. VNet integration needs a subnet delegated to Microsoft.Web/serverFarms; the SQL private endpoint needs another, non-delegated subnet, so the design uses two subnets. Link the privatelink.database.windows.net private DNS zone to the VNet; a public zone can’t return private IPs.

Figure 12.2 shows the two subnets and the DNS lookup that make the connection private.

App Service sends traffic outbound through regional VNet integration in a subnet delegated to Microsoft.Web/serverFarms, then to a private endpoint with a private IP in a second, non-delegated subnet, and on to Azure SQL with public access disabled. Below, name resolution runs from App Service's lookup of the server name to Azure's resolver at 168.63.129.16 and the privatelink.database.windows.net private DNS zone linked to the VNet, whose A record returns the private endpoint's IP.
Figure 12.2: App Service reaching Azure SQL through a private endpoint

Common trap: Using a single subnet plus DNS Private Resolver for App Service to SQL — you need two subnets (one delegated for VNet integration, one for the private endpoint) and a linked private DNS zone.

Administrative access without public IPs

Azure Bastion gives RDP/SSH access to VMs over TLS from the Azure portal, so the VMs need no public IP addresses.

Common trap: Publishing administrative access through Front Door — Front Door publishes HTTP(S) only; use Azure Bastion for RDP/SSH.

Get the whole book

This note is one section of Ultra Transcenders AZ-305: Designing Microsoft Azure Infrastructure Solutions, an independent study guide that explains every topic the exam covers by technology, with comparison tables, diagrams and the common traps, plus a glossary linked to Microsoft Learn.

Amazon.co.ukKindle: coming soonPaperback: coming soon
Amazon.comKindle: coming soonPaperback: coming soon

Publishing soon on Amazon in Kindle and paperback editions.

About the book · Free AZ-305 glossary · All AZ-305 study notes

More AZ-305 study notes