Static routes with UDRs are great—until networks grow, routes change, and you’re updating dozens of route tables by hand at 1am on a Sunday. Enter BGP (Border Gateway Protocol), the internet’s gift to dynamic routing and Azure Route Server, which lets your NVAs speak BGP with the fabric itself.
In this post, we explore how to use Azure Route Server with NVAs to enable dynamic routing, reduce static configuration overhead, and build smarter, faster convergence into your Azure network designs.
What is Azure Route Server?
Azure Route Server is a managed service that simplifies routing between your network virtual appliances (NVAs) and Azure’s virtual network routing, using Border Gateway Protocol (BGP). It acts as a bridge between your BGP-capable NVA and Azure’s control plane.
In plain terms: it lets your NVA advertise and learn routes dynamically, without needing API access or route table edits.
Key capabilities
- BGP peering between Azure and your NVA
- Dynamic route updates from NVA → VNet and vice versa
- No need for manual UDR updates for many routing changes
- Supports active/active and active/passive appliance setups
How It Works
Basic flow:
- Deploy Azure Route Server into a dedicated /27 subnet (RouteServerSubnet) in your VNet
- Deploy your NVA in the same or peered VNet with BGP enabled
- Configure BGP peering between Azure Route Server and your NVA (ASNs, IPs)
- Routes learned by your NVA are injected into Azure’s routing fabric
- Azure can also advertise “default routes” and VNet address space back to the NVA
Real-world impact
Let’s say you’re using a third-party firewall or SD-WAN appliance to control all outbound traffic.
With Azure Route Server:
- The NVA advertises a 0.0.0.0/0 default route to Azure via BGP
- Azure updates the route tables dynamically, no UDR required
- As workloads scale, new subnets automatically follow the NVA without needing manual updates
Deploy another appliance? Adjust policy? As long as your BGP config is updated on the appliance, Azure routes follow.
Architecture Diagram
Azure Implementation
Azure Portal Steps
- Deploy virtual network with
/27
subnet namedRouteServerSubnet
- Deploy Azure Route Server into that subnet
- Deploy NVA (with BGP enabled) into same VNet or peered VNet
- Use CLI or Portal to configure BGP peering:
- ASN for your NVA
- NVA BGP peer IP
- Enable
peerASN
,peerIP
,bgpPeeringEnabled
- Verify routing table on VM shows NVA via dynamic route
Bicep Deployment Example
|
|
Note: Azure Route Server uses ASN 65515. Your NVA must use a different ASN.
Gotchas & Edge Cases
- NVA must support BGP: Not all appliances support this out of the box—check feature sets
- No UDRs with same prefixes: They’ll override BGP-learned routes. Remove conflicting UDRs where Route Server is in use
- NVA failover needs BFD or control plane detection: Otherwise route withdrawal is slow
- Works best within one region/VNet. Peering adds complexity to route propagation
Best Practices
- Use /27 subnet for RouteServerSubnet (mandatory requirement)
- Always validate route propagation using
Get-AzEffectiveRouteTable
or Network Watcher - Avoid static UDRs on subnets meant to follow BGP-learned routes
- Monitor with Network Insights and logs from Route Server + NVA
- Design for active/passive failover with route priorities or BGP communities