You need to enable JavaScript to run this app.
导航

实现不同VPC之间的安全互访

最近更新时间2024.04.10 10:14:14

首次发布时间2023.05.30 20:26:12

本文将介绍如何通过中转路由器将访问请求引流至已部署火山引擎云防火墙或第三方防火墙的安全网络,从而实现两个VPC之间的安全互访。

场景介绍

某企业在火山引擎华南1(广州)地域的3个VPC内部署了私网业务,其中,vpc01、vpc02中分别部署业务A、业务B,vpc03中部署了防火墙软件。出于业务安全考虑,要求业务A和业务B之间的访问流量必须经过防火墙软件进行流量清洗。
具体场景如下图所示。
alt

数据规划

同地域不同VPC之间流量安全互访的数据规划如下图所示,组网场景中各云产品的具体数据如下表1、表2所示。
alt

上图中,网络流量路径说明如下(以vpc01访问vpc02为例,vpc02访问vpc01原理类似):

  1. 云服务器ecs01向ecs02发起访问请求后,系统根据ecs01所属子网关联的VPC路由表,匹配下一跳为tr01的路由条目,将访问请求转发到中转路由器tr01。
  2. 中转路由器根据attach-vpc01关联转发的TR系统路由表,匹配到目标网段后,将访问请求转发到attach-vpc03。
  3. 在vpc03中,根据TR服务网卡所属子网关联的VPC路由表,匹配下一跳为ecs-fw的路由条目,将访问请求转发到云服务器ecs-fw。
  4. 访问请求在云服务器ecs-fw中经过防火墙的流量清洗后,根据云服务器所属子网关联的VPC路由表,匹配下一跳为tr01的路由条目,将访问请求转发到中转路由器tr01。
  5. 中转路由器根据attach-vpc03关联转发的TR自定义路由表,匹配到目标网段后,将访问请求最终送达vpc02,实现vpc01安全访问vpc02。

表1 私有网络

私有网络
VPC网段
子网信息
云服务器信息

vpc01

192.168.0.0/16

  • 名称:subnet01
  • 网段:192.168.1.0/24
  • 名称:ecs01
  • 私网IP:192.168.1.10

vpc02

172.16.0.0/16

  • 名称:subnet02
  • 网段:172.16.1.0/24
  • 名称:ecs02
  • 私网IP:172.16.1.10

vpc03

10.1.0.0/16

  • 名称:subnet03
  • 网段:10.1.0.0/24
  • 名称:ecs-fw
  • 私网IP:10.1.0.10

表2 中转路由器

实例名称TR路由表关联转发路由信息
目标网段下一跳路由类型

tr01

tr01-rtb-sys

attach-vpc01
attach-vpc02

192.168.1.0/24

attach-vpc03

静态路由

172.16.1.0/24attach-vpc03静态路由
tr01-rtb-setattach-vpc03192.168.1.0/24attach-vpc01自动学习
172.16.1.0/24attach-vpc02自动学习

前提条件

配置步骤

步骤一:创建TR实例与VPC之间的网络实例连接

参考创建网络实例连接依次创建 3 条VPC网络实例连接,分别连接私有网络vpc01、vpc02和vpc03。本文中示例参数取值如下文中的图表所示。

  • 基础配置
    alt

    参数说明取值(连接vpc01)取值(连接vpc02)取值(连接vpc03)
    基本信息
    中转路由器默认为您选定的中转路由器实例,无需手动配置。tr01tr01tr01
    地域默认与中转路由器实例的地域相同,无需手动配置。华南1(广州)华南1(广州)华南1(广州)
    名称待创建网络实例连接的名称。attach-vpc01attach-vpc02attach-vpc03
    网络实例
    网络实例类型选择待创建网络实例连接的类型。私有网络私有网络私有网络
    私有网络选择待连接的VPC实例。vpc01vpc02vpc03
    连接点配置

    可用区及子网

    选择TR连通VPC时的入口点,请先选择可用区再选择子网。

    说明

    本文以单可用区为例,所以只需选择一个子网即可。实际场景建议选择多个可用区以获得更高的可靠性。

    可用区A,subnet01

    可用区A,subnet02

    可用区A,subnet03a

  • 路由配置
    alt

    参数说明取值(连接vpc01)取值(连接vpc02)取值(连接vpc03)
    路由配置

    关联转发

    开启关联转发表示来自网络实例的流量,将根据该TR路由表中的路由条目进行转发。

    说明

    以attach-vpc01为例,开启关联转发后,中转路由器将根据TR路由表tr01-rtb-sys转发来自vpc01的流量。

    开启,tr01-rtb-sys

    开启,tr01-rtb-sys

    开启,tr01-rtb-set

    路由学习

    开启路由学习表示该TR路由表会自动学习该网络实例的路由条目,在该TR路由表自动生成下一跳为该网络实例连接的路由条目。

    说明

    以attach-vpc01为例,开启路由学习后,TR路由表tr01-rtb-set中自动生成目标网段为vpc01子网段,下一跳为attach-vpc01的路由条目。

    开启,tr01-rtb-set

    开启,tr01-rtb-set

    关闭

    路由同步

    开启路由同步表示系统会自动将关联转发的TR路由表中的路由条目同步至该私有网络的所有路由表中,作为系统路由条目。

    说明

    以attach-vpc01为例,开启路由同步后,TR自动将路由表tr01-rtb-sys中的路由条目同步至vpc01的所有路由表中。

    开启

    开启

    关闭

步骤二:配置TR路由表

  1. 在TR系统路由表中配置路由,将来自vpc01和vpc02的访问请求转发到vpc03。
    详细配置步骤请参见创建静态路由,本文示例中需要配置的路由条目如下表所示。

    序号目标网段下一跳
    1192.168.1.0/24attach-vpc03
    2172.16.1.0/24attach-vpc03
  2. 确认TR自定义路由表中是否存在vpc01和vpc02的子网路由。

    • 是,请执行步骤三:配置VPC路由表

      说明

      本文示例中,由于步骤一已为连接vpc01和vpc02的网络实例连接开启了路由学习,因此直接执行步骤三:配置VPC路由表

    • 否,请参考创建路由学习分别创建TR自定义路由表与attach-vpc01和attach-vpc02的路由学习。配置完成后,TR自定义路由表中的路由条目如下表所示。
      序号目标网段下一跳
      1192.168.1.0/24attach-vpc01
      2172.16.1.0/24attach-vpc02

步骤三:配置VPC路由表

  1. 确认vpc01和vpc02路由表中是否存在下一跳为tr01的路由条目。

    • 是,请跳过本步骤,直接执行第2步。

      说明

      由于步骤一已为连接vpc01的网络实例连接开启了路由同步,因此直接执行第2步。

    • 否,请参考开启路由同步为网络实例连接attach-vpc01、attach-vpc02开启路由同步。配置完成后,vpc01和vpc02系统路由表中自动添加的路由条目如下表所示。
      VPC名称路由信息
      路由条目类型目标网段下一跳
      vpc01系统路由条目172.16.1.0/24tr01
      vpc02系统路由条目192.168.1.0/24tr01
  2. 配置vpc03系统路由表,将访问vpc01和vpc02的请求转发到云服务器ecs-fw。
    在vpc03系统路由表中添加如下路由条目,详细步骤请参见添加路由条目

    序号路由条目类型目标网段下一跳
    1自定义路由条目192.168.1.0/24ecs-fw
    2自定义路由条目172.16.1.0/24ecs-fw
  3. 配置vpc03自定义路由表,将访问vpc01和vpc02的请求转发到中转路由器tr01。
    在中转路由器tr01详情页面,为网络实例连接attach-vpc03开启路由同步,详细步骤请参考开启路由同步
    配置完成后,vpc03自定义路由表中自动添加如下路由条目。

    序号路由条目类型目标网段下一跳
    1系统路由条目192.168.1.0/24tr01
    2系统路由条目172.16.1.0/24tr01

步骤四:配置云服务器ecs-fw开启IP转发功能(可选)

  1. 登录云服务器ecs-fw,详情请参见登录Linux实例登录Windows实例
  2. 执行以下命令,查看云服务器是否开启IP转发功能。
    cat /proc/sys/net/ipv4/ip_forward
    
    • 返回结果为1,说明已开启IP转发,则无需执行以下步骤。
    • 返回结果为0,说明未开启IP转发,请继续执行以下步骤。
  3. 执行以下命令,打开sysctl.conf文件。
    vi /etc/sysctl.conf
    
  4. i进入编辑模式,修改net.ipv4.ip_forward字段的值为1开启IP转发功能。

    说明

    如果sysctl.conf文件中没有net.ipv4.ip_forward字段,那么请在文件末尾手动添加net.ipv4.ip_forward = 1

  5. esc退出编辑模式,输入:wq保存并退出文件。
  6. 执行以下命令,重启系统使配置生效。
    sysctl -p /etc/sysctl.conf
    

结果验证

  1. 登录vpc01中的云服务器实例ecs01,详情请参见登录Linux实例登录Windows实例
  2. 执行命令ping连接vpc02中的云服务器,验证vpc01能正常访问vpc02。
    返回如下图所示,则说明访问正常。
    alt
  3. 同理,登录vpc02中的云服务器实例ecs02,执行ping命令验证vpc02能够正常访问vpc01。
  4. 在中转路由器tr01详情页面查看网络实例连接attach-vpc03的监控数据,流入带宽和流出带宽不为0,则说明vpc01和vpc02之间的互访流量是通过vpc03完成转发的。
    查看监控数据的详细步骤请参见查看监控数据
  5. 在防火墙中查看,确认vpc01和vpc02之间的互访流量经过了防火墙清洗。