You need to enable JavaScript to run this app.
导航
解决多VPC互通场景下的地址冲突
最近更新时间:2024.08.07 15:54:03首次发布时间:2023.11.07 08:15:14

当使用云企业网或中转路由器实现多个VPC互通时,若不同VPC的网段存在重叠,可使用私网NAT网关,解决网段地址冲突,实现资源私网互访。

说明

私网NAT网关正在邀测中,暂仅支持完成 企业认证 的账号申请试用,如需试用,请联系客户经理。

背景介绍

某企业的两套业务线的VPC需要通信,但是彼此需要通信的子网重叠。通过私网NAT网关解决IP地址冲突。

  • 私有网络1的名称为VPC-A,网段为192.168.0.0/16。
    • 子网1名称为子网-A1,其子网网段为192.168.1.0/24。
    • 子网2名称为子网-A2,其子网网段为192.168.2.0/24。
    • 子网3名称为子网-A100,其子网网段为192.168.100.0/24。
  • 私有网络2的名称为VPC-B,网段为192.168.0.0/16。
    • 子网1名称为子网-B1,其子网网段为192.168.1.0/24。
    • 子网2名称为子网-B2,其子网网段为192.168.2.0/24。
    • 子网3名称为子网-B200,其子网网段为192.168.200.0/24。
  • 云服务器ECS-A1的IP地址为192.168.1.11、ECS-A2的IP地址为192.168.2.30、ECS-B1的IP地址为192.168.1.22、ECS-B2的IP地址为192.168.2.31。

本文的示意图如下,若您想了解更多私网NAT网关的路由配置详情,请参考 路由配置原理介绍

实现ECS-A1访问ECS-B1,您需要为VPC-A配置SNAT规则,为VPC-B配置DNAT规则。同理可得,实现ECS-B2访问ECS-A2,您需要为VPC-B配置SNAT规则,为VPC-A配置DNAT规则。
本文仅为您演示ECS-A1访问ECS-B1。

准备工作

根据背景介绍,操作之前,您需要做如下准备:

  • 使用同一个火山引擎账号,在华北2(北京)地域创建2个VPC,VPC的参数同背景介绍保持一致。具体操作,请参考 创建私有网络

  • 在VPC-A的子网-A1中创建云服务器ECS-A1(192.168.1.11)、子网-A2中创建云服务器ECS-A2(192.168.2.30),在VPC-B的子网-B1中创建云服务器ECS-B1(192.168.1.22)、子网-B2中创建云服务器ECS-B2(192.168.2.31)。具体操作,请参考 购买云服务器

操作步骤

步骤一:配置私网NAT网关

创建两个私网NAT网关

您可参考本操作,为VPC-A和VPC-B各创建一个私网NAT网关。

  1. 登录 私网NAT网关控制台
  2. 在顶部导航栏,选择目标地域和项目。
  3. 单击“创建私网NAT网关”按钮。
  4. 参考下表,配置相关参数。
    参数
    说明
    本文取值(VPC-A)
    本文取值(VPC-B)
    计费类型仅支持按量计费。按量计费按量计费
    地域选择私网NAT网关所在地域。华北2(北京)华北2(北京)
    名称输入私网NAT网关的名称。私网NAT网关-A私网NAT网关-B
    私有网络下拉选择私网NAT网关所属的私有网络。VPC-A|192.168.0.0/16VPC-B|192.168.0.0/16
    子网下拉选择子网。子网-A100|192.168.100.0/24子网-B200|192.168.200.0/24
    规格无需指定规格。--
    项目选择私网NAT网关所属的项目。dedaultdedault
    标签按需为私网NAT网关添加一个或多个用户标签。nat:v1nat:v2
  5. 单击“确认订单”按钮。
  6. 请根据控制台指引查阅并确认相关协议,单击“立即购买”按钮,完成操作。

在私网NAT网关列表,查看默认中转IP地址。本文VPC-A的默认中转IP为192.168.100.128,VPC-B的私网NAT网关的默认中转IP为192.168.200.254。

为VPC-A的私网NAT网关创建SNAT规则

  1. 在私网NAT网关列表,单击私网NAT网关-A名称,进入详情页面。
  2. 选择“SNAT规则”页签,单击“创建SNAT规则”按钮。
  3. 参考下表,配置相关参数。
    参数
    说明
    本文取值
    名称设置SNAT规则的名称。SNAT-X
    粒度选择SNAT规则的粒度。子网
    192.168.1.0/24
    中转IP选择私网NAT网关的中转IP。本文选择默认中转IP。192.168.100.128|nat-default-ip
  4. 单击“确定”按钮,完成创建。

为VPC-B的私网NAT网关创建DNAT规则

  1. 在私网NAT网关列表,单击私网NAT网关-B名称,进入详情页面。

  2. 选择“DNAT规则”页签,单击“创建DNAT规则”按钮。

  3. 参考下表,配置相关参数。

    参数
    说明
    本文取值
    名称输入DNAT规则的名称。DNAT-X
    协议选择协议类型,支持TCP、UDP。TCP
    本端IP及其端口设置预先准备的云服务器实例的私网IP地址及其端口。192.168.1.22
    22
    中转IP及其端口设置私网NAT网关的中转IP及其端口。本文使用默认中转IP及其端口。192.168.200.254|nat-default-ip
    22
  4. 单击“确定”按钮,完成创建。

  5. DNAT规则创建完成后,您还需要在VPC-A内放通对应的安全组规则。

    1. 登录 云服务器控制台
    2. 单击云服务器实例名称,选择安全组页签,单击安全组名称。
    3. 在“访问规则 > 入方向”页签,添加规则。策略为“允许”,协议类型选择“TCP”或“UDP”,端口范围为“本端IP端口”,源地址为“0.0.0.0/0”。详细信息请参见 安全组概述

步骤二:配置NAT网关路由

准备路由表

创建2个自定义路由表,并分别关联私网NAT网关所在的子网。后续私网NAT网关将通过所在子网关联的路由表将流量路由到云企业网或中转路由器。

  1. 登录 路由表控制台

  2. 在顶部导航栏,选择目标地域和项目,本文示例“华北2(北京)”和“default”。

  3. 单击“创建路由表”按钮。

  4. 参考下表,配置相关参数。

    参数
    说明
    本文取值(VPC-A的自定义路由表)
    本文取值(VPC-B的自定义路由表)
    名称输入自定义路由表的名称。route-Aroute-B
    私有网络选择路由表所属的私有网络。VPC-AVPC-B
    路由条目使用默认的系统路由,不手动添加路由。--
    项目选择路由表的项目。defaultdefault
  5. 单击“确定”按钮,完成创建。

  6. 在路由表列表,单击新创建自定义路由表route-A右侧的“关联子网”按钮。

  7. 选中子网-A100,单击“确定”按钮,完成关联。

  8. 同理,为自定义路由表route-B关联子网-B200。

流量路由到私网NAT网关(系统路由表)

将访问对端网段的流量路由到私网NAT网关:

  • 将子网-A1和子网-A2的云资源访问对端网段(192.168.200.0/24)的流量路由到私网NAT网关-A。
  • 将子网-B1和子网-B2的云资源访问对端网段(192.168.100.0/24)的流量路由到私网NAT网关-B。
  1. 在路由表列表,单击VPC-A和VPC-B的系统路由表名称。

  2. 选择“路由条目 > 自定义路由”页签,单击“添加路由条目”按钮。

  3. 参考下表,配置相关参数。

    参数说明本文取值(VPC-A的系统路由表)本文取值(VPC-B的系统路由表)
    目标网段输入对端网段。192.168.200.0/24192.168.100.0/24
    下一跳类型选择下一跳类型。NAT网关NAT网关
    下一跳选择下一跳资源。私网NAT网关-A私网NAT网关-B
  4. 单击“确定”按钮,完成配置。

流量路由至云企业网或中转路由器(自定义路由表)

  • 云企业网:后续配置云企业网后,自定义路由表route-A和route-B自动添加路由到云企业网的路由条目。
  • 中转路由器:后续配置中转路由器后,需要在自定义路由表route-A和route-B手动添加路由到中转路由器的路由条目,详情请参见下文。

步骤三(方案1):配置云企业网

创建云企业网

您可通过本操作,创建云企业网,并加载预先准备的私有网络VPC-A。

  1. 登录 云企业网控制台
  2. 单击“创建云企业网”按钮。
  3. 参考下表,配置相关参数。
    参数
    说明
    本文取值
    名称输入云企业网实例的名称。云企业网-X
    加载网络实例选择是否打开加载网络实例的开关。打开
    地域选择待加载网络实例所属地域。华北2(北京)
    实例类型选择网络实例类型。私有网络
    网络实例选择私有网络实例。VPC-A
    项目选择云企业网所属的项目。default
    标签按需为云企业网添加一个或多个用户标签。cen:v1
  4. 单击“确定”按钮,完成创建。

加载网络实例

  1. 在云企业网列表,单击目标云企业网实例名称。
  2. 选择“网络实例”页签,单击“加载网络实例”按钮。
  3. 参考下表,配置相关参数。
    参数
    说明
    本文取值
    账号选择待加载网络实例所属的账号。本账号
    地域选择待加载网络实例所属地域。华北2(北京)
    实例类型选择网络实例类型。私有网络
    网络实例选择私有网络实例。VPC-B
  4. 单击“确定”按钮,完成加载。

此时,VPC-A的自定义路由表自动从云企业网同步到192.168.200.0/24 、下一跳为云企业网-X的路由条目。VPC-B的自定义路由表自动从云企业网同步到192.168.100.0/24 、下一跳为云企业网-X的路由条目。

路由表名称关联子网目标网段下一跳
VPC-A的系统路由表子网-A1、子网-A2192.168.200.0/24私网NAT网关-A
VPC-A的自定义路由表子网-A100192.168.200.0/24云企业网-X
VPC-B的系统路由表子网-B1、子网-B2192.168.100.0/24私网NAT网关-B
VPC-B的自定义路由表子网-B200192.168.100.0/24云企业网-X

步骤三(方案2):配置中转路由器

创建中转路由器实例及其TR路由表

  1. 登录 中转路由器控制台

  2. 单击“创建中转路由器”按钮。

  3. 参考下表,配置相关参数。

    参数
    说明
    本文取值
    地域选择中转路由器实例所属的地域。华北2(北京)
    名称输入中转路由器实例的名称。中转路由器-X
    项目选择中转路由器实例的项目。default
  4. 单击“确定”按钮,完成创建中转路由器实例。

    说明

    中转路由器实例创建成功后,系统自动创建了TR系统路由表,请记录该TR系统路由表的名称。下文以RouteTable-default为例。

  5. 在中转路由器实例列表页面,单击目标中转路由器实例的名称。

  6. 选择“路由表”页签,单击TR路由表列表旁的“创建路由表”按钮,弹出创建路由表窗口。

  7. 输入TR自定义路由表名称R-Table-X。单击“确定”按钮,完成创建TR自定义路由表。

创建网络实例连接

参考以下步骤,依次创建2条网络实例连接,2条网络实例连接的配置分别如参数配置表中的取值示例一、取值示例二。

  1. 在中转路由器实例列表页面,单击目标中转路由器实例的名称。

  2. 在“网络实例连接”页签, 单击“创建网络实例连接”按钮。

  3. 参考下表,配置相关参数。

    参数说明取值示例一取值示例二
    中转路由器默认为您选定的中转路由器实例。中转路由器-X中转路由器-X
    地域默认与中转路由器实例的地域相同。华北2(北京)华北2(北京)
    名称待创建网络实例连接的名称。Attach-VPC-AAttach-VPC-B
    网络实例类型选择待创建网络实例连接的类型。私有网络私有网络
    私有网络选择待关联的私有网络实例。VPC-AVPC-B
    可用区及子网选择连接点的所在可用区的子网。子网为网络实例连接的网卡分配私网IP地址。可用区A,子网-A1可用区A,子网-B1
    关联转发是否开启关联转发,并选择关联转发的TR路由表。开启后,来自该网络实例连接的流量,将按照其关联转发TR路由表的路由条目进行转发。开启,RouteTable-default开启,R-Table-X
    路由学习是否为开启路由学习,并选择路由选择的TR路由表。开启后,指定TR路由表自动生成目标网段为该私有网络子网的网段,下一跳为该网络实例连接的路由条目。开启,R-Table-X开启,RouteTable-default
  4. 单击“确定”按钮,完成操作。

此时,两个TR路由表路由条目和关联转发情况如下:

TR路由表名称
目标网段
下一跳
关联转发
说明
RouteTable-default192.168.200.0/24Attach-VPC-BAttach-VPC-A中转路由器从Attach-VPC-A接收的访问192.168.200.0/24 的流量将转发至Attach-VPC-B。
R-Table-X192.168.100.0/24Attach-VPC-AAttach-VPC-B中转路由器从Attach-VPC-B接收的访问 192.168.100.0/24 的流量将转发至Attach-VPC-A。

流量路由至中转路由器(自定义路由表)

为自定义路由表route-A和route-B手动添加路由条目,将私网NAT网关-A和私网NAT网关-B的流量路由到中转路由器。

  1. 在路由表列表,单击目标自定义路由表名称。

  2. 在“路由条目 > 自定义路由”页签,单击“添加路由条目”按钮。

    • 参考下表,在VPC-A的自定义路由表route-A,添加如下自定义路由。

      参数
      说明
      本文取值
      目标网段输入为VPC-B的子网B200网段。192.168.200.0/24
      下一跳类型选择路由条目的下一跳资源类型,将指向目标网段的流量转发到指定的资源。中转路由器
      下一跳指定具体的下一跳资源。中转路由器-X
    • 参考下表,在VPC-B的自定义路由表route-B,添加如下自定义路由。

      参数
      说明
      本文取值
      目标网段输入VPC-A的子网-A100网段。192.168.100.0/24
      下一跳类型选择路由条目的下一跳资源类型,将指向目标网段的流量转发到指定的资源。中转路由器
      下一跳指定具体的下一跳资源。中转路由器-X
  3. 单击“确定”按钮,完成路由配置。

此时,除去系统默认的路由条目外,四个路由表的路由条目如下:

路由表名称关联子网目标网段下一跳
VPC-A的系统路由表子网-A1192.168.200.0/24私网NAT网关-A
VPC-A的自定义路由表子网-A100192.168.200.0/24中转路由器-X
VPC-B的系统路由表子网-B1192.168.100.0/24私网NAT网关-B
VPC-B的自定义路由表子网-B200192.168.100.0/24中转路由器-X

步骤四:验证

验证SNAT规则

  1. 登录云服务器实例ECS-A1(192.168.1.11),执行命令ping <私网NAT网关-B的中转IP>。本文输入ping 192.168.200.254
  2. 若可以ping通,则表示ECS-A1能访问私网NAT网关-B。若不能ping通,请检查SNAT规则及相关路由配置。

验证DNAT规则

  1. 登录云服务器实例ECS-A1(192.168.1.11),在命令行输入ssh <DNAT规则设置的中转IP地址> -p <DNAT规则设置的中转IP端口>。本文输入ssh 192.168.200.254 -p 22
  2. 进入登录页面,则表示VPC-A的ECS-A1能访问VPC-B的ECS-B1。若未进入登录界面,请检查DNAT规则、相关路由配置以及安全组是否放通流量。