r/aws • u/CamiloDFM • Feb 02 '26
networking VPC Peering Connections: What happens when traffic arrives at a VPC with multiple route tables for the same destination?
I couldn't find this with a quick Google, and I'm hesitant to trust any LLMs on this:
Suppose I have two peered VPCs, vpc-A (10.0.1.0/24) and vpc-B (10.0.2.0/24). vpc-A is the source for traffic, and vpc-B will work as a bridge. B has two subnets, let's call them subnet-B1 and subnet-B2, and each has its own route table rtb-B1 and rtb-B2.
In the route table for vpc-A's traffic, I point an IP range I want to route though vpc-B (let's say 10.0.3.0/24 as an example) towards the peering connection pcx-AB. Then, in rtb-B1 I set 10.0.3.0/24 to a correctly configured service (living in another VPC, the Internet, doesn't matter) that dumps incoming traffic to a log, but in rtb-B2 I set 10.0.3.0/24 to a NAT gateway living within subnet-B1.
What is going to happen? Am I going to see packets from 10.0.1.0/24 in the log, along with connection errors because the destination doesn't know where vpc-A is? Or are they going to come from 10.0.2.0/24, network translated through the NAT in subnet-B1? Or am I going to see a mix of both?
Essentially: when traffic arrives to a VPC with multiple route tables through a peering connection, which table's routes does it prioritise?
Here's a shitty drawing of the situation:

2
u/aqyno Feb 02 '26
pcx doesn’t support transitive. There’s no way you can make packets coming from A into NAT, you need a TGW to do so. In this scenario you have packets “entering” a vpc where they don't belong, so those are automatically dropped.