We have set up AWS VPC in 2 regions as illustrated above. The VPN connection now works between two instances each directly connected to the VPCs at each end of the VPN setup (that is, VPC PROD in eu-west1 and VPC PROD in ap-south1). So "Remote service" can communicate with "Prod service". This is illustrated by the green dotted line.
Since there is a peering connection between the 2 eu-west1 VPCs, I had hoped that VPC PROD in ap-south1 would be able to communicate with VPC ADMIN in eu-west1. This does not seem to be the case. That is, "Remote service" can not communicate with "Admin service". Illustrated by the red dotted line.
VPC ADMIN has routing table entries:
10.100.0.0/16 ==> peering connection to VPC PROD (eu-west1)
VPC PROD (eu-west1) has routing table entries:
10.100.0.0/16 ==> Virtual Private Gateway (VPG) / VPN connection
Also, VPC PROD (ap-south1) has routing table entries:
172.20.0.0/16 and 172.30.0.0/16 ==> strongswan instance.
I imagine the problem could be that traffic from ap-south1 arrives in eu-west1s VPG router and has a hard demand it can reach it's endpoint in the VPGs associated VPC, and it won't look at the VPCs routing table and thus it won't support using the matching routing table entry to send the traffic to the peering connection to VPC ADMIN. Can someone confirm whether or not that is supposed to work?
At the moment the only way to get this going seems to create a second VPN connection which would have a VPG associated with VPC ADMIN. Then adjust routing in ap-south1 to hit the old VPN for 172.20.0.0/16 (VPC PROD)
and the new VPN for 172.30.0.0/16 (VPC ADMIN)
. This should work, but will cost twice as much and means more configuration to maintain...
Other ideas to make it work?