Engineering Deterministic Private Peering on Azure ExpressRoute with BGP
Connect on-premises networks to Azure with a private, BGP-backed link that avoids the public internet, and learn how to design IP space, filter routes, and verify the session.
27 Dec 2025, 23:17 UTC

Many Azure architects need a fast, predictable link between on-premises data centers and cloud workloads. VPN Gateways work, but they route traffic over the public internet, adding latency and variable bandwidth. When you need deterministic performance, consistent IP addressing, and the ability to keep traffic off the public internet, ExpressRoute private peering with BGP is the supported path.
Designing IP space and route control
Private peering uses a non-overlapping IP range between on-premises networks and Azure, advertised via BGP to keep traffic off the public internet. Choose /24 or larger subnets that do not conflict with your existing on-premises address spaces, and document the exact prefix you’ll advertise. This prevents accidental route leaks and keeps your firewall rules simple.
Bandwidth tiers and SKU upgrades
ExpressRoute circuits offer bandwidth tiers ranging from 50 Mbps to 10 Gbps per circuit. You can upgrade the SKU without changing physical cabling, which supports gradual capacity growth as your workload expands. The tier you select affects egress pricing, so match the tier to your expected data transfer volume.
Route filtering with prefix lists or BGP communities
Rather than advertising your entire address space, use prefix lists or BGP communities to advertise only the Azure service prefixes your workloads require. This minimizes exposure, simplifies firewall rules on your side, and reduces the risk of accidentally routing traffic you don’t intend to send through the private link.
Verifying and diagnosing the peering session
Once the circuit is provisioned, confirming that the BGP session is healthy is critical. Azure provides several diagnostic paths.
az network express-route show -g -n Run this command in a shell where you have at least the Network Contributor role on the resource group. Expected output: provisioningState should read Succeeded and gatewayManager should match the provider you provisioned through.
az network express-route peering list -g -n Look for BGPPeerStatus reading Established. The route count should match the number of prefixes you configured in your filter policy. If the status is Withdrawn, double-check your ASN, prefix list, or BGP community values.
Practical verification: from an on-premises host, ping a VM’s private IP address that lives in a VNet linked via the ExpressRoute circuit. Successful replies with no public IP exposure confirm that private peering is carrying traffic as expected.
Trade-offs, costs, and limitations
- Provisioning lead time: A contract with a connectivity provider is required, typically adding 3–10 business days compared to deploying an Azure VPN Gateway.
- Egress pricing: Data transferred over ExpressRoute is billed per GB at rates that can exceed VPN costs for workloads moving terabytes daily. Throttle non-critical traffic or use peering optimization features if available.
- BGP misconfiguration risk: A single mismatched ASN or incorrect prefix list can withdraw all routes and cause immediate connectivity loss. Document your route filter policy and test changes in a non-production VNet before applying them.
Actionable next steps
- Start with a single ExpressRoute circuit at a modest bandwidth tier (e.g., 200 Mbps) that matches your current traffic profile.
- Define a prefix list that advertises only the Azure service prefixes your workloads need; avoid advertising your full on-premises address space.
- Enable route filtering on the peering and verify BGPPeerStatus is Established using the Azure CLI or portal.
- Set up an Azure Monitor alert on the BGPPeerStatus metric so you’re notified the moment the session flaps.
- From an on-premises host, ping a private VM IP in the linked VNet to confirm end-to-end reachability without public internet exposure.
0 replies
A thoughtful contribution can make all the difference. Be the first to share one.