Hello Joshua Musiyarira
Thank you for the detailed explanation. I have provided my response based on your question to help clarify things.
1.Your thought process is on the right track, but let’s clarify the routing approach based on Microsoft’s documentation for Configure a Site-to-Site VPN connection over ExpressRoute private peering and the hub-and-spoke topology described in Hub-and-spoke network topology in Azure.
- In each spoke VNet, configure a route table with user-defined routes (UDRs) that direct specific CIDR ranges to the internal IP of the Azure Firewall. This ensures all traffic is inspected centrally.
- Firewall to Gateway Subnet, in the hub VNet, configure a route table on the Gateway Subnet to forward those specific CIDR ranges to the internal IP of the VPN Gateway. This allows the firewall to offload selected traffic to the VPN Gateway.
- Ensure the Azure Firewall allows traffic to flow to the VPN Gateway. You may need to update firewall rules to permit traffic for the specific CIDR ranges that should go over the VPN.
- This setup ensures that traffic for sensitive CIDR ranges is routed through the VPN Gateway for encryption, while all other traffic continues to use the ExpressRoute private peering path.
This approach ensures that traffic for specific CIDR ranges is routed through the VPN Gateway for encryption, while other traffic uses the ExpressRoute private peering directly, as described in the documentation.
Azure doesn’t use BGP in your case, so you control routing using UDRs. To make Azure prefer the VPN path for specific traffic:
- You advertise more specific IP ranges (e.g.
10.0.1.0/24
) over the VPN. - You advertise broader ranges (e.g.
10.0.0.0/16
) over ExpressRoute.
Because routing always prefers the most specific match, traffic to 10.0.1.0/24
will go through the VPN tunnel, while everything else uses ExpressRoute.
2.Yes, your understanding was correct normally, LNGs require a public IP because the VPN tunnel is built over the public Internet. But in this case, the VPN tunnel is built over the private ExpressRoute circuit, not the Internet.
Since both the Azure VPN Gateway and the on-premises FortiGate firewalls are reachable via private IPs over ExpressRoute, you can use RFC1918 addresses for both ends of the tunnel.
you can configure the LNG with a private IP address when using ExpressRoute private peering. This is explicitly supported by Microsoft:
“You can configure a Site-to-Site VPN to a virtual network gateway over an ExpressRoute private peering using an RFC 1918 IP address.” which was doc by https://learn.microsoft.com/en-us/azure/vpn-gateway/site-to-site-vpn-private-peering
This means that the FortiGate firewalls can use private IPs as VPN endpoints and Azure VPN Gateway must have private IPs enabled.
- The VPN tunnel is established entirely over the ExpressRoute private circuit, not the public Internet.
- This allows you to encrypt traffic over ExpressRoute, satisfying regulatory requirements for PII in transit.
I hope this helps! If these answers your query, do click the "Upvote" and click "Accept the answer" of which might be beneficial to other community members reading this thread.
If the above is unclear or you are unsure about something, please add a comment below.
Thank you