一、案例场景:
子网网段冲突的两个VPC下云主机有互访需求,无法通过直接配置对等连接实现互访。通过在两个VPC下配置子网网段不冲突(使用剩余可用子网网段或扩展网段)的私网NAT网关,主动访问的VPC下云主机使用SNAT规则将源地址转换为私网NAT网关的中转IP地址,被访问的VPC下云主机通过DNAT规则将私网NAT网关的中转IP地址对外提供私网访问,从而实现子网网段冲突的两个VPC能够互访。
实现方案如下图:
华东1下创建了两个VPC,名称分别为TESTVPC-A和TESTVPC-B,网段均为10.0.0.0/15。在TESTVPC-A下创建了子网subnet-a(网段为10.0.0.0/24),并创建了一台云主机ecm-a使用该子网网段(IP地址为10.0.0.3)。在TESTVPC-B下创建了子网subnet-b(网段也为10.0.0.0/24),并创建了一台云主机ecm-b使用该子网网段(IP地址同为10.0.0.3)。因业务需要,TESTVPC-A的子网subnet-a下云主机(ecm-a为例)需要访问TESTVPC-B的子网subnet-b下云主机(ecm-b为例)。由于TESTVPC-A的子网subnet-a和TESTVPC-B的子网subnet-b网段相同,无法直接对等连接实现互访。通过在TESTVPC-A中创建中转子网(网段为10.0.1.0/24),在TESTVPC-B中创建中转子网(网段为10.0.2.0/24),然后分别创建私网NAT网关选择这两个子网,通过私网NAT网关的SNAT功能和DNAT功能实现云主机访问ecm-a访问ecm-b。
二、详细配置步骤:
步骤1:在两个VPC下分别创建中转子网
TESTVPC-A:创建中转子网subnet-a1,网段10.0.1.0/24
TESTVPC-B:创建中转子网subnet-b1,网段10.0.2.0/24
步骤2:在两个VPC下分别创建私网NAT网关,选择两个中转子网
TESTVPC-A:创建私网NAT网关nat-a1
TESTVPC-B:创建私网NAT网关nat-b1
步骤4:创建自定义路由表
TESTVPC-A下创建自定义路由表router-subnet-a1,并关联中转子网subnet-a1
TESTVPC-B下创建自定义路由表router-subnet-b1,并关联中转子网subnet-b1
步骤3:创建对等连接
创建TESTVPC-A到TESTVPC-B的对等连接
步骤5:自定义路由表添加路由条目
在自定义路由表router-subnet-a1和router-subnet-b1中添加路由条目,即配置对等连接本端路由和对端路由
TESTVPC-A自定义路由表router-subnet-a1中添加到TESTVPC-B中转子网subnet-b1的路由
对等连接中查看本端路由
TESTVPC-B自定义路由表router-subnet-b1中添加到TESTVPC-A中转子网subnet-a1的路由
对等连接中查看对端路由
步骤6:默认路由表添加路由条目
在TESTVPC-A和TESTVPC-B默认路由表中添加路由条目,即配置到对端VPC中转子网的路由
TESTVPC-A默认路由表中添加到TESTVPC-B中转子网subnet-b1的路由,下一跳为TESTVPC-A中的私网NAT网关nat-a1
TESTVPC-B默认路由表中添加到TESTVPC-A中转子网subnet-a1的路由,下一跳为TESTVPC-B中的私网NAT网关nat-b1
步骤7:TESTVPC-A配置SNAT规则
在TESTVPC-A的私网NAT网关nat-a1上配置SNAT规则,选择中转IP
步骤8:TESTVPC-B配置DNAT规则
在TESTVPC-B的私网NAT网关nat-b1上配置DNAT规则,选择中转IP,选择TESTVPC-B下云主机ecm-b及其网卡,配置中转端口(1000)和内网端口(22)
步骤9:连通性测试
TESTVPC-A下的云主机ecm-a和TESTVPC-B下的云主机ecm-b,IP地址均为10.0.0.3。
从TESTVPC-A下的云主机ecm-a 执行ssh -p 1000 10.0.2.3(10.0.2.3为TESTVPC-B私网NAT网关中转IP地址)。经测试,ecm-a可以通过TESTVPC-B下私网NAT网关的DNAT功能访问TESTVPC-B下的云主机ecm-b。