
简介这份文档面向负责F5 BIG-IP运维与高可用架构设计的网络工程师围绕双机冗余与全冗余部署展开帮助读者理解F5与RadWare在冗余实现上的差异掌握串口心跳、网络心跳两种切换机制及实际选型思路。资源包内含1个doc文件约240KB内容涵盖串口心跳的电平监控与ARP广播切换流程、网络心跳基于TCP 1028端口的信号传递、Network FailSafe与Floating IP、Failover Peer IP的配置示例以及全冗余方式的拓扑与优缺点分析并延伸至BIG-IP对FailOver关键进程的监控与异常处理动作。已有300人学习下载适合需要搭建双机热备、排查切换故障或评估全冗余扩展成本的运维人员参考可据此梳理心跳链路配置要点与故障切换的触发条件。1. 双机冗余不是可选项从一次切换失败说起某次内部演练一台 F5 BIGIP 在模拟断电后没有按预期切走业务侧连接卡了将近两分钟才恢复。事后排查发现串口心跳线接头松动Backup 设备一直以为对端还活着。这件事说明一个很朴素的道理负载均衡设备本身如果成了单点后面挂再多服务器也白搭。F5 负载均衡的双机冗余配置核心目标就是让两台 BIGIP 设备互相盯着一台倒下另一台在秒级内接管所有 VS 和浮动 IP。这套方案适合正在做高可用架构课设的学生也适合需要交付双机冗余方案的运维工程师。下面从串口心跳、网络心跳、进程监控到全冗余拓扑把配置思路和落地细节一次讲透。2. 两种心跳机制的设计与选型串口电平与 TCP 1028 端口F5 的双机冗余和 RadWare 那套 VRRP 思路不一样。RadWare 走的是标准 VRRP 协议F5 主要靠串口心跳和网络心跳两条路来实现故障检测。选哪种取决于两台设备之间的物理距离和现场布线条件。2.1 串口心跳电平信号驱动的切换逻辑串口心跳是 F5 官方推荐的冗余方式。两台 BIGIP 之间用自带的串口线直连这根线比较短大概 50 英尺。它的工作方式很特别串口线上没有任何数据信号传输纯粹靠电平高低来传递状态。具体流程是这样的Active 设备在心跳线上持续输出高电平Backup 设备监听对端的高电平信号当 Backup 检测不到高电平时判定对端失效将自己切换为 Active新 Active 对外发送 ARP 广播把所有 VS 和浮动 IP 的映射关系广播出去引导流量切到自己这端这里有个容易忽略的点串口心跳不传数据所以不存在协议协商、版本兼容这些问题。它的可靠性来自物理层的简单直接。但反过来线缆松动、接头氧化这类物理故障它也没法通过软件层面感知只能靠电平消失来触发切换。注意串口线长度有限两台设备必须放在同一机柜或相邻机柜。如果机房规划里两台 BIGIP 要分在不同列串口方案直接排除。2.2 网络心跳跨机柜场景下的 TCP 1028 通道两台 BIGIP 物理位置较远时串口线够不着就得走网络心跳。两台设备之间通过网络线连接心跳信号通过 TCP 1028 端口传递。切换触发信号通过网络通知对端同时每台设备也通过网络连接监控对端状态。切换过程和串口心跳类似Active 设备产生心跳信号Backup 设备监听 Active 的心跳信号Backup 在一定时间内没收到心跳切换为 Active新 Active 发送 ARP 广播接管所有 VS 和浮动 IP配置 Network FailSafe 时需要指定一个 VLAN 专门跑心跳。这个 VLAN 通常是两台 BIGIP 之间的独立连接或者复用 Internal VLAN。我一般会单独划一个心跳 VLAN不跑业务流量避免业务高峰时心跳包被挤掉导致误切换。# 在 BIGIP 上创建心跳 VLAN通过 tmsh 命令行 create net vlan ha_vlan { interfaces { 1.2 { } } tag 200 } # 给心跳 VLAN 配置自 IP create net self 10.0.0.1/30 { vlan ha_vlan allow-service default } # 指定该 VLAN 用于 Network FailSafe modify sys failover network { vlan ha_vlan }这段配置做了三件事建了一个 tag 200 的 VLAN绑到 1.2 接口给这个 VLAN 配了 10.0.0.1/30 的自 IP最后把它指定为 FailSafe 心跳 VLAN。参数上tag 值只要不和现有 VLAN 冲突就行自 IP 用 /30 掩码足够因为只有两台设备互联。2.3 两种方式的对比与选型建议对比项串口心跳网络心跳连接方式串口线直连网络线连接传输内容电平信号无数据TCP 1028 端口心跳包距离限制约 50 英尺取决于网络可达性官方推荐是跨机房场景常用故障感知物理层电平消失心跳超时配置复杂度低基本免配置需划 VLAN、配自 IP选型逻辑很直接同机柜用串口跨机柜用网络。如果两台设备既在同机房又需要更高可靠性可以串口和网络心跳同时配任意一条通就能维持冗余状态。实际项目里我倾向于双心跳并行多一条路多一层保障。3. 网络心跳配置落地浮动 IP、Failover Peer 与状态检测网络心跳的配置不只是划个 VLAN 就完事浮动 IP 和 Failover Peer IP 的设置直接决定切换后流量能不能正确引导过来。3.1 浮动 IP 与 Failover Peer IP 的设置浮动 IP 是双机冗余里的核心概念。它不属于任何一台 BIGIP 的物理接口而是作为逻辑地址存在。正常情况下浮动 IP 挂在 Active 设备上切换时自动漂移到新 Active。所有 VS 的虚拟地址通常都配成浮动 IP这样切换后客户端不需要改 DNS 或重新连接。Failover Peer IP 则是用来标识对端设备的。每台 BIGIP 需要知道对端的管理 IP 或心跳 IP才能在故障时正确通知对方或检测对方状态。# 在 Active 设备上配置浮动 IP create net self 192.168.100.100/24 { vlan external traffic-group traffic-group-1 allow-service default } # 指定 Failover Peer IP对端设备的心跳地址 modify cm device /Common/device1 { failover-peer-ip 10.0.0.2 } modify cm device /Common/device2 { failover-peer-ip 10.0.0.1 }浮动 IP 绑在 traffic-group-1 上这个 traffic group 决定了哪些地址跟着切换走。Failover Peer IP 填的是对端心跳 VLAN 的地址两台设备互相填对方的。参数上traffic-group-1 是默认的流量组如果有多组 VS 需要分别切换可以建多个 traffic group 做更细粒度的控制。3.2 运行状态检测与 FailOver 配置配完之后需要验证冗余状态。在 System → Redundancy Properties 里可以看到当前设备的 Active/Standby 状态、对端是否可达、心跳是否正常。这个页面是排查双机问题的第一入口。FailOver 配置在 System → System Fail-safe 里。这里可以设置哪些故障条件触发切换比如心跳丢失、进程异常、链路 down 等。我一般会把心跳丢失和关键进程异常都勾上链路 down 是否触发切换要看具体拓扑有时候单条链路 down 不影响业务切了反而多余。# 查看当前冗余状态 show cm failover status # 输出示例 # Failover active for traffic group /Common/traffic-group-1 # Active for traffic group /Common/traffic-group-local-only # 查看 FailSafe 配置 list sys failovershow cm failover status会列出每个 traffic group 当前在哪台设备上是 Active。如果发现某个 group 的状态和预期不符先检查心跳 VLAN 通不通再看 FailSafe 配置里有没有误触发条件。3.3 关键进程监控与触发动作BIGIP 对 FailOver 相关进程有严格的监控机制。当关键进程无法响应或启动失败时会触发预设动作。这些动作包括切换到备份设备、重启故障设备、重启异常进程、不做处理。进程监控的价值在于它覆盖了心跳检测不到的场景。比如心跳线正常但负责处理流量的核心进程挂了这时候光靠心跳判断不出来得靠进程监控来触发切换。# 查看被监控的进程列表 list sys process # 配置进程失败时的动作示例tmm 进程异常时触发切换 modify sys process tmm { action failover }tmm 是流量管理进程它挂了基本等于设备失去负载均衡能力。把它配成 failover 动作进程异常时自动切到备机。其他进程比如 httpd、named 这些可以根据业务重要性决定是重启还是切换。我一般只对 tmm 和几个核心守护进程配 failover避免非关键进程抖动导致不必要的切换。4. 全冗余拓扑设计L2 堆叠扩展与 Trunk 捆绑单靠双机冗余还不够接入层和后台服务器群的连接方式同样影响整体可用性。实际项目里常用的全冗余方式是在双机基础上加 L2 交换机堆叠。4.1 全冗余网络拓扑的组成全冗余拓扑的核心思路是消除每一层的单点。两台 BIGIP 做双机冗余上联两台 L2 交换机做堆叠下联服务器群通过交换机接入。这样任意一台 BIGIP 或任意一台交换机故障流量都能绕行。拓扑结构大致是外部网络 → 堆叠交换机 → 两台 BIGIPActive/Standby→ 内部堆叠交换机 → 服务器群。BIGIP 和交换机之间通过 Trunk 方式连接把多个物理端口捆成一个逻辑链路提高带宽和可靠性。4.2 扩展性与瓶颈分析这种拓扑的优点很明确L2 交换机堆叠可以无限扩展端口后台服务器数量不再受 BIGIP 物理端口数限制。千兆扩展交换机能在保证连接速度的前提下为大批量服务器提供负载均衡提升并发连接处理能力。但缺点也得说清楚。部署成本高服务器如果都用千兆网卡交换机也得配千兆端口低端二三层交换机的端口和服务器网卡不匹配会导致丢包。另外扩展交换机增加的是服务器接入数量不是网络流量处理能力。后台服务器群规模过大时扩展交换机本身会成为瓶颈。# BIGIP 侧 Trunk 配置示例 create net trunk trunk1 { interfaces { 1.1 { } 1.2 { } } lacp enabled lacp-mode active } # 将 Trunk 绑定到 VLAN modify net vlan external { interfaces { trunk1 { } } }Trunk 把 1.1 和 1.2 两个口捆成 trunk1启用 LACP 主动模式。对端交换机也要做对应的端口聚合配置。这样单条链路故障时流量自动走另一条带宽也是两条之和。参数上lacp-mode 用 active 还是 passive 取决于交换机侧配置两边至少一边 active 才能协商成功。注意Trunk 配置前确认交换机侧已完成端口聚合否则可能形成环路。建议先在测试环境验证 LACP 协商状态。4.3 端口捆绑与上级设备连接扩展交换机最好全千兆端口这样在网络流量过大时可以通过 Trunk 方式与上级 BIGIP 连接。如果 BIGIP 型号是 BIGIP3400 这类带千兆接口的设备Trunk 捆绑能有效提高流量处理能力。实际部署时我一般会算一笔账后台服务器总出口带宽是多少BIGIP 的吞吐量是多少交换机背板带宽是多少。三个数里最小的那个就是瓶颈。全冗余拓扑解决的是可用性问题不是性能问题性能瓶颈得靠选型和链路聚合来解。5. 避坑与排查双机冗余最容易翻车的五个点双机冗余配置看起来不复杂但实际项目里翻车的地方不少。下面这五个是我踩过或见别人踩过的坑按现象、原因、解决三段来说。5.1 切换后业务不通现象备机成功切为 Active但客户端连接全部超时。原因浮动 IP 没有正确广播 ARP或者上游交换机 ARP 表没更新。F5 切换后会发 ARP 广播但如果上游设备有 ARP 静态绑定或 ARP 老化时间过长流量还是往旧设备发。解决检查上游交换机的 ARP 表确认浮动 IP 对应的 MAC 地址已经指向新 Active。必要时手动清除 ARP 缓存或者把 ARP 老化时间调短。5.2 心跳正常但频繁切换现象两台设备反复切换日志里全是 failover 记录。原因心跳 VLAN 跑了业务流量高峰期心跳包被挤掉Backup 误判 Active 失效。或者 FailSafe 配置里勾了链路 down 触发切换某条业务链路抖动导致误切。解决心跳 VLAN 独立不跑业务。FailSafe 里只勾心跳丢失和关键进程异常链路 down 视情况决定是否触发。5.3 串口心跳线松动导致检测失效现象Active 设备实际已故障但 Backup 没有切换。原因串口线接头松动或氧化电平信号时有时无Backup 以为对端还活着。解决串口线固定好定期检查接头。如果条件允许串口和网络心跳同时配一条断另一条还能兜底。5.4 进程监控误触发切换现象非关键进程重启导致双机切换业务短暂中断。原因进程监控列表里包含了非核心进程这些进程偶尔重启是正常的但被配成了 failover 动作。解决只对 tmm 等核心进程配 failover其他进程配 restart 或不处理。定期审查进程监控列表。5.5 Trunk 配置不一致导致环路现象配置 Trunk 后网络时通时断交换机指示灯异常闪烁。原因BIGIP 侧配了 Trunk交换机侧没配或配错LACP 协商失败形成环路。解决两端同时配置端口聚合确认 LACP 状态为 up。配置前先在测试环境验证不要直接上生产。6. 验收与答辩怎么证明这套双机冗余真的可靠方案写完只是第一步验收和答辩才是见真章的时候。双机冗余的验收核心就一句话能不能在真实故障场景下按预期切换切换后业务是否无感知。我一般会准备一套验收流程分四个环节。第一静态检查。确认两台设备的心跳 VLAN、浮动 IP、Failover Peer IP、FailSafe 配置、进程监控列表全部符合设计文档。这一步用show cm failover status和list sys failover就能覆盖。第二手动切换测试。在 Active 设备上执行run sys failover standby观察备机是否在预期时间内接管浮动 IP 是否漂移业务连接是否中断。这个测试可以在业务低峰期做记录切换耗时。第三模拟故障测试。拔掉 Active 设备的串口线或断掉心跳 VLAN看备机是否自动切换。这一步验证的是故障检测逻辑比手动切换更接近真实场景。第四进程异常测试。手动 kill 掉 tmm 进程看是否触发 failover。这一步验证进程监控配置是否正确。验收项测试方法预期结果记录内容静态配置命令行检查配置与设计一致配置截图手动切换run sys failover standby备机接管浮动 IP 漂移切换耗时心跳故障断开心跳链路备机自动切换检测时间进程异常kill tmm 进程触发 failover动作类型业务连续性切换期间持续 ping丢包不超过 3 个丢包数答辩时评委最常问的是「切换时间是多少」「怎么保证不脑裂」「心跳断了怎么办」。切换时间取决于心跳超时设置和 ARP 广播速度一般串口心跳在秒级网络心跳看超时配置。防脑裂靠的是心跳机制本身两台设备同时 Active 的情况在 F5 里不会出现因为串口电平和 TCP 心跳是互斥的。心跳断了如果配了双心跳另一条还能用如果只有一条那就看 FailSafe 怎么配。从那以后我每次做双机冗余方案都会强制走一遍完整的故障演练不只看配置对不对还要看切换时业务到底断没断。希望帮到你。本文还有配套的精品资源点击获取