生产环境中用nmcli配置Bonding实现链路冗余备份,核心是确保主备切换真正生效、配置不被NetworkManager覆盖、故障时业务零感知:必须先加载bonding模块;先建bond逻辑接口再加slave;配静态IP时必须同时设ipv4.method manual,否则DHCP仍生效;验证需查/proc/net/bonding/bond0并模拟断链测试。

在生产环境中用 nmcli 配置网卡 Bonding 实现链路冗余备份,核心是确保主备切换真正生效、配置不被 NetworkManager 覆盖、故障时业务零感知。关键不在“能不能绑”,而在“断了会不会切、切了通不通、重启后还稳不稳”。
必须先确认并加载 bonding 内核模块
没这个模块,所有 nmcli 操作都无效。运行:
- lsmod | grep bonding —— 若无输出,说明未加载
- 临时启用:modprobe bonding mode=active-backup miimon=100
- 永久生效:往 /etc/modprobe.d/bonding.conf 写入
alias bond0 bonding
options bonding mode=active-backup miimon=100
注意:miimon=100 表示每 100ms 检测一次物理链路,太大会导致故障响应迟钝(比如设成 1000 就可能丢好几秒包)。
用 nmcli 创建 bond0 并绑定物理网卡
顺序不能错:先建逻辑 bond 接口,再加 slave;反着操作会报 No suitable object found。
- 创建主接口:nmcli connection add type bond con-name bond0 ifname bond0 mode active-backup
- 添加从属网卡(以 ens33、ens37 为例):
nmcli connection add type ethernet con-name bond0-ens33 ifname ens33 master bond0
nmcli connection add type ethernet con-name bond0-ens37 ifname ens37 master bond0 - slave 连接不能配 IP、gateway 或 DNS——所有网络参数只设在 bond0 上
物理网卡连接默认会被自动 down,无需手动 nmcli connection down ens33。
Linux 安全审计工具,检查 SSH 配置、开放/监听端口、防火墙规则(ufw/iptables/nftables)、失败登录尝试、sudoers 权限...
给 bond0 配静态 IP 并禁用 DHCP 干扰
这是最常踩的坑:写了 ipv4.addresses 却没改 ipv4.method,结果重启后还是拿 DHCP 地址。
- 两步必须一起做:
nmcli connection modify bond0 ipv4.method manual
nmcli connection modify bond0 ipv4.addresses "192.168.10.50/24" - 补全必要参数:
nmcli connection modify bond0 ipv4.gateway "192.168.10.1"
nmcli connection modify bond0 ipv4.dns "8.8.8.8,114.114.114.114"
nmcli connection modify bond0 ipv4.ignore-auto-routes yes(防止 DHCP 留下的路由干扰) - 生效必须用:nmcli connection down bond0 && nmcli connection up bond0
reload 或 reapply 不触发实际重连,改了也不生效
验证冗余是否真实可用
别只看 ip link show bond0 是 UP 就放心——它不反映底层切换状态。
- 查内核级状态:cat /proc/net/bonding/bond0
关注 MII Status(应为 up)、Currently Active Slave(当前主口)、Primary Slave(预设主口) - 模拟故障:ip link set ens33 down,等 2–3 秒后重查 bonding 输出,确认 Active Slave 已变为 ens37
- 业务连通性测试:ping -I 192.168.10.50 网关,中断时间应 ≤ 300ms(miimon + downdelay 默认值)
- 重启系统后检查:nmcli connection show --active,确保只有 bond0 启用,且物理口连接状态为 unmanaged(防 NetworkManager 错误接管)
若发现某块物理网卡 MII Status 始终为 down,大概率是网线未插、交换机端口 shutdown,或 miimon 值过大导致检测失败。










