基于公网NAT网关和VPC对等连接实现跨VPC访问公网和对公网提供服务
操作场景
在同一区域下有两个虚拟私有云分别为VPC A和VPC B,VPC A和VPC B对应的子网是subnet A和subnet B。在VPC A中为子网subnet A创建公网NAT网关,通过添加SNAT和DNAT规则可以实现访问公网和对公网提供服务;在VPC B中子网subnet B通过对等连接连通VPC A中的子网subnet A,使用subnet A的公网NAT网关访问公网和对公网提供服务,VPC B中的subnet B不用另配置公网NAT网关。详情见下方的组网图。
方案优势
两个VPC只需要配置一个公网NAT网关可以实现两个VPC下的云服务器都能访问公网和对公网提供服务,达到节省资源的目的。
典型拓扑
假设VPC A的网段为192.168.0.0/16,子网subnet A的网段为192.168.1.0/24;VPC B的网段为192.168.0.0/16,子网subnet B的网段为192.168.2.0/24。
实现方式如下:
- 配置NAT网关。在VPC A创建公网NAT网关,并添加SNAT和DNAT规则。
- 创建对等连接。通过对等连接将VPC A中的子网subnet A与VPC B中的子网subnet B连通,使subnet B使用公网NAT网关访问公网和对公网提供服务。
图1 组网图
前提条件
- 如果两个VPC的网段有重叠,建立对等连接时,只能针对子网建立对等关系。
- 两个VPC中的全部子网网段不能重叠,否则无法通信。
配置公网NAT网关
- 购买公网NAT网关
购买公网NAT网关,虚拟私有云选择VPC A。具体操作请参见购买公网NAT网关。
- 添加SNAT规则
- 为subnet A添加SNAT规则,使用场景选择“虚拟私有云”,子网选择subnet A。具体操作请参见添加SNAT规则。
图2 添加SNAT规则
- 为subnet B添加SNAT规则,使用场景选择“云专线/云连接”,网段填写subnet B网段。
图3 添加SNAT规则
- 为subnet A添加SNAT规则,使用场景选择“虚拟私有云”,子网选择subnet A。具体操作请参见添加SNAT规则。
- 添加DNAT规则
- 为subnet A添加DNAT规则,使用场景选择“虚拟私有云”,私网IP填写subnet A中的云服务器IP地址。具体操作请参见添加DNAT规则。
图4 添加DNAT规则
- 为subnet B添加DNAT规则,使用场景选择“云专线/云连接”,私网IP填写subnet B中的云服务器IP地址。
图5 添加DNAT规则
- 为subnet A添加DNAT规则,使用场景选择“虚拟私有云”,私网IP填写subnet A中的云服务器IP地址。具体操作请参见添加DNAT规则。
创建对等连接
- 创建VPC A和VPC B及其对应的子网subnet A和subnet B
具体操作请参见创建虚拟私有云和子网。
- 创建对等连接
在subnet A和subnet B间创建对等连接。具体操作请参见创建对等连接。
在本实践中,本端VPC是VPC A,对端VPC是VPC B。
在原有添加本端和对端路由的基础上,还需在VPC B的路由表中添加0.0.0.0/0的对端路由(下一跳选择已创建的对等连接)。
测试对等连接的连通性
配置完成,测试连通性。
登录subnet B中的云服务器,ping公网地址。
登录任一不属于VPC A和VPC B且能访问公网的云服务器,curl子网subnet B对应DNAT规则绑定的弹性公网IP。