Azure networking limits cheat sheet

These are the caps Azure publishes for networking resources under the Resource Manager deployment model. The limits apply per region and per subscription, and Microsoft has raised all default networking limits to their maximums — where a limit table has no maximum column, the resource is not adjustable.

The practical consequence: 1,000 VNets per region, 3,000 subnets per VNet, 500 peerings per VNet and 2,000 NSG rules per NSG are the hard ceiling, not a starting point you can raise later. Design within them, because for most rows in the tables below there is no support adjustment to request.

Two separate counting rules matter daily. First, each subnet loses five addresses to the platform reservation (see VNet and subnet sizing), which is unrelated to these limits. Second, the rule limit within a network security group is 2,000 — service tags, application security groups and augmented rules are the documented ways to keep rule counts down.

When reading the tables: everything here is from the Microsoft Learn limits article as published; classic deployment model numbers differ (starting at 100 VNets and 200 rules per NSG) and are listed separately at the bottom.

VNet and subnet limits

Resource Manager, per region per subscription (limits article).
ResourceLimit
Virtual networks1,000
Subnets per virtual network3,000
Virtual network peerings per virtual network500
Virtual network gateways (VPN) per virtual network1
Virtual network gateways (ExpressRoute) per virtual network1
DNS servers per virtual network20
DNS servers per network interface20
Private IP addresses per virtual network (assigned)65,536
Private IP addresses per network interface256
Private IP addresses per virtual machine256 x N (N = NICs on the VM)
Public IP addresses per network interface256
Public IP addresses per virtual machine256
Network interface cards65,536
Concurrent TCP or UDP flows per NIC (VM or role instance)500,000

NSG, route table and application security group limits

Resource Manager, per region per subscription.
ResourceLimit
Network security groups5,000
NSG rules per NSG2,000
IP addresses and ranges specified for source or destination in a security rule (limit applies separately to source and destination)6,000
Application security groups3,000
Application security groups per IP configuration, per NIC20
Application security groups referenced as source/destination per NSG rule10
IP configurations per application security group4,000
Application security groups specified across all rules of one NSG600
User-defined route tables600
User-defined routes per route table1,000
Routes with service tag per route table25
Six default rules exist in every NSG — three inbound, three outbound — at priorities 65000, 65001 and 65500. Custom rules use priorities 100-4096 and are always evaluated first because the defaults carry the lowest priority (highest numbers). Default rules cannot be removed, only overridden.

Default NSG rules

Default rules created in every network security group (notably, priorities are the same for both directions except the allow-LoadBalancer/allow-Internet pair).
RulePriorityDirectionActionDetails
AllowVNetInBound65000InboundAllowAll traffic from the VirtualNetwork service tag
AllowAzureLoadBalancerInBound65001InboundAllowAll traffic from the AzureLoadBalancer service tag
DenyAllInbound65500InboundDenyAll remaining inbound
AllowVnetOutBound65000OutboundAllowAll traffic to the VirtualNetwork service tag
AllowInternetOutBound65001OutboundAllowAll traffic to the Internet service tag
DenyAllOutBound65500OutboundDenyAll remaining outbound

Rule attributes per the NSG overview

Priority
100-4096 for custom rules; defaults sit at 65000-65500
Name
unique per NSG, up to 80 characters
Evaluation
five-tuple (source/source port/destination/destination port/protocol), lowest number wins, processing stops on match
Statefulness
stateful: a rule allowing outbound response traffic is not needed for replies; existing flows are unaffected by rule changes

Peering limits and rules

Verified in the limits article and the VNet FAQ.
ItemLimit or rule
Peerings per VNet500
Total private addresses across a group of peered VNets128,000
Transitive peeringNot supported — peer VNetA to VNetC directly
Overlapping address spacesCannot be peered
BandwidthNo peering-specific limit; bound only by the VM/NIC
BidirectionalRequired — one link each way; a one-sided link remains in Initiated state
ChargesPeering links are free; data transfer across them is charged

Public IP address limits

Default limits vary by offer — most start at 10; Enterprise Agreement defaults to 1,000 and pay-as-you-go to 20.
ResourceDefault limitMaximum
Basic Public IPv4, IPv6 addresses10Contact support
Standard Public IPv4, IPv6 addresses10Contact support
Public IP prefix length/28Contact support
Custom IP prefixes5Contact support

Classic model comparison

Classic (Service Manager) limits that differ materially from Resource Manager, per the same limits article.
ResourceDefault limitMaximum limit
Virtual networks (classic)100100
NSGs (classic)200200
NSG rules per NSG (classic)2001,000
Private IP addresses per virtual network (classic)4,0964,096
DNS servers per virtual network (classic)2020

FAQ

What is the NSG rule limit in Azure?

2,000 security rules per network security group (Resource Manager), with a separate cap of 6,000 IP addresses or ranges per rule. Network security groups themselves are capped at 5,000 per region per subscription. Six default rules occupy priorities 65000-65500; custom rules must use 100-4096 and can override, but not delete, the defaults.

How many VNets can I have per subscription?

1,000 per region under Resource Manager. Microsoft has raised all networking default limits to their maximums, and this limit has no maximum column in the limits article, so it is not adjustable via a support request.

How many subnets can a virtual network have?

3,000 subnets per virtual network. Subnet ranges cannot overlap each other, and the per-VNet cap on assigned private IPs is 65,536 — so a huge /2-sized address space still only supports 65,536 assigned private IPs per VNet.

Can I request higher limits for networking?

For ARM networking resources, no: the limits article notes all default limits were raised to their maximums, and resources without a maximum column are not adjustable. Some other Azure services expose separate default and maximum columns and can be raised via a no-cost support request. Free trial subscriptions are not eligible for limit increases.