Linux Bonding主备模式(mode=1)核心是BONDING_OPTS设mode=1、miimon=100、fail_over_mac=1;物理网卡配置须清空IP/GATEWAY,仅留DEVICE、ONBOOT、MASTER/SLAVE;验证需实测拔线后ping通且Active Slave切换成功。

Linux 中配置 Bonding 主备模式(active-backup,mode=1)实现容灾,核心是让两块网卡逻辑上合成一个 bond0 接口,主网卡故障时自动、快速切到备用网卡,业务不中断。它不依赖交换机配合,配置简洁,但参数错一个就可能“断网30秒”甚至切换失败。
关键参数必须设对
在 ifcfg-bond0 配置中,BONDING_OPTS 至少要包含三项:
- mode=1:明确启用主备模式(推荐用数字,兼容性更好)
- miimon=100:每 100ms 检测一次物理链路状态;低于 50ms 易误判,高于 200ms 故障响应慢
- fail_over_mac=1:切换时主动把备用网卡 MAC 改成和主卡一致,避免交换机缓存旧端口导致丢包
物理网卡配置要“清干净”
eth0 和 eth1 的配置文件(如 ifcfg-eth0)不能留任何 IP 或路由信息,否则 network manager 或 systemd-networkd 可能绕过 bond0 自行上线,引发双网关、ARP 冲突:
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
- 删掉 IPADDR、NETMASK、GATEWAY、BOOTPROTO
- 只保留三行:DEVICE=eth0、ONBOOT=yes、MASTER=bond0 SLAVE=yes(注意 SLAVE=yes 必须和 MASTER 写在同一行)
验证是否真容灾,不能只看状态
cat /proc/net/bonding/bond0 只告诉你谁是 Active,不代表切换有效。必须实测:
- 拔掉当前 active 网线,1 秒内执行 ping -c 3 网关,要求全部通
- 再查 cat /proc/net/bonding/bond0 | grep "Active Slave",确认已变更
- 用 ethtool eth0 和 ethtool eth1 分别确认链路检测结果(Link detected: yes/no),排除松动或交换机端口 shutdown 等干扰
虚拟机环境需额外注意
若在 VMware 或 VirtualBox 中测试:
- 虚拟网卡类型选 e1000 或 vmxnet3;rtl8139 对 miimon 支持不稳定
- 模拟故障请用「断开网络连接」功能,不要用 ifdown eth0 —— 它会绕过 bonding 状态机,failover 不触发

















