Network Foundation
Networking is where landing zones most often go wrong quietly. The topology usually gets attention; DNS usually does not — and a private endpoint without a DNS plan is a workload that fails intermittently for reasons nobody can explain. This page defines a network foundation where traffic paths are understandable and public exposure is the exception.
Purpose
This page defines the network foundation for the platform: topology, address space, routing, egress, DNS, private endpoints, and hybrid connectivity — all anchored in a dedicated connectivity subscription.
Design Reasoning
Hub-spoke is the topology the Cloud Adoption Framework recommends, and the right default when you need shared services, centralized ingress and egress control, network security, and hybrid connectivity. A central hub VNet hosts shared services; workload spokes peer to it.
Azure Virtual WAN is the better fit when the environment has multiple regions, many branch sites, ExpressRoute or VPN connectivity at scale, and a need for Microsoft-managed transitive routing. It trades some control of the hub for managed scale.
For a very small environment with no hybrid connectivity and no multiple isolated workload networks, a single simpler VNet can be a temporary step. Treat that as a pragmatic, documented simplification — not the standard landing zone target.
One Virtual WAN nuance worth knowing
Azure NAT Gateway, which you would use to scale outbound SNAT in a standard hub-spoke, is not supported in a Virtual WAN managed hub. Outbound design differs between the two topologies, so decide topology before you design egress.
Architecture Decision Record
| Decision | Choice | Rationale |
|---|---|---|
| Default topology (SME) | Hub-spoke with a connectivity subscription | Supports shared services, centralized egress control, hybrid connectivity, and landing-zone-compatible workload isolation. |
| DNS for private endpoints | Central private DNS zones + DNS Private Resolver | Private endpoints are unreliable without a deliberate DNS plan; central zones plus a resolver make name resolution predictable across Azure and on-premises. |
Tradeoff: Hub-spoke centralizes egress and inspection, which adds a hop and a shared component to operate. The benefit is one place to control, inspect, and log outbound traffic instead of per-workload exceptions.
Recommended Configuration
| Area | Recommendation |
|---|---|
| Topology | Hub-spoke by default; Virtual WAN for multi-region or hybrid scale |
| Connectivity subscription | Hub VNet or Virtual WAN, firewall, private DNS, resolver, VPN/ExpressRoute |
| Egress | NAT Gateway for standard outbound; Azure Firewall where inspection or central policy is required |
| DNS | Central private DNS zones; Azure DNS Private Resolver for Azure-to-on-premises resolution |
| Private endpoints | Deploy only with a DNS plan in place |
| Routing | Use user-defined routes intentionally; avoid route sprawl |
| Subnets | Purpose-based subnets for workloads, private endpoints, gateways, firewall, Bastion, and shared services |
Example Implementation
A hub-spoke foundation, with shared network services in the connectivity subscription and workload spokes peered to the hub:
flowchart LR subgraph conn[Connectivity subscription] H[Hub VNet] F[Azure Firewall] R[DNS Private Resolver] P[Private DNS zones] G[VPN or ExpressRoute] N[NAT Gateway] end subgraph work[Workload subscriptions] S1[Production spoke] S2[Non-production spoke] S3[Sandbox spoke] end H --> F H --> R H --> P H --> G H --> N S1 --> H S2 --> H S3 --> H
Validation Steps
# Inventory the network foundationaz network vnet list --output tableaz network private-dns zone list --output tableaz network dns-resolver list --output tableaz network nat gateway list --output tableThen validate private endpoint DNS behavior — this is the check most often skipped:
nslookup <sql-server-name>.privatelink.database.windows.netnslookup <storage-account-name>.privatelink.blob.core.windows.netConfirm that private endpoint FQDNs resolve to private IP addresses, and that on-premises DNS queries are forwarded correctly when hybrid name resolution is required.
Common Mistakes
- Deploying private endpoints without a DNS strategy — the single most common networking failure.
- Building a hub with no clear egress or ingress role.
- Direct spoke-to-spoke peerings created without a clear reason.
- Expecting customer-managed shared services to run inside a Virtual WAN managed hub.
- Using Azure Firewall for everything without weighing cost or inspection requirements.
- Forgetting outbound connectivity planning for private workloads, or mixing workload and private-endpoint subnets without design intent.