背景
在同城双活或异地多活容灾场景中,灾备资源通常和主力资源部署在不同可用区或不同地域,并归属于不同子网,当发生可用区或地域级别故障时,可以进行容灾切换,为了验证容灾架构的有效性,您可以利用智能顾问-混沌演练“VPC 子网网络隔离”动作封禁服务主力资源所在子网,以模拟因故障造成的资源不可访问情况。
故障效果
VPC 子网隔离故障提供单个子网和全部子网两种网络隔离方式。
单个子网
故障动作参数隔离范围选择单个子网时,将会封禁选中子网的出入流量,子网间也不可访问,各子网内部流量不受影响。
全部子网
故障动作参数隔离范围选择全部子网时,将会封禁选中子网的出入流量,但是选中子网间访问不受影响。您可以将归属于同一个可用区的子网同时注入故障,模拟该可用区与其它可用区出现网络隔离故障。
演练准备
同一 VPC 下创建两个子网,并且子网下关联内网 CLB、CVM、MySQL 资源。同一 VPC 下实例默认网络互通,所以在故障注入前,子网间资源可以互相访问,当封禁主可用区子网时,主可用区子网内实例间仍可正常访问,但外部外访问主可用区子网实例将失败。
注意:
子网网络隔离通过对子网设置网络 ACL 规则实现,存量长连接会被立即断开。
当目标子网存在网络 ACL 规则时,故障注入时,将会临时解绑,并在恢复时重新恢复绑定,演练过程中请勿手动修改或删除网络 ACL 规则。
子网网络隔离不能用来模拟数据库单可用区故障,数据库单可用区故障请参见 数据库相关故障 动作。 选择隔离范围为“全部子网”时,最大允许添加20个子网,当您需要对20个以上的子网进行“全部子网”隔离时,请联系腾讯云助手 提交工单。 此故障动作不会禁止外部对子网内 CLB 的 Ping 探测。
演练实施
步骤一:创建演练
2. 点击新建演练,填写演练基本信息,完成后点击下一步。
3. 在演练实例中,选择网络下的子网,点击添加实例。
添加实例后,会列出目标地域下所有的子网信息,可以根据子网 ID、VPC 实例 ID、标签、可用区键筛选符合要求的子网。
注意:
子网网络隔离影响范围较大,请谨慎选择故障注入实例范围。
4. 选择目标子网后,点击立即添加,即可添加演练动作。
演练动作选择网络隔离,然后点击下一步设置隔离范围参数,完成后点击确定。
5. 参数配置完成之后,在全局配置中选择执行方式、护栏策略,及添加可观测指标。配置完成后,点击提交,即可完成演练任务创建。
步骤二:执行演练
在演练动作组中,点击执行,开始执行演练。由于演练为手动推进,所以需要手动执行故障动作。
步骤三:验证注入效果
在私有化网络控制台,网络拓扑菜单可以看到网络拓扑已经在相应子网上添加了网络 ACL 规则。
测试实例访问,预期故障可用区内子网间实例互访不受影响,子网外访问故障子网内实例失败。
CVM 访问 CVM
同一子网内访问正常
不同子网访问失败(命令阻塞)
CVM 访问 MySQL
同一子网内访问正常
不同子网访问失败
CVM 访问 CLB
由于 CLB 使用 vpcgw 代答 Ping 探测,所以子网网络隔离并不会禁止 Ping 探测,可以使用 telnet 对服务端口进行探测。
同一子网访问正常
不同子网访问失败(命令阻塞)
步骤四:执行故障恢复动作
点击执行恢复动作并等待动作执行成功。
步骤五:验证恢复效果
参考步骤三进行验证,预期子网内及子网间实例访问正常。