VPC 子网网络隔离

最近更新时间:2025-11-20 15:16:33

我的收藏

背景

同城双活异地多活容灾场景中,灾备资源通常和主力资源部署在不同可用区或不同地域,并归属于不同子网,当发生可用区或地域级别故障时,可以进行容灾切换,为了验证容灾架构的有效性,您可以利用智能顾问-混沌演练“VPC 子网网络隔离”动作封禁服务主力资源所在子网,以模拟因故障造成的资源不可访问情况。

故障效果

VPC 子网隔离故障提供单个子网和全部子网两种网络隔离方式。

单个子网

故障动作参数隔离范围选择单个子网时,将会封禁选中子网的出入流量,子网间也不可访问。例如下图,当选择对子网 A 和子网 B 注入“单个子网”网络隔离故障时,子网 A 与子网 B 的出入流量将被全部封禁,子网 A 不能访问子网B和其它子网,但是各子网内部流量不受影响




全部子网

故障动作参数隔离范围选择全部子网时,将会封禁选中子网的出入流量,但是选中子网间访问不受影响,例如下图,当选择对子网A和子网B注入“全部子网”网络隔离故障时,子网 A、子网 B 内部流量访问不受影响,但是访问其他子网的流量将被禁止。您可以将归属于同一个可用区的子网同时注入故障,模拟该可用区与其它可用区出现网络隔离故障。




演练准备

同一 VPC 下创建两个子网,并且子网下关联内网 CLB、CVM、MySQL 资源,网络拓扑如下,其中主可用区分别关联了两个 CVM、一个内网网关、一个 MySQL 实例,备可用区关联了一个 CVM、一个内网网关。同一 VPC 下实例默认网络互通,所以在故障注入前,子网间资源可以互相访问,当封禁主可用区子网时,主可用区子网内实例间仍可正常访问,但外部外访问主可用区子网实例将失败。

注意:
子网网络隔离通过对子网设置网络 ACL 规则实现,存量长连接会被立即断开。
当目标子网存在网络 ACL 规则时,故障注入时,将会临时解绑,并在恢复时重新恢复绑定,演练过程中请勿手动修改或删除网络 ACL 规则。
子网网络隔离不能用来模拟数据库单可用区故障,数据库单可用区故障请参见 数据库相关故障 动作。
选择隔离范围为“全部子网”时,最大允许添加20个子网,当您需要对20个以上的子网进行“全部子网”隔离时,请联系腾讯云助手 提交工单
此故障动作不会禁止外部对子网内 CLB 的 Ping 探测。

演练实施

步骤一:创建演练

1. 登录 智能顾问控制台 > 架构治理,进入治理模式,点击混沌演练。(详细创建演练方式请参阅 使用智能顾问进行混沌演练

2. 点击新建演练,填写演练基本信息,完成后点击下一步

3. 在演练实例中,选择网络-子网,选择后点击搜索添加,添加实例资源。亦可通过架构图添加方式,直接点击架构图上的子网资源,选择实例进行添加。

4. 单击添加实例后,会列出目标地域下所有的 VPC 子网信息,可以根据子网 ID、VPC 实例 ID、标签、可用区键筛选符合要求的子网。
注意:
子网网络隔离影响范围较大,请谨慎选择故障注入实例范围。



5. 完成添加实例后,点击添加动作,选择网络隔离,然后单击下一步



设置隔离范围参数,完成后单击确定



6. 参数配置完成之后,在全局配置中选择执行方式护栏策略,及添加可观测指标。配置完成后,点击提交,即可完成演练任务创建,平台自动进行环境预检。


步骤二:执行演练

在演练动作组中,点击执行,或下方开始演练,开始执行演练。由于演练为手动推进,所以需要手动执行故障动作。


步骤三:验证注入效果

私有化网络控制台,网络拓扑菜单可以看到网络拓扑已经在相应子网上添加了网络 ACL 规则。

测试实例访问,预期故障可用区内子网间实例互访不受影响,子网外访问故障子网内实例失败。
CVM 访问 CVM
同一子网内访问正常

不同子网访问失败(命令阻塞)



CVM 访问 MySQL
同一子网内访问正常

不同子网访问失败

CVM 访问 CLB
由于 CLB 使用 vpcgw 代答 Ping 探测,所以子网网络隔离并不会禁止 Ping 探测,可以使用 telnet 对服务端口进行探测。
同一子网访问正常



不同子网访问失败(命令阻塞)




步骤四:执行故障恢复动作

点击执行恢复动作,并等待动作执行成功。


步骤五:验证恢复效果

参考步骤三进行验证,预期子网内及子网间实例访问正常。