Greetings for the day!
Welcome to Microsoft Q&A and Thanks for the consistent follow-ups and for providing detailed context throughout our discussion! Let’s consolidate and close this thread with a full summary of the supported configuration, best practices, and key references for setting up Site-to-Site (S2S) VPN over ExpressRoute private peering with NAT and an Azure Firewall hub integration.
Overview:
Yes, it is technically and practically possible to configure a Site-to-Site (S2S) VPN tunnel over ExpressRoute Private Peering, and you can also enable NAT on an Azure VPN Gateway for resolving overlapping address spaces — even when using an Azure Firewall in a hub-spoke topology.
This approach is useful when:
- You require IPsec encryption over ExpressRoute for compliance.
You need NAT to handle overlapping address ranges.
You plan to pass all on-prem traffic through an Azure Firewall before reaching spokes.
Step-by-Step Breakdown:
1. Configure S2S VPN over ExpressRoute Private Peering:
Azure supports building an IPsec tunnel between your on-premises VPN device and the Azure VPN Gateway over the ExpressRoute private peering. Key prerequisites:
- VPN Gateway must be route-based.
Use the private IP of the VPN Gateway for the IPsec tunnel.
- ExpressRoute circuit must have private peering configured. Reference: Site-to-Site VPN over ExpressRoute Private Peering
2. Enable NAT on Azure VPN Gateway:
NAT resolves overlapping or conflicting IP address spaces between Azure VNets and on-premises networks. Key points:
Supported on VpnGw2 and higher SKUs.
Only available for S2S VPNs, not ExpressRoute.
- Supports both SNAT and DNAT; static NAT mappings are required.
- Reference: VPN Gateway NAT overview
Example mapping: If the on-premises network is 10.100.0.0/16 and overlaps with Azure, SNAT translate it to 172.16.100.0/24 when routing into Azure.
3. Coexistence of ExpressRoute and VPN Gateways:
When both gateways exist in the same VNet:
- The GatewaySubnet must be
/27or larger.
ExpressRoute routes take precedence by default.
- To prefer VPN tunnels for specific prefixes, advertise more specific routes via VPN. Reference: Configure ExpressRoute and VPN Coexistence
4. Handling Disjoint and Overlapping CIDRs:
When advertising multiple CIDRs (e.g., 192.168.0.0/16 over ExpressRoute and 10.100.0.0/16 via S2S VPN):
Traffic segmentation works as long as address spaces are disjoint.
Overlapping ranges (like Azure VNets sharing 10.100.0.0/16) must rely on NAT for translation.
ExpressRoute handles standard traffic, and VPN (with NAT) carries encrypted or remapped flows.
5. Integrating Azure Firewall in the Hub:
Including an Azure Firewall adds inspection and control between on-prem and spoke networks. Recommended design:
Traffic flow: On-prem (10.100.0.0/16 NAT’d) → VPN Gateway (S2S with NAT) → Azure Firewall → Spoke VNet
Implementation guidance:
- Do not associate UDRs with the GatewaySubnet — it can disrupt gateway operations.
Apply custom routes only on hub and spoke subnets to steer traffic through Firewall.
Create a UDR on the spoke subnet directing NAT’d on-prem ranges (e.g. 172.16.100.0/24) to the Firewall’s private IP.
On AzureFirewallSubnet, set routes to forward spoke-bound traffic via VNet peering.
Add corresponding firewall network rules for NAT’d ranges.
References:
Azure virtual network traffic routing
Hub-spoke network topology in Azure
Key Considerations:
NAT is applied only on the VPN Gateway (not ExpressRoute).
Maintain symmetric routing by updating firewall UDRs and NAT translation rules.
Ensure appropriate GatewaySubnet sizing and Firewall policies to prevent routing loops.
Disable route propagation in spoke VNets when using custom UDRs.
Additional Microsoft Resources
Configure ExpressRoute Private Peering – Azure Portal
This combination of ExpressRoute, VPN (with NAT), and Azure Firewall provides both secure encrypted connectivity and flexible route control, even across overlapping or segmented address spaces.
Glad to hear your setup is clearer now! Feel free to revisit this thread anytime if you have additional questions during implementation.
If the provided information answers your query, do click "Upvote" and "Accept Answer", it will help others who might be facing similar challenges.
Thanks,
Harish.