Day36-14|17.5.1 高可用网络构建分析:从双设备到端到端业务连续性
Day36-14|17.5.1 高可用网络构建分析:从双设备到端到端业务连续性
对应教材:第 17 章 通信系统架构设计理论与实践——17.5.1 高可用网络构建分析
学习定位:掌握高可用网络案例的分析步骤,理解设备、链路、路径、区域、控制平面和运维流程的冗余关系,能够将 RTO、RPO、故障检测、收敛、容量和演练写成完整的架构设计答案。
一、什么是高可用网络
高可用网络的目标不是让每一台设备永远不出故障,而是在设备、链路、机房、运营商、控制器或配置发生故障时,业务仍能在规定时间内继续运行,或者以可接受的降级方式恢复。高可用设计关注的是故障发生后的服务结果,而不是设备数量本身。
常见的错误理解包括:两台核心交换机就是高可用;两条线路就是高可用;部署了动态路由协议就是高可用;配置了主备防火墙就是高可用。这些措施可能是组成部分,但都不能单独证明端到端业务连续性。
高可用网络的完整链条可以概括为:
故障识别 → 故障隔离 → 状态保持或重建 → 路径切换 → 业务恢复 → 监控确认 → 修复与回切
任何一个环节缺失,都可能导致“看起来有冗余,实际仍然中断”。例如,链路故障可以被快速发现,但备用链路容量不足,切换后关键业务仍然拥塞;设备有主备,但会话状态没有同步,切换后所有连接被迫重建;路由收敛很快,但安全策略没有同步,恢复路径无法访问数据库。
二、高可用需求的量化表达
2.1 可用性指标
可用性通常表示系统在规定时间内能够提供服务的比例。不能只写“要求高可用”,应结合业务等级确定年度不可用时间、允许的单次中断时间、故障检测时间、切换时间和人工恢复时间。
例如,某核心业务要求月度可用性达到 99.99%,那么设计就需要进一步解释:计划维护是否计入不可用?链路故障能否自动切换?数据库和应用是否与网络同时具备冗余?网络切换是否造成连接中断?这些问题决定可用性指标是否真正有意义。
2.2 RTO 与 RPO
RTO 是发生故障后业务恢复到可接受状态所允许的最长时间;RPO 是故障时可以接受的数据丢失时间窗口。网络本身通常不直接产生业务数据,但网络会影响数据复制、事务提交和应用重连,因此网络架构要与系统整体的 RTO、RPO 匹配。
对于同步复制,网络通常要求低时延、高稳定性和较低丢包;对于异步复制,可以容忍一定延迟,但必须规划复制带宽和积压恢复时间。灾备链路设计不能只写“有专线”,还要说明链路故障、流量峰值和恢复期间的容量。
2.3 故障检测与恢复指标
高可用案例中建议明确:
- 故障检测时间:多久能够识别链路、设备、邻居或服务异常?
- 决策时间:控制器、路由协议或集群多久确认切换?
- 执行时间:备用路径、设备或安全策略多久生效?
- 业务恢复时间:应用请求多久恢复成功?
- 稳定时间:切换后多久确认没有持续抖动?
- 回切时间:故障修复后是否自动回切,回切是否会造成二次中断?
三、故障域分析
3.1 故障域的概念
故障域是一次故障可能同时影响的一组资源。常见故障域包括设备、机柜、机房、供电系统、空调系统、链路、运营商、路由域、控制器集群、云区域和管理平台。
如果两台核心设备位于同一机柜并共享同一电源,设备级冗余存在,但机柜级和供电级冗余不存在;如果两条专线来自同一运营商、共用同一管道,则线路级冗余可能无法抵御光缆或运营商机房故障。
3.2 故障域矩阵
可以建立如下矩阵分析冗余是否真正跨域:
| 资源 | 设备域 | 机柜域 | 机房域 | 供电域 | 运营商域 | 控制域 |
|---|---|---|---|---|---|---|
| 核心设备 A | 独立 | 机柜 1 | 机房 1 | UPS-A | 运营商 1 | 控制器 1 |
| 核心设备 B | 独立 | 机柜 2 | 机房 1 | UPS-B | 运营商 1 | 控制器 2 |
| 灾备核心 C | 独立 | 机柜 3 | 机房 2 | UPS-C | 运营商 2 | 控制器 3 |
从矩阵可以看出,A 和 B 具备设备、机柜和供电冗余,但仍共享机房和运营商;C 才能提供机房和运营商级别的独立性。架构师要根据业务等级决定需要抵御哪一级故障,而不是为了形式上的“全冗余”无限增加成本。
四、高可用网络拓扑设计
4.1 双核心与三层接入
园区网络常见设计是双核心、双上联和接入交换机冗余。接入设备可以通过链路聚合、堆叠、虚拟机箱或三层双归方式连接到两个核心。选择方式取决于二层延伸需求、设备能力、收敛时间和运维复杂度。
双核心不是简单地把两台设备连在一起。要明确网关是否采用虚拟 IP、网关状态如何同步、链路是否需要跨设备聚合、核心之间是否存在环路,以及一台核心故障时接入设备是否能快速切换。
4.2 叶脊与等价多路径
数据中心常采用叶脊架构。叶交换机连接服务器或存储,脊交换机提供多条等价路径,流量可以通过 ECMP 分担。该架构适合东西向流量和规模扩展,但需要验证路由收敛、链路利用率、哈希不均、故障检测和微突发。
叶脊网络的高可用依赖多个层面:脊设备冗余、叶到脊多链路、路由协议收敛、服务器双网卡、虚拟交换机策略和上层应用重试。如果服务器只有一块网卡,即使网络核心完全冗余,服务器接入仍是单点。
4.3 双活与主备
双活让两个节点同时承载流量,资源利用率较高,但需要解决状态一致、流量分担和脑裂;主备结构逻辑较简单,但备用资源利用率低,切换时可能存在启动、状态同步和连接重建时间。
无状态服务更适合双活;有状态防火墙、负载均衡和数据库则需要重点评估会话同步、连接漂移和一致性。架构设计中应说明哪些组件采用双活,哪些采用主备,以及选择依据。
五、路由与收敛设计
5.1 路由收敛
路由收敛是从故障发生到网络重新建立可用路径的过程。影响因素包括故障检测、邻居关系、路由计算、策略过滤、转发硬件更新和应用连接恢复。
缩短收敛时间可以采用链路快速检测、合理的定时器、预计算备份路径、快速重路由、路由汇总和等价多路径。但参数并非越激进越好,过短的检测周期可能将瞬时抖动误判为故障,导致路由振荡。
5.2 路由策略与安全边界
切换路径必须保持正确的路由策略和安全边界。不能因为追求最快切换而绕过防火墙、访问控制或审计。应预先计算备用路径上的安全设备、策略和地址转换能力,并在演练中验证。
5.3 黑洞与环路防护
高可用场景中,路由发布错误可能比设备宕机更危险。要设计路由过滤、汇总、最大前缀限制、路径优先级、标签和环路保护。切换过程中要监控黑洞、环路、路径振荡和流量异常,必要时设置自动停止和回滚条件。
六、设备、链路与状态冗余
6.1 设备冗余
设备冗余要覆盖主控、电源、风扇、转发模块和管理模块。不同厂商对双主控、ISSU、虚拟化和状态同步的支持不同,不能只看设备数量。还要准备备件、软件版本、许可证和现场更换流程。
6.2 链路冗余
链路冗余要尽量跨物理路径、管道、运营商和接入点。两条光纤如果从同一管道进入机房,不能抵御管道故障;两条互联网线路如果共享同一运营商出口,不能抵御运营商级故障。
链路选择还要考虑故障后的剩余带宽。正常状态下两条链路各使用 50% 并不代表任意一条故障后都能满足业务,因为剩余链路可能需要承载全部流量并保留突发余量。
6.3 状态冗余
状态包括路由邻居、ARP 或 ND、会话表、NAT 映射、负载均衡连接、流表、策略、证书和配置。不同状态可以采用同步复制、异步复制、重建或重新学习。架构师应说明哪些状态必须同步,哪些状态允许重建,重建时间是否满足 RTO。
七、高可用与容量的联合校验
7.1 正常状态容量
正常状态要校验端口、链路、设备转发、会话、路由表、无线资源和控制器负载。容量不应长期处于极限,否则故障发生后没有吸收流量的空间。
7.2 故障状态容量
至少要验证以下场景:一条核心链路故障、一台核心设备故障、一个安全设备故障、一个机房不可用、一个运营商不可用、控制器节点故障和大规模流量突发。故障后的剩余容量要满足关键业务最低服务等级,而不是只证明“还能通”。
7.3 恢复状态容量
故障恢复和回切时可能出现流量重建、缓存失效、批量重试和数据复制追赶,瞬时流量甚至高于正常峰值。容量模型应包含恢复阶段,避免网络在恢复过程中再次拥塞。
八、监控、演练与运维
8.1 监控指标
高可用监控应覆盖设备状态、链路状态、邻居关系、路由变化、切换次数、会话同步、控制器集群、流量、丢包、时延、日志和业务探针。设备“在线”不等于业务可用,最好同时使用网络指标和端到端业务探针。
8.2 故障演练
演练应从低风险开始,逐步覆盖链路拔除、设备重启、端口故障、电源故障、路由邻居中断、控制器失联、安全设备切换、机房断联和运营商中断。每次演练要记录发现时间、切换时间、业务影响、告警质量和恢复结果。
8.3 配置与变更
高可用网络的配置变更需要版本管理、审批、备份、差异检查、灰度发布和回滚。两台冗余设备不能随意同时升级,应规划升级顺序和业务影响。配置漂移是常见风险,必须定期比较集群节点、备用设备和控制器中的状态。
九、案例分析:双机房数据中心高可用网络
某企业有主数据中心和灾备数据中心,核心订单、支付和库存业务要求全年连续运行。现有网络存在单核心、单出口和主备防火墙配置不一致等问题。改造要求核心设备故障时业务中断不超过 30 秒,单条链路故障不影响关键应用,主机房整体不可用时能够切换到灾备中心。
第一,分解业务目标。订单、支付和库存属于一级业务,要求低中断和严格审计;报表和批处理属于二级业务,可以延迟;备份和大数据同步属于三级业务,可以在故障期间限速或暂停。
第二,划分故障域。主机房内双核心分别位于不同机柜并连接不同供电系统;灾备中心部署独立核心、安全和出口;两个机房之间的互联尽量使用不同运营商和不同物理路径。
第三,设计拓扑。服务器采用双网卡分别连接不同接入设备,接入到核心采用三层或经过验证的双活技术;核心到安全设备、出口和灾备互联使用多链路;安全设备采用状态同步的高可用集群。
第四,设计路由与业务切换。主数据中心正常承载一级业务,灾备中心保持必要的同步资源和可接管能力;路由发布和 DNS 或全局负载均衡策略预先验证,切换不绕过安全边界;关键应用要配合连接重试和健康检查。
第五,校验容量。主链路、备用链路和灾备中心要分别计算正常、单故障和主机房切换后的流量。故障时优先保障订单、支付和库存,限制报表、备份和批处理,确保剩余资源满足最低服务等级。
第六,完善运维。建立网络和业务双重监控,保存配置和策略版本,定期演练链路、设备、机房和运营商故障。演练不仅确认路由切换,还要验证支付会话、数据库复制、证书、日志和审计是否完整。
十、常见失分点
- 只写双机双链路,不写故障域和物理路径。
- 只写路由收敛,不写安全策略和业务会话恢复。
- 只验证正常状态,不验证单故障和恢复阶段容量。
- 只写主备,不写状态同步、切换触发和脑裂防护。
- 只写监控,不写故障演练、配置管理和回滚。
- 忽略服务器、存储、数据库和应用层的单点问题。
十一、今日必背清单
- 高可用的目标是业务连续性,不是设备数量增加。
- RTO、RPO、检测时间、切换时间和恢复时间必须量化。
- 冗余设计要跨越设备、链路、机柜、机房、供电、运营商和控制域等故障域。
- 路由收敛必须和安全策略、会话状态、应用恢复结合验证。
- 正常、故障和恢复三个阶段都要进行容量校验。
- 双活与主备要根据状态特征、切换目标和运维能力选择。
- 高可用方案必须通过故障注入、切换演练和业务探针验证。
- 配置一致性、版本管理、备份、回滚和定期演练是高可用运维基础。
十二、课后练习
练习一:单项选择
下列哪项最能说明网络具备端到端高可用能力?
A. 核心交换机部署两台
B. 互联网接入购买两条线路
C. 关键业务在设备、链路和机房故障场景下均能在规定时间内恢复,并且经过演练验证
D. 网络设备支持动态路由协议
练习二:判断题
只要路由协议能够快速收敛,业务就一定能够在网络故障后快速恢复。( )
练习三:简答题
请说明故障域分析在高可用网络设计中的作用,并举出至少五种常见故障域。
练习四:案例题
某企业有两条 10 Gbps 链路,正常状态下各承载 40% 流量,另有 20% 资源作为突发余量。企业认为任意一条链路故障后仍然有 60% 空闲容量。请分析该结论是否正确,并说明还需要校验什么。
十三、参考答案
练习一答案
答案:C。
解析:设备、链路或协议冗余只是手段,只有在明确故障场景和恢复目标下,通过容量校验、切换验证和业务演练,才能证明端到端高可用。
练习二答案
答案:错误。
解析:路由收敛只是网络层路径恢复的一部分,业务还可能受到安全策略、NAT、负载均衡、会话状态、应用连接和数据库复制的影响。必须进行端到端验证。
练习三答案
参考答案:故障域分析用于识别哪些资源会因同一原因同时失效,判断冗余是否真正独立,避免出现两台设备共享机柜、供电、机房或运营商的伪冗余。常见故障域包括设备、机柜、机房、供电、空调、物理链路、管道、运营商、路由域、控制器、云区域和运维管理平台。
练习四答案
参考答案:不能直接得出 60% 空闲容量的结论。若每条链路容量为 10 Gbps,正常各承载 40% 即各承载 4 Gbps,总流量为 8 Gbps。一条链路故障后,剩余链路需要承载 8 Gbps,占其容量 80%,只剩 20% 的即时空闲,原先的两条链路合计余量不能直接视为故障后的剩余余量。
还需要校验流量是否可以均匀迁移、链路聚合和路由哈希是否造成不均衡、故障检测和收敛时间、队列和突发流量、关键业务最低服务等级、备用链路设备处理能力,以及恢复和回切阶段的流量重建。若需要保留 20% 的故障余量,就应增加容量、限制低优先级流量或设计降级策略。
十四、今日复盘
请画出一个双机房高可用网络,并在图上标出至少五类故障域。然后对每条冗余链路回答三个问题:故障如何被发现?流量如何切换?切换后容量和安全策略是否仍然满足关键业务要求?这三个问题是高可用案例题的核心答题骨架。
下一篇继续 Day36-15:17.5.2 园区网双核心构建分析。