F5双机冗余配置实战:串口心跳、网络心跳与全冗余拓扑落地 简介这份文档面向网络运维工程师与F5 BIG-IP设备管理员聚焦负载均衡场景下的双机冗余与全冗余架构设计帮助读者理解高可用切换机制并落地实际配置。内容围绕串口心跳与网络心跳两种冗余方式展开涵盖心跳线电平监控、TCP 1028端口信号传递、ARP广播触发流量切换等核心流程并给出Network FailSafe、Floating IP与Failover Peer IP的配置示例同时梳理全冗余部署的扩展性优势与千兆交换机成本瓶颈以及关键进程监控触发FailOver的处理策略。资源包内含1个doc文档约240KB结构紧凑适合作为配置参考与排错思路手册。目前已有300人学习下载适合需要快速掌握F5双机冗余原理与全冗余方案选型的技术人员查阅。1. F5 双机冗余配置从串口心跳到全冗余的落地路径第一次给 F5 BIG-IP 做双机冗余很多人会下意识去找 VRRP 配置项结果翻遍菜单也没找到——这是最典型的翻车起点。F5 的双机冗余跟 RadWare 那套 VRRP 思路完全不同它靠的是串口心跳和网络心跳两条独立通道来感知对端状态再配合浮动 IP 和 ARP 广播完成流量切换。装不好会怎样最直接的表现是主设备挂了备设备不接管业务直接断或者两台设备同时抢着当 ActiveVIP 冲突导致整个网段瘫痪。这套环境适合正在做负载均衡高可用部署的运维和网络工程师尤其是手里有两台 BIG-IP、需要把切换逻辑跑通的人。下面按实际落地顺序把串口心跳、网络心跳、Fail-safe 配置和全冗余拓扑一层层拆开。2. 串口心跳双机冗余线缆、电平与切换逻辑2.1 串口心跳的物理连接与版本差异串口心跳是 F5 官方推荐的冗余方式核心原因就一个它不依赖网络协议栈不受 VLAN、路由、交换机故障的影响。两台 BIG-IP 之间用自带的串口线直连这根线比较短官方标称 50 英尺大概 15 米左右。我一般会在机柜规划阶段就把两台设备放在相邻位置避免后期因为线长不够被迫改网络心跳。不同 BIG-IP 版本的串口心跳配置入口略有差异。在 TMOS 11.x 到 13.x 上串口心跳基本是即插即用系统自动识别 failover 串口14.x 之后部分平台需要确认串口在System Platform里被识别为 failover 用途。如果你用的是 iSeries 或 rSeries 新硬件串口线接口位置和旧款 3400、3900 系列不一样接线前先看设备面板标识别硬插。配置前先确认两台设备的 hostname 和管理 IP 已经配好并且能互相 ping 通管理口。串口心跳本身不传数据但后续的配置同步、证书交换还是走管理网络所以管理口不通串口心跳配了也白配。2.2 电平监控与切换流程拆解串口心跳的工作机制非常“硬件”Active 设备在心跳线上持续输出高电平Backup 设备监听这个电平信号。一旦 Backup 侧检测不到高电平就认为对端挂了自己切成 Active然后对外发 ARP 广播把所有 VS 地址和浮动 IP 宣告到自己这端。这个过程没有数据包交互没有 TCP 握手纯粹是电平有无的判断。好处是快坏处是没法区分“对端真挂了”还是“串口线松了”。我遇到过一回机房搬迁时串口线没插紧备机直接抢主VIP 漂过去又漂回来业务抖了十几秒。所以串口线一定要卡扣到位最好用扎带固定。在System Redundancy Properties里能看到当前主备状态和串口心跳状态。如果串口心跳显示 down但网络心跳正常系统会按你配置的 failover 策略决定是否切换。这里有个细节串口心跳和网络心跳可以同时启用F5 会综合判断不是二选一。2.3 串口心跳的配置步骤与验证串口心跳本身不需要在 GUI 里做太多配置重点是确认状态和设置 failover 触发条件。步骤如下# 登录到主设备的管理口查看当前冗余状态 tmsh show sys failover # 查看串口心跳状态确认 failover 串口被识别 tmsh show sys hardware | grep -i failover # 查看冗余属性确认 failover 模式 tmsh list sys redundancytmsh show sys failover会输出当前设备是 active 还是 standby以及 failover 的原因。如果显示Serial failover cable: connected说明串口线识别正常。tmsh list sys redundancy里重点看failover-mode默认是active-standby如果你的环境需要active-active那串口心跳的切换逻辑会不一样但 F5 的 active-active 通常要配合其他机制不是单纯串口心跳能搞定的。验证串口心跳是否生效最直接的办法是拔掉主设备的串口线观察备设备是否在几秒内变 active。注意这个操作会触发真实切换别在业务高峰期做。拔线后备设备变 activeVIP 能 ping 通说明串口心跳链路和切换逻辑都正常。插回线后主设备不会自动抢回需要手动执行tmsh run sys failover standby或tmsh run sys failover active来调整。提示串口心跳线是专用线不要用普通 console 线替代针脚定义不一样插上去可能烧接口。3. 网络心跳双机冗余TCP 1028 与 VLAN 选择3.1 网络心跳的适用场景与端口说明两台 BIG-IP 物理距离超过 15 米串口线够不着就得走网络心跳。网络心跳的本质是两台设备之间通过 TCP 1028 端口互相发心跳包Active 侧持续发Backup 侧持续收超时没收到就触发切换。这个超时时间可以在System Redundancy Properties里调默认值我印象里是 3 秒左右具体看版本。网络心跳的优点是距离不受限走交换机就行缺点是依赖网络链路如果中间交换机挂了心跳断备机可能误判主机挂了而抢主。所以网络心跳通常建议用独立的 VLAN最好是两台设备直连或者走独立的交换机不要跟业务流量混在一起。TCP 1028 端口是 F5 内部心跳专用不需要在防火墙上额外放行因为心跳流量只在两台 BIG-IP 之间跑。但如果你中间有防火墙那就得确认 1028 双向可达否则心跳不通冗余就是摆设。3.2 配置 Network Fail-safe 与心跳 VLAN网络心跳的配置入口在System System Fail-safe这里要指定一个 VLAN 作为心跳传输通道。我一般会单独划一个 VLAN比如 VLAN-HA把两台 BIG-IP 的各一个物理口划进去不跑业务流量。配置步骤如下# 创建心跳 VLAN假设接口为 1.2 和 2.2 tmsh create net vlan vlan-ha interfaces add { 1.2 2.2 } # 给心跳 VLAN 配置自 IP两台设备要在同一网段 tmsh create net self 10.0.0.1/30 vlan vlan-ha # 在备设备上执行 tmsh create net self 10.0.0.2/30 vlan vlan-ha # 配置 failover peer IP指向对端心跳 IP tmsh modify sys failover failover-peer-ip 10.0.0.2 # 备设备上指向主 tmsh modify sys failover failover-peer-ip 10.0.0.1 # 指定网络心跳使用的 VLAN tmsh modify sys failover network-failover vlan vlan-hafailover-peer-ip是网络心跳的关键参数它告诉本机对端的心跳 IP 是多少。两台设备必须互相指向对方配反了心跳就不通。network-failover vlan指定哪个 VLAN 跑心跳配完之后可以用tmsh show sys failover看网络心跳状态正常会显示Network failover: active。心跳 VLAN 的 IP 用 /30 就够了两台设备各一个地址不浪费。注意这个 IP 不要跟管理 IP 或业务 IP 冲突我习惯用 10.0.0.x 这种独立网段一眼就能认出来是心跳专用。3.3 网络心跳的切换验证与状态查看配完网络心跳后验证方法和串口心跳类似但更温和可以直接在交换机上 shutdown 心跳 VLAN 对应的端口模拟心跳中断观察备设备是否切换。或者用tmsh命令强制触发# 在主设备上强制 standby模拟故障 tmsh run sys failover standby # 在备设备上查看状态确认已变 active tmsh show sys failover # 查看浮动 IP 是否漂移过来 tmsh list net self floating | grep addresstmsh run sys failover standby会让当前 active 设备主动降为 standby备设备收到心跳变化后接管。这个命令比拔线安全适合在维护窗口做验证。执行后备设备应该在几秒内变 active浮动 IP 和 VS 地址会通过 ARP 广播宣告到备设备侧。如果备设备没切换先查tmsh show sys failover里的 failover 原因常见的是network failover down或peer not responding。再看心跳 VLAN 的接口状态和 IP 连通性ping对端心跳 IP 通不通。心跳不通切换逻辑就不会触发。注意网络心跳和串口心跳可以同时启用F5 会按优先级判断。如果两个心跳都断备设备会认为主机彻底挂了直接抢主。4. 避坑与排查F5 双机冗余常见的五个翻车点4.1 备机不切换VIP 漂不过来现象主设备断电或强制 standby备设备状态还是 standbyVIP 不通。原因最常见的是心跳链路不通。串口线没插紧、网络心跳 VLAN 配错、failover peer IP 写反都会导致备机收不到心跳超时信号。另一个可能是 failover 被手动禁用tmsh show sys failover里会显示failover disabled。解决先查心跳状态tmsh show sys failover看具体原因。串口心跳查线网络心跳查 VLAN 和 IP 连通性。确认failover-peer-ip互相指向正确。如果 failover 被禁用执行tmsh modify sys failover disabled false重新启用。4.2 两台设备同时 ActiveVIP 冲突现象两台 BIG-IP 都显示 active同一个 VIP 在两个设备上都有 ARP 响应网络时通时断。原因心跳全断两台设备都认为对方挂了各自抢主。或者串口心跳和网络心跳配置不一致一台认为心跳正常另一台认为心跳断。解决先恢复心跳链路串口线和网络心跳 VLAN 都检查一遍。然后手动把其中一台强制 standbytmsh run sys failover standby。等心跳恢复后再按正常流程切回。预防措施是配好 failover 的network-failover和串口心跳双通道别只依赖一条。4.3 配置同步失败备机配置不一致现象主设备改了 VS 配置备设备没同步切换后业务配置缺失。原因配置同步走管理网络管理口不通或者config sync的 IP 配错同步就失败。另外如果两台设备的 hostname 或 license 不一致同步也会报错。解决在System Configuration Device Groups里确认设备组包含两台设备并且config sync的 IP 是管理 IP。手动触发同步tmsh run cm config-sync to-group group-name。同步前确认两台设备时间一致NTP 配好时间差太大会导致证书校验失败。4.4 网络心跳超时太短频繁误切换现象业务没挂但备设备偶尔抢主切换日志里显示心跳超时。原因网络心跳超时时间设得太短或者心跳 VLAN 上有广播风暴、大量流量导致心跳包延迟。解决在System Redundancy Properties里把network failover timeout调大默认 3 秒可以改成 5 秒或 10 秒。心跳 VLAN 要独立不要跑业务流量避免拥塞。如果心跳走交换机确认交换机端口没做限速或 QoS 丢包。4.5 全冗余拓扑下扩展交换机成为瓶颈现象后台服务器数量增加后负载均衡吞吐上不去延迟变大。原因全冗余方式通过 L2 交换机堆叠扩展端口但扩展交换机的背板带宽和端口速率有限。如果服务器用千兆网卡交换机却是百兆上联或者堆叠带宽不够流量就在交换机侧堵住了。解决扩展交换机选全千兆端口上联到 BIG-IP 的链路做 Trunk 捆绑提高带宽。后台服务器数量大时考虑用万兆上联或链路聚合。监控交换机的端口利用率和丢包计数超过 70% 就该扩容了。5. 全冗余拓扑落地扩展交换机与 Trunk 上联配置5.1 全冗余网络拓扑的搭建逻辑全冗余方式的核心思路是两台 BIG-IP 做双机冗余后面接 L2 扩展交换机堆叠服务器接在扩展交换机上。这样端口数量可以随交换机堆叠无限扩展适合后台服务器群很大的场景。拓扑上两台 BIG-IP 的各一个业务口接到扩展交换机的 Trunk 口扩展交换机再通过 Trunk 上联到核心交换或直接接服务器。BIG-IP 的浮动 IP 和 VS 地址在切换时通过 ARP 广播漂移扩展交换机上的服务器不需要改网关流量自动跟着 VIP 走。我一般会把扩展交换机的堆叠口和上联口分开堆叠口用专用堆叠线缆或万兆口上联口做链路聚合。服务器侧如果也是双网卡可以做 bonding接到不同堆叠成员上避免单点故障。5.2 Trunk 上联与端口捆绑配置Trunk 配置在 BIG-IP 侧和交换机侧都要做。BIG-IP 侧把多个物理口捆成一个 trunk交换机侧配对应的链路聚合组。这样做的目的是提高上联带宽同时提供链路冗余。# 在 BIG-IP 上创建 trunk假设用 1.3 和 1.4 两个口 tmsh create net trunk trunk-to-switch interfaces add { 1.3 1.4 } # 查看 trunk 状态 tmsh show net trunk # 在交换机侧配置链路聚合以通用命令为例 # interface range GigabitEthernet0/1 - 2 # channel-group 1 mode activetmsh create net trunk把两个物理口绑成一个逻辑口interfaces add里列出口编号。创建后tmsh show net trunk能看到成员口状态和流量分布。交换机侧要配 LACP 或静态聚合模式跟 BIG-IP 侧匹配一边 active 一边 passive 也行但最好都是 active。Trunk 配好后把 VLAN 和 self IP 绑到 trunk 上而不是单个物理口。这样即使一个物理口挂了流量走另一个口业务不中断。注意 trunk 的成员口速率要一致一个千兆一个万兆混绑流量分布会不均。5.3 全冗余方式的优缺点与选型建议全冗余方式的优点很明确扩展性好端口数量随交换机堆叠扩展适合大规模服务器群通过 Trunk 上联可以提高带宽配合千兆交换机能为大量服务器提供负载均衡。缺点也直接成本高。全千兆扩展交换机不便宜如果服务器都是千兆网卡交换机端口和上联都得跟上低端二三层交换机容易丢包。另外扩展交换机本身可能成为瓶颈后台服务器数量太大时交换机背板带宽和上联带宽会先扛不住。选型上我一般建议服务器数量在 20 台以内直接用 BIG-IP 的板载口就够不用扩展交换机20 到 100 台用一台全千兆交换机做扩展Trunk 上联超过 100 台考虑堆叠多台交换机上联走万兆或链路聚合。监控交换机的 CPU 和端口利用率超过 60% 就该考虑扩容了。提示全冗余拓扑里扩展交换机的堆叠线缆也是单点堆叠断了可能分裂成两个独立交换机导致部分服务器不通。堆叠线缆也要做冗余。6. 装完怎么验证F5 双机冗余的切换测试与状态检查配完串口心跳、网络心跳和全冗余拓扑最后一步是验证切换能不能真正跑通。我习惯按下面这个顺序做一遍从状态检查到强制切换再到业务验证每一步都有明确的观察点。先看基础状态。登录两台设备分别执行tmsh show sys failover确认一台 active 一台 standby心跳状态都是 up。再看tmsh show sys redundancy确认 failover 模式是 active-standby串口心跳和网络心跳都启用。如果这里就有 down 的先别往下做把心跳链路修好。然后做强制切换测试。在 active 设备上执行tmsh run sys failover standby观察备设备是否在 3 到 5 秒内变 active。切换完成后在备设备上执行tmsh show sys failover确认状态是 active并且 failover 原因是manual或peer standby。同时 ping 一下 VIP确认能通。接着验证业务流量。如果有条件用 curl 或浏览器访问一个 VS 地址看请求是否正常转发到后台服务器。切换过程中可能会有几秒中断这是正常的 ARP 广播和连接重建时间。如果中断超过 10 秒检查交换机的 ARP 表更新速度和 STP 收敛时间。最后做回切测试。在备设备现在是 active上执行tmsh run sys failover standby把主设备切回来。观察主设备是否变 activeVIP 是否漂回。回切后再跑一遍业务访问确认一切正常。下面这张表是我常用的验证清单每次配完双机冗余都走一遍检查项命令预期结果主备状态tmsh show sys failover一台 active 一台 standby串口心跳tmsh show sys hardwarefailover 串口 connected网络心跳tmsh show sys failovernetwork failover active浮动 IPtmsh list net self floating浮动 IP 在 active 设备上配置同步tmsh run cm config-sync同步成功无报错强制切换tmsh run sys failover standby备机 5 秒内变 active业务验证curl -I http://VIP返回 200 或正常响应这套流程走完基本能确认双机冗余是活的。从那以后我每次配完 F5 冗余都强制走一遍强制切换和回切不看到备机真的接管一次心里就不踏实。希望帮到你。本文还有配套的精品资源点击获取