VPC VGW multi-path scenario
To connect a
VPC to enterprise networks or other VPCs, we use Direct Connect or VPN. It is
common to have multiple connection paths from a VPC. Routing outbound from a
VPC is controlled by VGW. The question is, how does VGW which is an AWS
internal logical router handle multi-path routing?
Multi-path
is a requirement for high availability. Load sharing on multi-path is often
desirable. How VGW handles multi-path routing is actually different based on connection
type. Specifically, Direct Connect supports ECMP. VPN does not (after Oct 2015).
Direct Connect
Direct
Connect supports the configuration option of redundant paths with Active/Active
(BGP multipath), VGW routes traffic over multiple equal cost paths. As a
result, we can leverage all bandwidth resources provisioned for DX.
VPN
With VPN, VGW
currently does not support BGP multipath. VPN chooses one BGP path only.
What if we use
static route instead of BGP, can static be used to load share traffic across
multiple paths?
In the
scenario shown in the diagram, there are dual VPN connections going to two
remote CGWs, each with redundant tunnels. If static routes are defined equally,
does VGW route ECMP out multiple paths?
- VGW created prior to Oct 28 2015 supports static multipath.
- VGW created after Oct 28 2015 selects one active path out of multiple paths defined
The scenario
is tested with a new VGW in one VPC, and a pair of customer VPN appliances in
aonther VPC. With 4 tunnels/paths, it seems all traffic goes to one tunnel only.
AWS support confirmed the behavior that VGW only selects one path only.
Why AWS should support VPN multipath
With VPN, it
may be desirable to spread load across multiple customer gateways, because
those customer gateways may be Cisco or Palo Alto appliances that has licensed
throughput capacity. It is more optimal to spread load across multiple destinations
rather than sending all traffic to one while other paths sit idle.
Hopefully AWS
will bring consistent multipath routing to VPN, with BGP multipath and static
ECMP.
No comments:
Post a Comment