VPC自定义路由表实现流量安全互访
概述
本文档介绍如何在私有网络 VPC(Virtual Private Cloud)中创建自定义路由表,并与云智能网 CSN 的中转网关 TGW(Transit Gateway)绑定,使 TGW 到 VPC 方向的流量匹配自定义路由表。该方案适用于需要将多个 VPC 间互访流量导入安全 VPC,并通过第三方防火墙进行安全防护的场景。
需求场景
安全 VPC:多个 VPC 之间的互访流量需要经过安全 VPC 进行防护。
说明:
- 安全 VPC 是一个特定的虚拟私有云 VPC 配置,它在多个 VPC 之间的互访流量以及 VPC 访问公网的流量路径上,部署了第三方的防火墙进行安全防护。
- 第三方防火墙配置不在此赘述,用户可根据实际情况自行配置
方案概述
两个 VPC 之间的互访流量经过安全 VPC
请求流量从源 VPC 发出之后,先经过安全 VPC 中的第三方防火墙实例,再到达目的 VPC;回向流量从目的 VPC 发出之后,同样先经过安全 VPC 中的第三方防火墙实例,再回到源 VPC。

按以下方式配置路由表(详见配置步骤):
- 业务 VPC 路由设定:对于 VPC-A 与 VPC-B,系统默认路由表已能满足基础通信需求。在其接入云智能网 CSN 的过程中,系统将自动把指向这两个 VPC 的三大私网段路由信息同步至 TGW,无需额外复杂操作,确保最简捷的连通基础构建。
- 路由表分类与关联:CSN 中将默认路由表定义为不可信路由表,手动创建一张自定义路由表定义为可信路由表,VPC-A 与 VPC-B 关联不可信路由表,安全 VPC 关联可信路由表。
- 安全 VPC 流量导向精细化:安全 VPC 自定义路由表绑定至 TGW,将安全 VPC 入向流量导流至防火墙;安全 VPC 系统路由表引流至 TGW。

配置步骤
环境准备
创建 VPC-A、VPC-B和安全 VPC 三个 VPC。由于当前在 VPC 路由表中,子网直连路由优先级高于自定义路由,VPC 尽量选择不同网段,为了避免出现流量被直连路由导走情况。本示例中,VPC-A 网段为192.168.0.0/16,VPC-B 网段为172.16.0.0/16,安全 VPC 网段为10.0.0.0/16。
具体操作方法参考创建 VPC
在安全 VPC 中创建一台虚机,模拟第三方防火墙;在 VPC-A 和 VPC-B 中各创建一台虚机,用于两 VPC 间互访流量的连通性测试。
具体操作方法参考创建云服务器实例。
合理设置三台虚机的安全组,使得三台实例之间可以相互通信。
具体操作方法参考安全组。
配置流程

步骤一:创建 CSN 实例并加载 VPC
- 登录到百度智能云控制台,创建一个 CSN 实例。
具体操作方法参考创建云智能网实例。

- 点击创建好的实例名称,进入实例基本信息页面。点击左侧边栏中的“网络实例管理”按钮,进入网络实例管理页面,依次添加VPC-A、VPC-B 和安全 VPC 三个 VPC 到 CSN 中。
具体操作方法参考添加网络实例。
- 注意在添加时,"路由学习粒度”选择VPC;“关联至默认路由表”和“被学习至默认路由表”两个功能均选择关闭,在后续步骤中单独配置;“自动为实例配置指向 TGW 的路由”功能选择开启。

- 加载三个 VPC 完成后,网络实例管理页面如下图所示。

步骤二:配置CSN实例路由表
- 点击左侧边栏的“路由管理按钮”,进入路由管理页面。此时路由表列表中有一个 default 路由表,将 default 路由表定义为不可信路由表。点击路由表列表中的“+创建”按钮,创建一张自定义路由表定义为可信路由表,名称设置为 trusted。

- 在不可信路由表(default)中,添加与 VPC-A 和 VPC-B 的关联关系,使得从 VPC-A 和 VPC-B 进入 TGW 的流量匹配不可信路由表。
具体操作可参考关联关系创建方法。

- 在不可信路由表(default)中,添加目标网段分别为 VPC-A 和 VPC-B 网段、下一跳实例为安全 VPC 的两条静态路由,将 VPC-A 和 VPC-B 的互访流量转发到安全 VPC。
路由添加方法可参考。

- 在可信路由表(trusted)中,创建与安全 VPC 的关联关系,使得从安全 VPC 进入 TGW 的流量匹配可信路由表。

- 在可信路由表(trusted)中,添加 VPC-A 和 VPC-B 的学习关系,将经过安全 VPC 的流量转发到 VPC-A 或 VPC-B。
学习关系创建方法可参考。

- 配置完成后,CSN 实例路由表信息如下表所示:
|
路由表名称 |
路由表描述 |
关联VPC |
路由 |
|
|---|---|---|---|---|
|
目标网段 |
下一跳 |
|||
|
default |
不可信流量 |
VPC-A、VPC-B |
192.168.0.0/16 |
安全VPC |
|
172.16.0.0/16 |
安全VPC |
|||
|
trusted |
可信流量 |
安全VPC |
192.168.0.0/16 |
VPC-A |
|
172.16.0.0/16 |
VPC-B |
|||
步骤三:配置安全 VPC 路由表
- 登录到私有网络控制台,点击左侧边栏的“路由表”按钮,进入路由表页面,点击“创建路由表”按钮,路由表名称设置为路由表 A,所在网络选择安全 VPC。

- 创建完成后,点击路由表 A 右侧的“管理”按钮,进入路由表A详情页面。

点击“+添加路由”按钮,源网段选择自定义配置,输入0.0.0.0/0,目的网段输入 VPC-A 的网段,路由类型选择实例路由,下一跳实例选择用户第三方防火墙实例。用同样的方法也添加目的地址为 VPC-B 网段、其他配置相同的路由。

步骤四:绑定 TGW 与安全 VPC 自定义路由表
- 在路由表A详情页面中,点击左侧边栏的“绑定 TGW”按钮,再点击“+绑定 TGW”按钮,与已创建的 TGW 实例进行绑定,使得 TGW 进入安全 VPC 方向的流量匹配自定义路由表。

- 配置完成后,各VPC路由表信息如下表所示:
|
VPC名称 |
路由表名称 |
绑定资源 |
路由 |
||
|---|---|---|---|---|---|
|
源网段 |
目标网段 |
下一跳 |
|||
|
VPC-A |
default |
VPC内全部资源 |
0.0.0.0/0 |
192.168.0.0/16 |
系统 |
|
0.0.0.0/0 |
192.168.0.0/16 |
TGW实例 |
|||
|
0.0.0.0/0 |
172.16.0.0/12 |
TGW实例 |
|||
|
0.0.0.0/0 |
10.0.0.0/8 |
TGW实例 |
|||
|
VPC-B |
default |
VPC内全部资源 |
0.0.0.0/0 |
172.16.0.0/16 |
系统 |
|
0.0.0.0/0 |
192.168.0.0/16 |
TGW实例 |
|||
|
0.0.0.0/0 |
172.16.0.0/12 |
TGW实例 |
|||
|
0.0.0.0/0 |
10.0.0.0/8 |
TGW实例 |
|||
|
安全VPC |
default |
VPC内除TGW外全部资源 |
0.0.0.0/0 |
10.0.0.0/16 |
系统 |
|
0.0.0.0/0 |
192.168.0.0/16 |
TGW实例 |
|||
|
0.0.0.0/0 |
172.16.0.0/12 |
TGW实例 |
|||
|
0.0.0.0/0 |
10.0.0.0/8 |
TGW实例 |
|||
|
路由表A |
TGW实例(TGW进入VPC方向的流量匹配该路由表) |
0.0.0.0/0 |
10.0.0.0/16 |
系统 |
|
|
0.0.0.0/0 |
192.168.0.0/16 |
第三方防火墙实例 |
|||
|
0.0.0.0/0 |
172.16.0.0/16 |
第三方防火墙实例 |
|||
连通性测试
- 登录安全 VPC 中的第三方防火墙实例,执行以下命令启动允许转发。
1# 临时启用允许转发,重启后会失效
2echo 1 > /proc/sys/net/ipv4/ip_forward
3
4# 永久启动允许转发
5echo 'net.ipv4.ip_forward=1' >> /etc/sysctl.conf
6sudo sysctl -p
- 登录 VPC-A 中的虚机,对 VPC-B 中虚机的 ip 执行 ping 操作,测试 VPC-A 与 VPC-B 的连通性,同时在安全 VPC中的第三方防火墙实例上,执行 tcpdump 命令,检查 VPC-A 与 VPC-B 的互访流量是否经过第三方防火墙。
1# 测试VPC-A与VPC-B连通性
2ping <虚机ip地址>
3
4# 测试流量是否通过第三方防火墙
5tcpdump host <源虚机ip地址> and <目的虚机ip地址>
相关产品
评价此篇文章
