- 最新动态
- 功能总览
- 产品介绍
- 快速入门
- 用户指南
- 最佳实践
-
API参考
- 使用前必读
- API概览
- 如何调用API
- API
- API V3
- API(OpenStack Neutron V2.0 原生)
- 应用示例
-
权限和授权项
- 策略及授权项说明
- VPC
- 子网
- 端口
- 对等连接
- VPC路由
- 路由表
- 配额
- 私有IP
- 安全组
- 安全组规则
- VPC标签
- 子网标签
- VPC流日志
- 端口(Openstack Neutron API)
- 网络(Openstack Neutron API)
- 子网(Openstack Neutron API)
- 路由器(Openstack Neutron API)
- 网络ACL(Openstack Neutron API)
- 安全组(Openstack Neutron API)
- VPC(API V3)
- 安全组(API V3)
- 安全组规则(API V3)
- IP地址组(API V3)
- 辅助弹性网卡(API V3)
- 流量镜像会话(API V3)
- 流量镜像筛选条件(API V3)
- 流量镜像筛选规则(API V3)
- 网络ACL(API V3)
- 网络ACL标签(API V3)
- 端口(API V3)
- API授权项注意事项
- 常见问题
- 历史API
- 附录
- SDK参考
-
常见问题
- 计费类
- 虚拟私有云与子网类
- 弹性公网IP类
- 对等连接类
- 虚拟IP类
- 带宽类
-
网络连接类
- VPN支持将两个VPC互连吗?
- ECS有多个网卡时,为何无法通过域名访问公网网站及云中的内部域名?
- 同时拥有自定义路由和EIP的ECS访问外网的优先级是什么?
- 本地主机访问使用弹性云服务器搭建的网站出现间歇性中断怎么办?
- 同一个子网下的弹性云服务器只能通过内网IP地址单向通信怎么办?
- 同一个VPC内的两台弹性云服务器无法互通或者出现丢包等现象时,如何排查?
- Cloud-init连接出现问题时,如何排查?
- EIP连接出现问题时,如何排查?
- 二三层通信出现问题时,如何排查?
- 裸机网络出现问题时,如何排查?
- 弹性云服务器IP获取不到时,如何排查?
- VPN及专线网络连接出现问题时,如何排查?
- 外网能访问服务器,但是服务器无法访问外网时,如何排查?
- 配置了IPv6双栈,为什么无法访问IPv6网站?
- 弹性云服务器防火墙配置完成后,为什么网络不通?
- 路由类
- 安全类
- 视频帮助
- 产品术语
-
更多文档
- 用户指南(阿布扎比区域)
-
API参考
- 使用前必读
- API概览
- 如何调用API
- 快速入门
- API V1/V2
- API V3
- API(OpenStack Neutron V2.0 原生)
-
权限和授权项
- 策略及授权项说明
- VPC
- 子网
- 端口
- 对等连接
- VPC路由
- 路由表
- 配额
- 私有IP
- 安全组
- 安全组规则
- VPC标签
- 子网标签
- 端口(Openstack Neutron API)
- 网络(Openstack Neutron API)
- 子网(Openstack Neutron API)
- 路由器(Openstack Neutron API)
- 网络ACL(Openstack Neutron API)
- 安全组(Openstack Neutron API)
- VPC(API V3)
- 安全组(API V3)
- 安全组规则(API V3)
- IP地址组(API V3)
- 辅助弹性网卡(API V3)
- 网络ACL(API V3)
- 网络ACL标签(API V3)
- API授权项注意事项
- 历史API
- 附录
- 文档修订记录
-
用户指南(巴黎区域)
- 产品介绍
- 快速入门
- 虚拟私有云和子网
- 访问控制
- 弹性IP
- 共享带宽
- 路由表
- 对等连接
- VPC流日志
- 虚拟IP
- 审计
- 监控
-
常见问题
- 通用类
- 计费类
- 虚拟私有云与子网类
- 弹性IP类
- 对等连接类
- 虚拟IP类
- 带宽类
-
网络连接类
- VPN支持将两个VPC互连吗?
- 弹性云服务器有多个网卡时,为何无法通过域名访问公网网站及云中的内部域名?
- 同时拥有自定义路由和弹性IP的访问外网的优先级是什么?
- 本地主机访问使用弹性云服务器搭建的网站出现间歇性中断怎么办?
- 同一个子网下的弹性云服务器只能通过内网IP地址单向通信怎么办?
- 同一个VPC内的两台弹性云服务器无法互通或者出现丢包等现象时,如何排查?
- Cloud-init连接出现问题时,如何排查?
- EIP连接出现问题时,如何排查?
- 弹性云服务器IP获取不到时,如何排查?
- VPN及专线网络连接出现问题时,如何排查?
- 外网能访问服务器,但是服务器无法访问外网时,如何排查?
- 配置了IPv6双栈,为什么无法访问IPv6网站?
- 弹性云服务器防火墙配置完成后,为什么网络不通?
- 路由类
- 安全类
- 修订记录
- API参考 (巴黎区域)
- 用户指南(吉隆坡区域)
- API参考(吉隆坡区域)
- 用户指南(安卡拉区域)
- API参考(安卡拉区域)
- 通用参考
链接复制成功!
通过对等连接和第三方防火墙实现多VPC互访流量清洗
应用场景
虚拟私有云支持用户自主配置和管理虚拟网络环境,您可以在VPC中使用安全组及网络ACL来进行网络访问控制,也可以使用第三方防火墙软件,对云上的业务进行灵活的安全控制。
本文为您介绍通过防火墙软件实现VPC内流量安全管控的需求,首先基于VPC对等连接实现多个VPC网络互通,然后VPC之间互访流量通过防火墙软件过滤清洗。
方案架构
本示例中vpc-A、vpc-B、vpc-C为业务所在的VPC,vpc-X为防火墙所在的VPC,这些VPC通过对等连接实现网络互通。vpc-A、vpc-B、vpc-C之间互通的流量均需要经过vpc-X上的防火墙。根据默认路由表配置,所有vpc-X的入方向流量均引入防火墙,通过防火墙清洗后的流量根据自定义路由表的目的地址送往指定业务VPC。
在图1中,以ecs-A01访问ecs-C01为例,您可以清晰的看到流量的请求路径和响应路径。
资源规划说明
本示例中需要创建虚拟私有云VPC、弹性云服务器ECS以及VPC对等连接,资源规划总体说明请参见表1。
以下资源规划详情仅为示例,供您参考,您需要根据实际业务情况规划资源。
资源 |
说明 |
---|---|
虚拟私有云VPC |
VPC的资源规划详情如表2所示。 本示例中共有4个VPC,包括业务所在VPC和防火墙所在的VPC。这些VPC位于同一个区域内,且这些VPC的子网网段不重叠。
须知:
需要通过对等连接通信的VPC的子网网段不能重叠,否则对等连接不会生效,更多详情请参见无效的VPC对等连接配置。 |
弹性云服务器ECS |
ECS的资源规划详情如表3所示。 本示例中共有4个ECS,这些ECS分别位于不同的VPC内,这些ECS如果位于不同的安全组,需要在安全组中添加规则放通对端安全组的网络。 |
VPC对等连接 |
VPC对等连接的资源规划详情如表4所示。
本示例中共3个对等连接,网络连通需求如下:
由于VPC对等连接具有传递性,通过路由配置,vpc-A、vpc-B以及vpc-C之间可以通过vpc-X进行网络通信。 |
VPC名称 |
VPC网段 |
子网名称 |
子网网段 |
关联路由表 |
子网作用 |
---|---|---|---|---|---|
vpc-A |
10.1.0.0/16 |
subnet-A01 |
10.1.0.0/24 |
默认路由表 |
部署业务的子网 |
vpc-B |
10.2.0.0/16 |
subnet-B01 |
10.2.0.0/24 |
默认路由表 |
部署业务的子网 |
vpc-C |
10.3.0.0/16 |
subnet-C01 |
10.3.0.0/24 |
默认路由表 |
部署业务的子网 |
vpc-X |
192.168.0.0/16 |
subnet-X01 |
192.168.0.0/24 |
自定义路由表 |
部署防火墙的子网 |
组网规划说明
本示例中需要在VPC路由表中配置路由,实现VPC之间的互通以及通过防火墙的流量清洗、组网规划总体说明请参见表5。
以下路由规划详情仅为示例,供您参考,您需要根据实际业务情况规划路由。
路由表 |
说明 |
---|---|
业务所在VPC |
vpc-A、vpc-B、vpc-C为业务VPC,路由表的规划详情如表6所示。 在vpc-A、vpc-B、vpc-C的默认路由表中,分别添加指向其他VPC子网,下一跳为对等连接的路由,实现不同VPC之间的网络互通。 |
防火墙所在VPC |
vpc-X为防火墙VPC,路由表的规划详情如表7所示。
|
VPC名称 |
VPC路由表 |
目的地址 |
下一跳类型 |
下一跳 |
路由类型 |
路由作用 |
---|---|---|---|---|---|---|
vpc-A |
默认路由表:rtb-vpc-A |
10.2.0.0/24 |
对等连接 |
peer-AX |
自定义 |
|
10.3.0.0/24 |
对等连接 |
peer-AX |
自定义 |
|
||
192.168.0.0/24 |
对等连接 |
peer-AX |
自定义 |
|
||
vpc-B |
默认路由表:rtb-vpc-B |
10.1.0.0/24 |
对等连接 |
peer-BX |
自定义 |
|
10.3.0.0/24 |
对等连接 |
peer-BX |
自定义 |
|
||
192.168.0.0/24 |
对等连接 |
peer-BX |
自定义 |
|
||
vpc-C |
默认路由表:rtb-vpc-C |
10.1.0.0/24 |
对等连接 |
peer-CX |
自定义 |
|
10.2.0.0/24 |
对等连接 |
peer-CX |
自定义 |
|
||
192.168.0.0/24 |
对等连接 |
peer-CX |
自定义 |
|
VPC名称 |
VPC路由表 |
目的地址 |
下一跳类型 |
下一跳 |
路由类型 |
路由作用 |
---|---|---|---|---|---|---|
vpc-X |
默认路由表:rtb-vpc-X |
0.0.0.0/0 |
服务器实例 |
ECS-X |
自定义 |
本文以防火墙部署在一台ECS上为例,如果您的防火墙同时部署在多台ECS上,对外通过虚拟IP通信,则路由下一跳选择虚拟IP。 |
自定义路由表:rtb-vpc-custom-X |
10.1.0.0/24 |
对等连接 |
peer-AX |
自定义 |
|
|
10.2.0.0/24 |
对等连接 |
peer-BX |
自定义 |
|
||
10.3.0.0/24 |
对等连接 |
peer-CX |
自定义 |
|
约束与限制
- VPC对等连接只能实现同区域VPC的网络互通,因此请确保您的VPC位于同一个区域内。
- 需要通过VPC对等连接通信的VPC的子网网段不能重叠,否则对等连接不会生效,更多详情请参见无效的VPC对等连接配置。
- 第三方防火墙部署的ECS所在的子网需要关联自定义路由表 ,请确保您资源所在的区域支持自定义路由表功能。
如果在网络控制台的左侧子栏目看到独立的“路由表”选项,表示支持自定义路由表功能。
图2 支持定义路路由
操作步骤
- 在区域A内,创建4个VPC及其子网。
具体方法请参见创建虚拟私有云和子网。
本示例中的VPC和子网资源规划详情请参见表2。
- 创建vpc-X内的自定义路由表,并将subnet-X01关联至自定义路由表。
- 在vpc-X内,创建自定义路由表。
具体方法请参见创建自定义路由表。
- 将子网subnet-X01的关联至2.a创建的自定义路由表。
子网创建完成后,自动关联VPC默认路由表,因此当前子网subnet-X01关联的是vpc-X的默认路由表,需要更换为2.a创建的自定义路由表。
具体方法请参见更换子网关联的路由表。
- 在vpc-X内,创建自定义路由表。
- 创建四个ECS,分别属于不同的VPC内。
具体方法请参见自定义购买ECS。
- 配置ecs-X的网卡,并安装第三方防火墙软件。
- 关闭ecs-X的网卡“源/目的检查”。
- 在ECS列表中,单击目标ECS的名称。
- 选择“弹性网卡”页签,并单击
展开ECS的网卡详情区域,可以查看“源/目的检查”功能。
如图3所示,表示“源/目的检查”功能已关闭。
- 在ecs-X中安装第三方防火墙。
- 关闭ecs-X的网卡“源/目的检查”。
- (可选)为云服务器配置虚拟IP。
此步骤为可选:您可以在vpc-X中创建主备服务器,并绑定同一虚拟IP,当主服务器发生故障无法对外提供服务时,动态将虚拟IP切换到备服务器,继续对外提供服务。如果部署第三方防火墙的弹性云服务器不需要主备,此步骤不需要执行。
- 在vpc-X的子网内,创建虚拟IP。
具体方法请参见申请虚拟IP地址。
- 将虚拟IP绑定到部署防火墙的主备ECS上。
具体方法请参见虚拟IP绑定云服务器。
- 在vpc-X的子网内,创建虚拟IP。
- 创建3个VPC对等连接,并配置路由。
- 创建3个VPC对等连接。
- 如果您的VPC在同一个账号内,具体方法请参见创建同一账户下的对等连接,您只需要执行该章节的“创建VPC对等连接”小节。
- 如果您的VPC在不同一个账号内,具体方法请参见创建不同账户下的对等连接,您需要执行该章节的“创建VPC对等连接”小节和“接受对等连接”小节。
本示例中的VPC对等连接资源规划详情请参见表4。
- 在3个业务VPC的默认路由表中,添加指向其他3个VPC,下一跳为对等连接的路由。
具体方法请参见添加自定义路由。
本示例中,分别在vpc-A、vpc-B、vpc-C的路由表中,添加表6中规划的路由。
- 在防火墙VPC的默认路由表和自定义路由表中,分别配置路由。
具体方法请参见添加自定义路由。
本示例中,分别在vpc-X的默认路由表和自定义路由表中,添加表7中规划的路由。
- 创建3个VPC对等连接。
- 登录ECS,验证防火墙是否生效。
ECS有多种登录方法,具体请参见登录弹性云服务器。
本示例是通过管理控制台远程登录(VNC方式)。
- 登录ecs-A01,验证vpc-A与vpc-B网络互通情况。
命令示例:
ping 10.2.0.93
回显类似如下信息,表示网络互通配置成功。
[root@ecs-A01 ~]# ping 10.2.0.93 PING 10.2.0.93 (10.2.0.93) 56(84) bytes of data. 64 bytes from 10.2.0.93: icmp_seq=1 ttl=64 time=0.849 ms 64 bytes from 10.2.0.93: icmp_seq=2 ttl=64 time=0.455 ms 64 bytes from 10.2.0.93: icmp_seq=3 ttl=64 time=0.385 ms 64 bytes from 10.2.0.93: icmp_seq=4 ttl=64 time=0.372 ms ... --- 10.2.0.93 ping statistics ---
- 不要中断7.a,登录ecs-X01,验证vpc-A到vpc-B的流量是否通过ecs-X01。
- 在ecs-X01上,执行以下命令,检查eth0网卡的流量变化。
至少连续执行两次命令,检查RX packets和TX packets是否变化。
ifconfig eth0
流量变化说明,表示流量通过ecs-X01,流量被防火墙过滤。[root@ecs-X01 ~]# ifconfig eth0 eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.0.5 netmask 255.255.255.0 broadcast 192.168.0.255 inet6 fe80::f816:3eff:feb6:a632 prefixlen 64 scopeid 0x20<link> ether fa:16:3e:b6:a6:32 txqueuelen 1000 (Ethernet) RX packets 726222 bytes 252738526 (241.0 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 672597 bytes 305616882 (291.4 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 [root@ecs-X01 ~]# ifconfig eth0 eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.0.5 netmask 255.255.255.0 broadcast 192.168.0.255 inet6 fe80::f816:3eff:feb6:a632 prefixlen 64 scopeid 0x20<link> ether fa:16:3e:b6:a6:32 txqueuelen 1000 (Ethernet) RX packets 726260 bytes 252748508 (241.0 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 672633 bytes 305631756 (291.4 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
- 参考7.a~7.c,检查其他VPC之间的通信情况。
- 登录ecs-A01,验证vpc-A与vpc-B网络互通情况。