Dynamic routing with VPN Gateway and with inspection by NVA
I'm searching for possibility to implement a topology like this:
Spoke VNETs <====> NVA, for instance FortiGate <=====> VPN Gateway <=====> on-premises
To implement this with static routing is pretty straightforward, but has irritating limitations:
- If I place the NVA and the VPN Gateway in the same
HUB
VNET, while enabling theEnable Spoke-VNET to use HUB-VNET's remote gateway or route server
option - then narrow on-premises prefixes learned from VPN Gateway will override more generic prefixes in Spoke VNET UDRs, which steer traffic towards on-premises to the NVA for inspection. I'll need to override each one of them in the UDRs, which is not practical. - If I place them in the same
HUB
VNET without enabling this option, or if I place the VPN Gateway in a VNET not peered directly with Spokes - then the VPN Gateway won't know IP ranges of Spoke VNETs. It still will deliver traffic for them to the NVA by means of a UDR applied to itsGatewaySubnet
, but if the VPN Gateway will learn some prefix overlapping with Spoke VNET's prefix from one of its BGP-over-IPsec peers - it will send the traffic there instead of delivering it to the NVA, and communication will fail.
Example - UDR of GatewaySubnet
says "deliver traffic to 10.0.0.0.0/0 via NVA
".
The Spoke VNET's range is 10.11.12.0/24
.
If the VPN Gateway doesn't learn it automatically from the SDN, while learning a prefix 10.11.0.0/16
from some its BGP peer - then traffic to 10.11.12.0/24
will be sent to this peer instead of the Spoke.
I'm looking for solution that would allow:
- Spoke VNETs to deliver traffic to the NVA - without me having to override by UDRs each narrow prefix injected to them by the VPN Gateway.
- VPN Gateways to learn automatically prefixes of Spoke VNETs - while still delivering traffic to them via the NVA.
Is such this possible? With Route Server or without?
Thanks!
Mucius.