โ˜๏ธ Azure Network Cheatsheet

All Azure networking requirements, best practices, limits and SKU comparisons in one place. Stop digging through hundreds of Microsoft docs pages.

Last updated: March 2026
๐Ÿ“

Subnet Sizing by Service

Minimum subnet size required for each Azure service
โš ๏ธ
Azure reserves 5 IPs per subnet (.0, .1, .2, .3 and last). A /28 = 16 IPs, only 11 usable. A /26 = 64 IPs โ†’ 59 usable. Always plan larger since subnets cannot be resized once resources are deployed.
๐Ÿ“„ Docs: Reserved IPs
Service Subnet Name Min CIDR Usable IPs Recommended Notes Docs
Azure VMware Solutionโ€”/221019/22For AVS clusters ๐Ÿ“„
App Service Environment v3โ€”/24251/24Delegation required. Isolated PaaS hosting ๐Ÿ“„
Azure Kubernetes Service (CNI)โ€”/24251/21 to /161 IP per pod + 1 IP per node. Plan for scaling ๐Ÿ“„
Azure FirewallAzureFirewallSubnet/2659/26Name mandatory. One per VNet ๐Ÿ“„
Azure Firewall ManagementAzureFirewallManagementSubnet/2659/26Required for forced tunneling ๐Ÿ“„
Azure BastionAzureBastionSubnet/2659/26Name mandatory. Secure RDP/SSH access ๐Ÿ“„
Azure Databrickspublic + private/26 ร— 259 ร— 2/26 ร— 2Two subnets required for VNet injection ๐Ÿ“„
VPN GatewayGatewaySubnet/2727/27Name mandatory. No NSG. Shared with ExpressRoute GW ๐Ÿ“„
ExpressRoute GatewayGatewaySubnet/2727/27Same subnet as VPN Gateway ๐Ÿ“„
Azure Route ServerRouteServerSubnet/2727/27Name mandatory. BGP route exchange ๐Ÿ“„
SQL Managed Instanceโ€”/2727/26Delegation required. Dedicated subnet ๐Ÿ“„
Azure Cache for Redis (Premium)โ€”/2727/272 IPs per shard + 1 LB ๐Ÿ“„
API Management (VNet)โ€”/2727/27/29 possible for lightweight (stv2) ๐Ÿ“„
Application Gatewayโ€”/2811/27 or /26One AppGW per subnet. Plan for autoscaling ๐Ÿ“„
Azure NetApp Filesโ€”/2811/28Delegation required (Microsoft.NetApp/volumes) ๐Ÿ“„
Azure Spring Appsโ€”/2811/26Two subnets: service runtime + apps ๐Ÿ“„
Entra Domain Servicesโ€”/2811/28Managed AD in Azure ๐Ÿ“„
Azure Dedicated HSMโ€”/2811/28Hardware Security Modules ๐Ÿ“„
Private DNS Resolver (inbound)โ€”/2811/28Delegation required ๐Ÿ“„
Private DNS Resolver (outbound)โ€”/2811/28Delegation required ๐Ÿ“„
Azure Container Instancesโ€”/293/27Delegation required for container groups ๐Ÿ“„
NAT Gatewayโ€”/293โ€”Attaches to an existing subnet, no dedicated subnet needed ๐Ÿ“„
Private Endpointโ€”/293/271 IP per Private Endpoint. Plan based on PE count ๐Ÿ“„
๐Ÿ—๏ธ

Hub Subnet Layout โ€” Best Practice

Reference architecture for a Hub VNet (/20 recommended)
๐Ÿ’ก
A Hub VNet of /20 (4,096 IPs) provides enough room for all shared services. Each Spoke VNet should be /22 or /24 depending on workload.
๐Ÿ“„ Docs: Hub-spoke topology ยท ๐Ÿ“„ Docs: Plan IP addressing
๐Ÿ”— GatewaySubnet
/27
27 IPs โ€” VPN + ExpressRoute GW
๐Ÿ”ฅ AzureFirewallSubnet
/26
59 IPs โ€” Centralized firewall
๐Ÿ”ฅ AzureFWMgmtSubnet
/26
59 IPs โ€” If forced tunneling
๐Ÿ–ฅ๏ธ AzureBastionSubnet
/26
59 IPs โ€” Secure RDP/SSH access
๐Ÿ”„ RouteServerSubnet
/27
27 IPs โ€” BGP route exchange
๐ŸŒ DNS Resolver Inbound
/28
11 IPs โ€” Inbound DNS resolution
๐ŸŒ DNS Resolver Outbound
/28
11 IPs โ€” Outbound DNS resolution
๐Ÿ”’ Private Endpoints
/26 to /24
59-251 IPs โ€” Centralize PEs here
๐Ÿ› ๏ธ Management / Shared
/26
59 IPs โ€” Jump boxes, monitoring
๐Ÿ“‹

Subnet Delegation

Services that require a delegated subnet
โš ๏ธ
A delegated subnet is exclusive to its designated service โ€” no other resources can be deployed in it.
List available delegations: az network vnet subnet list-available-delegations --location westeurope
๐Ÿ“„ Docs: Subnet delegation overview
Service Delegation Name Shared Docs
App Service / Functions (VNet Integration)Microsoft.Web/serverFarmsNo ๐Ÿ“„
App Service Environment v3Microsoft.Web/hostingEnvironmentsNo ๐Ÿ“„
SQL Managed InstanceMicrosoft.Sql/managedInstancesNo ๐Ÿ“„
Azure Container InstancesMicrosoft.ContainerInstance/containerGroupsNo ๐Ÿ“„
Azure NetApp FilesMicrosoft.NetApp/volumesNo ๐Ÿ“„
Azure DatabricksMicrosoft.Databricks/workspacesNo ๐Ÿ“„
API ManagementMicrosoft.ApiManagement/serviceNo ๐Ÿ“„
Azure Kubernetes ServiceMicrosoft.ContainerService/managedClustersNo ๐Ÿ“„
Container Apps EnvironmentMicrosoft.App/environmentsNo ๐Ÿ“„
Azure Cosmos DB (dedicated)Microsoft.AzureCosmosDB/clustersNo ๐Ÿ“„
Azure BatchMicrosoft.Batch/batchAccountsNo ๐Ÿ“„
Private DNS Resolver (inbound)Microsoft.Network/dnsResolversNo ๐Ÿ“„
Private DNS Resolver (outbound)Microsoft.Network/dnsResolversNo ๐Ÿ“„
Azure Machine LearningMicrosoft.MachineLearningServices/workspacesNo ๐Ÿ“„
๐Ÿ”’

Private Endpoint vs Service Endpoint

When to use which
Criteria Service Endpoint Private Endpoint
IP TypePublic IP of the servicePrivate IP in your VNet
GranularitySubnet levelResource level (NIC)
IsolationPartial (need firewall rules too)Complete โ€” no internet exposure
DNSPublic DNSPrivate DNS Zone required
On-Premises AccessNoYes (via VPN/ExpressRoute)
Cross-RegionNoYes
CostFree~$7.30/month + data
ComplexitySimpleMedium (DNS, NSG config)
RecommendationDev/Test, non-critical workloadsProduction, compliance, hybrid
๐Ÿ“„ Private Endpoint overview ยท ๐Ÿ“„ Service Endpoint overview

Per-Service Support

Azure Service Service Endpoint Private Endpoint Private DNS Zone Docs
Azure Storage (Blob/File/Queue/Table)โœ“โœ“privatelink.blob.core.windows.net ๐Ÿ“„
Azure SQL Databaseโœ“โœ“privatelink.database.windows.net ๐Ÿ“„
Azure Cosmos DBโœ“โœ“privatelink.documents.azure.com ๐Ÿ“„
Azure Key Vaultโœ“โœ“privatelink.vaultcore.azure.net ๐Ÿ“„
Azure Container Registryโœ“โœ“privatelink.azurecr.io ๐Ÿ“„
Azure Event Hubsโœ“โœ“privatelink.servicebus.windows.net ๐Ÿ“„
Azure Service Busโœ“โœ“privatelink.servicebus.windows.net ๐Ÿ“„
Azure App Serviceโœ“โœ“privatelink.azurewebsites.net ๐Ÿ“„
Azure Database for PostgreSQLโœ“โœ“privatelink.postgres.database.azure.com ๐Ÿ“„
Azure Database for MySQLโœ“โœ“privatelink.mysql.database.azure.com ๐Ÿ“„
Azure Synapse Analyticsโœ“โœ“privatelink.sql.azuresynapse.net ๐Ÿ“„
Azure Monitor (Log Analytics)โœ—โœ“privatelink.monitor.azure.com ๐Ÿ“„
Azure Machine Learningโœ—โœ“privatelink.api.azureml.ms ๐Ÿ“„
Azure Data Factoryโœ—โœ“privatelink.datafactory.azure.net ๐Ÿ“„
Azure OpenAI / Cognitive Servicesโœ—โœ“privatelink.cognitiveservices.azure.com ๐Ÿ“„
Azure Backupโœ—โœ“privatelink.{region}.backup.windowsazure.com ๐Ÿ“„
๐Ÿ“„ Full list: Private Link availability by service
๐Ÿ›ก๏ธ

NSG & UDR Compatibility by Service

Which services support NSGs and custom routes
Service / Subnet NSG UDR Notes Docs
GatewaySubnetโœ— Forbiddenโš  LimitedNo NSG. UDR without 0.0.0.0/0 route to NVA ๐Ÿ“„
AzureFirewallSubnetโœ— Forbiddenโœ“UDR only for management (forced tunneling) ๐Ÿ“„
AzureBastionSubnetโœ“โœ“NSG with specific rules required (see docs) ๐Ÿ“„
RouteServerSubnetโœ— Forbiddenโœ— ForbiddenNo customization allowed ๐Ÿ“„
Application Gatewayโœ“โš  LimitedNSG: allow GatewayManager ports. No UDR to 0.0.0.0/0 ๐Ÿ“„
API Managementโœ“โœ“NSG required with specific rules (ports 3443, etc.) ๐Ÿ“„
AKS (Azure CNI)โœ“โœ“UDR to force egress traffic through a firewall ๐Ÿ“„
SQL Managed Instanceโœ“โœ“NSG auto-managed by the service. Don't remove the rules ๐Ÿ“„
Private Endpointsโœ“โœ“NSG and UDR supported since 2023 ๐Ÿ“„
App Service (VNet Integration)โœ“โœ“Outbound traffic from the app goes through the subnet ๐Ÿ“„
Azure NetApp Filesโœ— Ignoredโœ— IgnoredNSG and UDR are applied but ignored by ANF ๐Ÿ“„
๐Ÿ“Š

Azure Network Limits & Quotas

The ceilings you need to know before hitting them in production
Resource Default Limit Max Limit Scope Docs
VNets per subscription1,0001,000Per region ๐Ÿ“„
Subnets per VNet3,0003,000Per VNet ๐Ÿ“„
Peerings per VNet5001,000 (with AVNM)Per VNet ๐Ÿ“„
Private IPs per VNet65,53665,536Per VNet ๐Ÿ“„
Public IPs (Standard) per sub1,000On requestPer region ๐Ÿ“„
NSGs per subscription5,0005,000Per region ๐Ÿ“„
Rules per NSG1,0001,000Inbound + outbound combined ๐Ÿ“„
Routes per Route Table400400Per table ๐Ÿ“„
Route Tables per subscription200200Per region ๐Ÿ“„
BGP routes per gateway1,0001,000Per BGP peer ๐Ÿ“„
Private Endpoints per subscription1,000On requestPer region ๐Ÿ“„
Private DNS Zones per sub25,00025,000Per subscription ๐Ÿ“„
VNet Links per Private DNS Zone1,0001,000Per zone ๐Ÿ“„
DNS records per Private DNS Zone25,00025,000Per zone ๐Ÿ“„
NICs per VMDepends on SKU8 (large VMs)Per VM ๐Ÿ“„
NAT Gateway โ€” concurrent flows50,00050,000Per public IP ๐Ÿ“„
Load Balancer rules3001,000Per LB ๐Ÿ“„
Application Security Groups3,0003,000Per subscription ๐Ÿ“„
๐Ÿ”—

VPN Gateway โ€” SKU Comparison

Since Nov 2025, only AZ (zone-redundant) SKUs can be created
SKU Throughput S2S Tunnels P2S (IKEv2) BGP Zone-Redundant Use Case
VpnGw1AZ650 Mbps30250โœ“โœ“Small business, dev/test
VpnGw2AZ1.25 Gbps30500โœ“โœ“SMB, moderate workloads
VpnGw3AZ2.5 Gbps301,000โœ“โœ“Enterprise, multi-site
VpnGw4AZ5 Gbps1005,000โœ“โœ“Large scale, hybrid cloud
VpnGw5AZ10 Gbps10010,000โœ“โœ“Very large scale โ€” otherwise use Virtual WAN
๐Ÿ’ก
Beyond 100 S2S tunnels, use Azure Virtual WAN instead. Throughput is aggregate across all connections โ€” not guaranteed per tunnel.
๐Ÿ“„ Docs: VPN Gateway SKUs ยท ๐Ÿ“„ Docs: SKU consolidation (AZ migration)
๐Ÿ”ฅ

Azure Firewall โ€” SKU Comparison

Feature Basic Standard Premium
Throughput250 Mbps30 Gbps100 Gbps
Autoscalingโœ—โœ“โœ“
Threat IntelligenceAlertAlert/DenyAlert/Deny
FQDN Filtering (L7)โœ“โœ“โœ“
DNS Proxyโœ—โœ“โœ“
Web Categoriesโœ—โœ“โœ“
TLS/SSL Inspectionโœ—โœ—โœ“
IDPSโœ—โœ—โœ“ (67k+ sigs)
URL Filtering (full path)โœ—โœ—โœ“
Availability Zonesโœ“โœ“โœ“
Use CaseSMB, dev/testProduction, enterpriseCompliance (PCI, HIPAA)
โš ๏ธ
Enabling TLS Inspection + IDPS in "Deny" mode on Premium reduces effective throughput to ~10 Gbps per flow. The 100 Gbps figure is aggregate.
๐Ÿ“„ Docs: Firewall performance ยท ๐Ÿ“„ Docs: Choose the right SKU ยท ๐Ÿ“„ Docs: Features by SKU
โš–๏ธ

Azure Load Balancer โ€” Standard vs Gateway

โš ๏ธ
Basic Load Balancer was retired on September 30, 2025. Only Standard (and Gateway) SKUs are available.
๐Ÿ“„ Docs: Upgrade guidance
Feature Standard Gateway
Backend poolUp to 5,000 instancesUp to 300 instances
HA Portsโœ“ (Internal LB)โœ“
Availability Zonesโœ“โœ“
Cross-Regionโœ“โœ—
SecuritySecure by default (NSG required)Transparent to traffic
Outbound NAT Rulesโœ“โœ—
SLA99.99%99.99%
Use CaseWeb apps, APIs, servicesNVA chaining (3rd-party firewalls)
๐Ÿ“„ Docs: Load Balancer SKUs ยท ๐Ÿ“„ Docs: Gateway LB overview
๐ŸŒ

DNS โ€” Best Practices

๐Ÿ”— Centralized Private DNS Zones

Create Private DNS Zones in the Hub/Connectivity subscription and link them to Spoke VNets. Never duplicate zones across subscriptions.

๐Ÿ“„ Docs: Private Link and DNS integration at scale

๐Ÿ”„ Conditional Forwarders

Use Azure Private DNS Resolver to resolve Azure names from on-premises, and on-premises names from Azure. No more custom DNS VMs needed.

๐Ÿ“„ Docs: Private DNS Resolver overview

๐Ÿท๏ธ Naming Convention

Private DNS Zones for Private Endpoints follow the format privatelink.{service}.{domain}. Don't change the names โ€” Azure expects them exactly.

๐Ÿ“„ Docs: Private Endpoint DNS configuration

โš ๏ธ Auto-registration

DNS auto-registration only works for VMs. Only one VNet can be linked with auto-registration per zone. Use it in the Hub for shared VMs.

๐Ÿ“„ Docs: Auto-registration feature

๐ŸŒ Split-Brain DNS

When you enable a Private Endpoint, public resolution still works for clients not connected to the VNet. The Private DNS Zone only overrides for clients within the linked VNet.

๐Ÿ“„ Docs: DNS for on-premises workloads

๐Ÿ“Š Key Zones to Know

privatelink.blob.core.windows.net
privatelink.database.windows.net
privatelink.vaultcore.azure.net
privatelink.azurewebsites.net
privatelink.azurecr.io

๐Ÿ“„ Docs: Full DNS zone list
๐Ÿ’ก

Best Practices โ€” Azure Network Architecture

๐Ÿ—๏ธ Hub-and-Spoke as Foundation

Centralize shared services (Firewall, Gateway, Bastion, DNS) in a Hub VNet. Isolate workloads in Spoke VNets peered to the Hub. This is the pattern recommended by the Cloud Adoption Framework.

๐Ÿ“„ Docs: Hub-spoke network topology

๐Ÿ“ Size Large from Day One

Use /20 for the Hub, /22 for Spokes. Subnets cannot be resized with resources deployed. Always plan 2x your initial need.

๐Ÿ“„ Docs: Plan for IP addressing

๐Ÿšซ No CIDR Overlap

Plan your address space before creating the first VNet. Consider on-premises and other clouds. Overlapping CIDRs block peering and routing.

๐Ÿ“„ Docs: VNet FAQ (overlapping)

๐Ÿ”ฅ Force Traffic Through Firewall

Create a UDR 0.0.0.0/0 โ†’ Azure Firewall on each Spoke subnet. Associate the route table to the subnet โ€” not the VNet. Without this, traffic goes straight to the internet.

๐Ÿ“„ Docs: Create a default route

๐Ÿ”’ NSG on Every Subnet

Even with a firewall, apply NSGs to all subnets (except GatewaySubnet and FirewallSubnet). Defense in depth principle. Use Application Security Groups to simplify rules.

๐Ÿ“„ Docs: NSG overview

๐Ÿ”— Peering โ‰  Transitive

If Spoke A is peered to Hub and Spoke B too, A and B cannot communicate directly. Traffic must flow through an NVA/Firewall in the Hub with proper UDRs. Or use Azure Virtual WAN.

๐Ÿ“„ Docs: VNet peering connectivity

๐ŸŒ Private Endpoints in Production

Use Private Endpoints (not Service Endpoints) for all PaaS services in production. It's the only way to guarantee 100% private traffic, including from on-premises.

๐Ÿ“„ Docs: Azure Private Link

๐Ÿ“ก Accelerated Networking

Enable Accelerated Networking on all VMs that support it. It's free and reduces latency by 50%+. Nearly all SKUs with โ‰ฅ 2 vCPUs support it.

๐Ÿ“„ Docs: Accelerated Networking

๐Ÿ”„ NAT Gateway for Egress

Prefer NAT Gateway over individual public IPs for outbound traffic. Provides a stable outbound IP, more SNAT ports, and avoids Load Balancer SNAT port exhaustion.

๐Ÿ“„ Docs: NAT Gateway overview

๐Ÿ“Š Enable Network Watcher

Enable Network Watcher in every used region. Configure VNet Flow Logs (successor to NSG Flow Logs) to a Storage Account + Log Analytics for auditing and troubleshooting.

๐Ÿ“„ Docs: Network Watcher overview

๐Ÿท๏ธ Naming Convention

Follow the CAF: vnet-{workload}-{region}-{env}, snet-{purpose}, nsg-{subnet}, rt-{subnet}. Consistent naming prevents production mistakes.

๐Ÿ“„ Docs: Naming conventions

๐Ÿ” MTU & Fragmentation

Azure MTU is 1,500 bytes for inter-VNet/peering traffic. Don't rely on jumbo frames cross-VNet. Ensure firewalls don't block ICMP "Fragmentation Needed" messages.

๐Ÿ“„ Docs: VM MTU configuration