Scalable Hub-and-Spoke Design with BGP, VRFs, and AWS DX (No VDOM per Customer)
Hi all,
I’m looking for guidance on designing a scalable hub-and-spoke architecture on a FortiGate.
Design Overview
I have AWS connected to a FortiGate via Direct Connect (DX) and advertising routes via BGP.
The FortiGate acts as a hub.
Multiple vendors (customers) connect to the same FortiGate.
Each vendor has a dedicated BGP peering session.
Requirement
I need strict separation between vendors:
Customer A must NOT be able to communicate with Customer B.
Each customer should be isolated at the routing level.
Only the VRF associated with the AWS DX connection should have visibility of all customer prefixes.
Traffic flow should be:
Customer → FortiGate → AWS
AWS → FortiGate → Specific Customer
But never:
Customer A → FortiGate → Customer B
Constraints
The solution must be scalable (10+ customers, potentially more).
I do NOT want:
One VDOM per customer.
VDOM links between customers.
I’m looking to use VRFs instead of VDOMs for segmentation.
What I’m Trying to Achieve
Conceptually:
Each customer has its own VRF and BGP instance.
The AWS DX connection sits in a separate “core” VRF.
Routes from customer VRFs are selectively leaked only into the AWS VRF.
AWS routes are selectively leaked into each customer VRF.
No route leaking between customer VRFs.
Questions
Is this design supported on FortiGate using VRFs?
Is route leaking between VRFs supported in a scalable way?
Is there an official guide or best-practice document for this type of multi-tenant BGP design?
Would this require inter-VDOM routing under the hood, or can it be fully handled with VRFs?
Any design recommendations or documentation references would be greatly appreciated.
Thanks in advance.
Running 200F 7.4.11
│ FortiGate │ │ ┌─────────────┐ DX │ │ VRF 0 │ VRF 1 ◄──────────────────► Vendor A AWS ◄──────────────────┼──┤ (Global / │ VRF 2 ◄──────────────────► Vendor B │ │ AWS-Facing│ VRF 3 ◄──────────────────► Vendor C │ └─────────────┘ VRF N ◄──────────────────► Vendor N │ │ Route Leaking │ (AWS prefix only)
