Day36-07|17.3.1 网络高可用设计:让链路、设备和业务在故障中持续运行

对应教材:第17章 通信系统架构设计理论与实践——17.3.1 网络高可用设计

学习目标:理解网络高可用的含义、指标和设计层次;掌握设备、链路、路径、网关、路由、负载均衡和数据中心冗余;能够识别共同故障域和隐藏单点;能够通过故障演练验证切换时间和业务连续性。

一、网络高可用不等于堆设备

网络高可用是指在设备、链路、协议、配置、机房或运营商发生故障时,网络和上层业务仍能在约定时间内继续提供服务,或通过降级把影响控制在可接受范围内。高可用设计不仅包括冗余设备,还包括故障检测、自动切换、状态保持、恢复、监控和演练。

高可用目标应量化为可用性、RTO、RPO、切换时间、收敛时间、丢包量和降级范围。例如核心网络要求月度可用性 99.99%,链路故障 3 秒内切换,关键会话允许少量重传;普通办公网络可以接受更长恢复时间。

网络高可用闭环如下:

故障发生 → 监测发现 → 判断确认 → 路径/设备切换 → 业务重连或继续 → 恢复校验与告警

没有检测和切换机制的双设备只是备用资源,没有业务验证和演练的自动切换也可能只是纸面方案。

二、网络高可用的层次

1. 设备级高可用

采用双电源、双控制器、设备集群、主备或堆叠,避免单台设备故障造成中断。要确认状态同步、配置一致、升级方式和切换时间。

2. 链路级高可用

采用双上联、链路聚合、多运营商和不同物理路径。链路冗余要验证光缆、配线、机柜和电源是否真正独立。

3. 路径级高可用

通过动态路由、等价多路径、策略路由和备用隧道提供多条可达路径。要关注路由收敛、环路、黑洞和路径震荡。

4. 服务级高可用

网络设备正常但 DNS、认证、负载均衡、应用和数据库失效,业务仍不可用。因此要把网络和基础服务、应用探针及数据中心整体联动设计。

5. 站点级和区域级高可用

通过双机房、双数据中心、多活、主备和异地灾备应对机房断电、火灾、网络中断和区域灾害。站点级方案要处理数据同步、流量调度、DNS、证书和切换流程。

三、故障域和共同故障

高可用设计首先识别故障域:端口、设备、机架、机房、供电、光缆、运营商、区域和云平台。如果主备设备位于同一机柜、使用同一电源和同一上联光缆,它们仍属于同一共同故障域。

还要识别逻辑共同故障:错误配置同时下发、证书同时过期、软件缺陷同时触发、控制器策略错误和统一身份服务不可用。冗余数量越多,不代表独立性越强;配置和供应链也可能造成同时失效。

四、设备和链路冗余

双核心可以采用主备、双活或虚拟化集群。主备结构简单,切换时可能短暂中断;双活提高资源利用率,但需要状态同步、环路控制和冲突处理。链路聚合提供带宽和成员链路冗余,但不能替代跨设备、跨路径冗余。

设备电源采用双路供电并连接不同 UPS;核心和汇聚设备分散机房;光纤路径避开同一管道;不同运营商使用不同接入线路。设计文档应绘制物理路径,而不是只画逻辑连接。

五、网关和路由高可用

网关冗余通过虚拟 IP、主备协议或多网关实现。切换要考虑 ARP/ND、连接状态、NAT、会话、策略和 DNS。动态路由可根据链路健康自动调整路径,但收敛速度和路由规模要通过测试验证。

路由高可用的风险包括路由环路、黑洞、默认路由错误、策略路由冲突和收敛震荡。可通过路由过滤、前缀校验、最大前缀数、链路探测、收敛定时器和变更审计控制。

关键业务可以使用多路径,但要保证路径质量和应用对重排序、重复及重连的处理。多路径若共享同一安全设备或出口,仍可能存在隐藏单点。

六、负载均衡高可用

负载均衡器负责把请求分发到多个服务实例,可采用四层、七层、DNS、全局负载均衡和服务发现。高可用设计需要双机、集群、健康检查、会话策略和配置同步。

健康检查不能只检查端口打开,应验证应用、依赖和关键交易。过于简单的检查会把“进程活着但业务不可用”的实例继续纳入;过于复杂的检查又可能给依赖系统造成压力。会话保持会影响故障切换,优先采用无状态服务或外部会话存储。

七、网络设备和控制器的状态

高可用切换时,状态是关键。路由表、ARP、NAT、ACL、VPN、连接、流表和配置如果不同步,备用设备接管后可能出现黑洞或会话中断。

状态同步应考虑实时性、带宽、版本、冲突和分区。不是所有状态都适合强同步;可以让连接重新建立,但关键配置和策略必须一致。切换后要进行状态校验,防止备用设备以过期配置运行。

八、网络高可用与安全

安全设备也不能成为单点。防火墙、VPN、认证和入侵防御要采用集群或备用,并同步策略、会话和证书。高可用不能绕过安全检查,例如切换到备用路径后仍需执行访问控制和审计。

配置变更和安全策略要有版本、审批和回滚。错误规则可能同时下发到所有设备,形成大面积不可用;应采用预检、灰度和分批发布。证书和密钥过期是常见共同故障,应建立提前告警和轮换。

九、监控、告警和自动恢复

监控指标包括设备健康、接口状态、错误包、链路时延、丢包、路由邻居、切换次数、收敛时间、控制器连接、流表、带宽和应用探针。告警要区分单点故障、冗余接管、持续降级和完全中断。

自动恢复不能无限重试。网络抖动时频繁切换会产生震荡;应设置阈值、冷却时间和人工确认。自动化脚本要有幂等、权限、审计和回滚,不能用不可控脚本同时修改全网。

十、灾备和多活

双数据中心可以采用主备、双活或多活。主备成本和一致性较易控制,但切换时间较长;双活提高连续性和资源利用率,却要求跨中心网络、数据同步、冲突、流量调度和应用改造。

灾备目标由 RTO、RPO 和业务等级决定。同步复制适合低 RPO 但受距离和时延限制;异步复制适合远距离但可能丢失最近数据。网络切换不等于应用切换,必须同时处理 DNS、负载均衡、数据库、认证和缓存。

十一、故障演练

演练应逐层进行:拔除接入链路、关闭交换机端口、重启核心、断开运营商、停止控制器、关闭认证、模拟广播风暴和切换数据中心。观察检测时间、切换时间、丢包、会话、应用、告警和恢复。

演练前要设定范围、风险、回滚和联系人;演练后要形成问题、根因、改进措施和再次验证。不能只在维护窗口做“拔线展示”,还要验证峰值负载、真实业务和恢复后的配置一致。

十二、案例:双数据中心网络高可用

某金融企业有两个数据中心和多个分支,核心交易要求高可用,报表和备份允许延迟。架构采用双核心、双运营商、双防火墙和双负载均衡,两个数据中心之间建立冗余专线,交易服务采用主备并配置异步灾备。

分支 → 双运营商 → 双核心 → 双防火墙 → 双数据中心负载均衡 ↓ ↓ 交易主备 报表/备份

交易流量优先进入当前主中心,链路探针和业务探针共同决定切换;防火墙和负载均衡同步策略和必要状态;数据中心故障时切换 DNS、路由和应用入口;备份流量限速;切换后进行交易对账和配置校验。季度演练验证链路、设备、认证、数据库和应用全链路恢复。

十三、考试答题模板

题目问“网络高可用设计”,可按目标指标、设备冗余、链路冗余、路径冗余、网关路由、负载均衡、故障域、安全、监控、灾备和演练展开。题目问“为什么双设备仍中断”,要分析共同电源、同链路、配置错误、控制器、认证、DNS和应用状态。

论文中可以写:我从设备、链路、路径、服务和站点五个层次设计高可用,所有冗余都进行故障域分析;通过双运营商、双核心、双安全设备、多路径和业务探针控制单点;配置、路由和证书版本化管理,发布前预检并可回滚;用真实业务进行断链、设备、认证和数据中心切换演练。

十四、课后练习

练习1

为什么“部署两台设备”仍可能存在单点?

参考答案:两台设备可能共用电源、机柜、光缆、运营商、控制器、配置和认证服务,存在共同故障域;必须分析物理、逻辑、软件和组织依赖。

练习2

高可用设计为什么需要业务探针?

参考答案:设备和链路在线不代表 DNS、认证、数据库和应用正常;业务探针能验证端到端服务,避免错误切换或继续使用故障实例。

练习3

网络高可用如何验证?

参考答案:模拟链路、设备、路由、运营商、认证、控制器和站点故障,测量发现、切换、丢包、RTO、会话、业务成功率、告警和恢复后状态。

十五、今日复盘

网络高可用是从故障域、检测、切换、状态、恢复到业务验证的完整体系。设备和链路冗余只是基础,路由收敛、负载均衡、认证、配置、灾备和演练同样重要。高级架构题要用量化指标和真实故障验证方案,而不是简单写“主备、双机和负载均衡”。