VPC与VPN的IP重叠问题:不改CIDR的双向连通解决方案
解决同CIDR重叠下VPC-A与VPN-A、VPC-C的双向连通问题
针对VPN-A(10.4.0.0/16)与VPC-C(10.4.0.0/16)CIDR重叠,且需VPC-A同时双向连通两者的场景,无需修改CIDR的核心思路是通过地址转换(NAT)在中转网关(TGW)或VPC内部区分两个同CIDR目标,以下是具体可落地的方案:
方案一:基于中转网关(TGW)的IP地址转换功能
这是最贴合现有架构的方案,利用AWS Transit Gateway内置的NAT转换能力在连接层面做地址映射:
- 配置VPN-A的TGW连接转换规则:
- 启用源NAT:将VPC-A发往VPN-A的流量源IP转换为一个专用的非重叠IP段(例如
10.254.0.0/24),确保VPN-A端能正确识别并返回流量。 - 启用目的NAT:将VPN-A返回的
10.4.0.0/16流量目的IP转换为另一个专用段(例如10.254.1.0/24),避免与VPC-C的10.4.0.0/16冲突。
- 启用源NAT:将VPC-A发往VPN-A的流量源IP转换为一个专用的非重叠IP段(例如
- 配置VPC-A的路由表:
- 添加路由规则:
10.254.1.0/24 → 中转网关(对应转换后的VPN-A流量) - 保留原有路由:
10.4.0.0/16 → 中转网关(对应VPC-C的原始流量)
- 添加路由规则:
- 配置TGW路由表的反向转换:
- 针对VPN-A的连接路由表,添加规则将
10.254.0.0/24转换回VPC-A的CIDR,同时将10.254.1.0/24转换回VPN-A的10.4.0.0/16,确保双向流量正常流转。
- 针对VPN-A的连接路由表,添加规则将
方案二:在VPC-A内部部署私有NAT网关
如果TGW的NAT功能无法满足需求,可以在VPC-A内部通过私有NAT网关做地址转换:
- 在VPC-A中创建一个专用子网部署私有NAT网关,配置NAT映射规则:
- 将VPC-A发往VPN-A的流量,目的地址从
10.4.0.0/16转换为自定义非重叠段(例如10.5.0.0/16),源地址转换为NAT网关的私有IP。
- 将VPC-A发往VPN-A的流量,目的地址从
- 配置TGW与VPN-A的路由转换:
- 在TGW的VPN-A连接路由表中,将
10.5.0.0/16转换回VPN-A的10.4.0.0/16;同时将VPN-A返回的10.4.0.0/16转换为10.5.0.0/16,转发回VPC-A的NAT网关。
- 在TGW的VPN-A连接路由表中,将
- 配置VPC-A路由表:
- 添加路由规则:
10.5.0.0/16 → 私有NAT网关(对应VPN-A的转换后流量) - 保留原有路由:
10.4.0.0/16 → 中转网关(对应VPC-C的流量)
- 添加路由规则:
关键注意事项
- 转换所用的专用IP段必须避免与现有VPC、VPN的CIDR重叠,建议选用RFC1918规范中未被占用的地址段(如
10.254.0.0/16范围)。 - 双向连通需要确保NAT规则是双向映射的,不能仅配置单向转换,否则返回流量无法正确到达源节点。
- 若使用TGW的NAT功能,需确认当前AWS账号区域支持该特性,且TGW版本已启用相关功能。
内容的提问来源于stack exchange,提问作者Ravi Teja
相关产品推荐
相关产品推荐

