使用 VPC NAT 网关解决地址冲突

为了连通网段重叠的 VPC,可添加附加网段并创建 VPC NAT 网关,通过地址转换解决地址冲突。

工作原理

地址冲突原因

网段重叠的 VPC 和交换机中的 ECS 互访时:

  • 配置对端VPC网段作为目标网段:流量会优先匹配系统路由,在 VPC 内部转发,无法抵达对端 VPC。

  • 配置对端交换机网段作为目标网段:无法配置与已有系统路由目标网段相同或更明细的自定义路由。

image

NAT 解决方案

  1. 添加附加IPv4网段:为 2 个 VPC 分别添加不重叠的附加网段,提供不冲突的私网地址。

  2. 地址转换:使用 VPC NAT 网关转换 ECS 的私网 IP,解决私网地址冲突。

  3. VPC 互通:将 VPC 接入转发路由器,并配置自定义路由条目,确保流量正确转发。

流量路径示例

某企业在华东1(杭州)地域计划连通已创建的 2 个 VPC,但 VPC 网段重叠。使用 VPC NAT 网关实现地址转换,并结合路由配置确保流量转发至 VPC NAT 网关后,可部署云企业网/对等连接实现私网互通。

以 ECS_A(私网IP:192.168.0.86)访问 VPC_NATGW_B(私网IP:10.0.0.53)为例。

  1. 按照 ECS_A 所在交换机绑定的自定义路由表的路由配置,访问数据包转发至 VPC_NAT 网关。

  2. 按照 VPC_NAT_A 配置的 SNAT 规则,数据包的源 IP 将转换为 NAT IP(172.16.0.89)。

  3. 按照 VPC_A 系统路由表的路由配置,数据包将转发至转发路由器 TR,再由 TR 转发至 VPC_B,从而到达 VPC_B 的VPC NAT网关。

  4. 按照 VPC_NAT_B 配置的 DNAT 规则,数据包的目的地址将转换为 ECS_B,流量转发至目标服务器,从而实现 ECS 互访。

当 ECS_B 返回响应数据包时,将按照会话映射表还原为原始的私网 IP,并按照路由最终送达 ECS_A。

image

操作步骤

以流量路径的示例场景为例。

步骤一:配置附加网段

  1. 添加附加网段:

    1. 前往专有网络列表页。在顶部菜单栏选择 VPC 所属地域。

    2. 单击目标VPC ID,选择网段管理页签,单击添加附加IPv4网段,分别为VPC_A、VPC_B添加附加网段。

  2. 创建交换机:前往创建交换机页面

    • 专有网络:分别为 VPC_A、VPC_B 创建交换机。

    • IPv4网段:选择已添加的附加IPv4网段。

步骤二:配置VPC NAT网关

创建 VPC NAT 网关并配置 SNAT 条目和 DNAT 条目,将各自 VPC 中的 ECS 实例私网 IP 转换为 NAT IP,解决地址冲突。

  1. 创建 VPC NAT 网关:前往VPC NAT 网关购买页

    • 地域:选择 VPC 所属地域。

    • 网络及可用区:分别为VPC_A、VPC_B创建VPC NAT网关,选择使用附加网段创建的交换机。

  2. 配置 SNAT 条目:VPC NAT 网关将按照配置的 SNAT 规则将数据包的源 IP 转换为 NAT IP 地址。

    1. 前往VPC NAT 网关列表页,在顶部菜单栏选择 VPC NAT 所属地域。

    2. 单击目标 VPC NAT 实例操作列的SNAT管理。单击创建SNAT条目

      • SNAT条目粒度:本文选择VPC粒度,可以根据自身需求调整。

      • 选择NAT IP地址:选择 VPC NAT 网关的私网 IP。

  3. 配置 DNAT 条目:VPC NAT 网关将按照配置的 DNAT 规则将数据包的目的 IP 转换为 NAT IP 地址。

    1. 前往VPC NAT 网关列表页,在顶部菜单栏选择 VPC NAT 所属地域。

    2. 单击目标 VPC NAT 实例操作列的DNAT管理。单击创建DNAT条目

      • 选择NAT IP地址:选择 VPC NAT 网关的私网 IP。

      • 选择私网IP地址:选择 VPC 中需互通的 ECS 实例。

      • 端口设置:本文以SSH服务作为内网互通的验证方式。SSH 服务采用面向连接的TCP协议传输,应用22号端口。故配置具体端口的前端端口和后端端口均为22,协议类型选择TCP。

        可以根据自身实际需求创建对应的DNAT条目。

步骤三:连通 VPC

  1. 创建 VPC 连接:

    转发路由器支持的地域和可用区
    本示例为同账号同地域 VPC 互通。需根据 VPC 账号与地域归属,参考跨地域VPC互通跨账号VPC互通
    1. 前往云企业网管理控制台,单击创建云企业网实例。选择单独创建确认

    2. 创建成功后,单击创建网络实例连接

      • 实例类型:选择专有网络(VPC)。

      • 地域:选择 VPC 所属地域。

      • 资源归属UID:根据 VPC 的账号归属选择。本文选择同账号

      • 网络实例:选择 VPC_A。

      • 交换机:为实现多可用区容灾,至少选择两个可用区。必须包含 VPC NAT 网关所在的交换机。

      • 高级配置:全部勾选。

    3. 创建完成后,单击继续创建连接,为 VPC_B 创建 VPC 连接。

  2. 配置路由:

    NAT 网关本身不决定流量的走向,仅负责地址转换。流量是否会被发送到 NAT 网关,以及地址转换后流向何处,由 VPC 的路由表控制。

    1. 创建自定义路由表并绑定交换机:

      1. 前往路由表列表页,在顶部菜单栏选择 VPC 所属地域。

      2. 单击创建交换机

        • 专有网络:分别为VPC_A、VPC_B创建路由表。

        • 绑定对象类型:选择交换机。

      3. 在路由表列表页,单击目标自定义路由表绑定资源列的立即绑定,绑定 ECS 实例所在的交换机。

    2. 配置路由条目:单击目标路由表 ID,在自定义路由条目页签,单击添加路由条目,配置目标网段与下一跳。

      按照下表配置路由,确保流量正确转发。

      专有网络

      路由表

      目标网段

      下一跳

      VPC_A

      系统路由表

      10.0.0.0/24

      转发路由器

      自定义路由表

      10.0.0.0/24

      VPC_NATGW_A

      VPC_B

      系统路由表

      172.16.0.0/24

      转发路由器

      自定义路由表

      172.16.0.0/24

      VPC_NATGW_B

步骤四:结果验证

登录 ECS_A 实例,执行如下命令。

# 通过访问VPC_NATGW_B实例的 NAT IP(10.0.0.53),远程登录 ECS_B 实例
# 确保 ECS_B 实例所属安全组已放通22号端口
ssh root@10.0.0.53
# 查看实例网卡 IP
ifconfig

可确认 ECS_A 实例通过 VPC_NATGW_A 的 NAT IP(172.16.0.89)访问 VPC_NATGW_B 的NAT IP(10.0.0.53),从而远程登录到 ECS_B 实例。

image

计费说明

  • VPC NAT网关:收取实例费与容量单位 CU 费。

  • 云企业网 CEN:地域内连接,收取连接费和流量处理费。跨地域连接还收取跨地域带宽费。