双网卡绑定不是“配了就自动提速”,mode=1(主备)能保活但不增带宽,mode=4(802.3ad/LACP)才能真正聚合带宽,但必须交换机端同步开启LACP并配置一致;mode=6(balance-alb)可免交换机配合实现收发双向负载,但依赖驱动对ethtool速率上报的支持。

直接说结论:双网卡绑定不是“配了就自动提速”,mode=1(主备)能保活但不增带宽,mode=4(802.3ad/LACP)才能真正聚合带宽,但必须交换机端同步开启LACP并配置一致;mode=6(balance-alb)可免交换机配合实现收发双向负载,但依赖驱动对ethtool速率上报的支持。
确认bonding模块已加载且支持目标模式
内核模块没加载或参数不匹配,后续所有配置都无效。先查是否在用:
lsmod | grep bonding —— 若无输出,需手动加载:modprobe bonding
再确认支持的模式:modinfo bonding | grep -A 5 'supported modes' 或直接看mode参数说明。重点留意mode=4是否被标记为“requires LACP support”、mode=6是否注明“requires ethtool link speed reporting”——这两点决定了你能不能用。
开机自动加载建议写入/etc/modules(Debian/Ubuntu)或/etc/sysconfig/modules/bonding.modules(RHEL/CentOS),内容仅一行:bonding。
选错mode会导致链路不UP或性能反降
常见误判是以为“绑了就变快”,结果发现cat /proc/net/bonding/bond0里显示Aggregator ID: N/A或State: down,本质是模式与硬件/交换机不匹配:
Linux系统管理专家,覆盖12大模块:用户权限、SSH、存储、网络、systemd、防火墙、日志监控、备份恢复、TLS证书、Ansible、容器、IaC。提供配置、验证、加固、监控、备份、自动化、故障排查、回滚闭环。关键词:useradd、sudo、sshd_config、chmod、SEL...
-
mode=0(balance-rr):交换机未做端口聚合时,会引发MAC振荡和包乱序,生产环境基本不用 -
mode=1(active-backup):最稳,但永远只用一块网卡,带宽不叠加,适合高可用优先场景 -
mode=4(802.3ad):必须交换机启用LACP,且所有成员端口的速率、双工、LACP超时、聚合组ID完全一致,缺一不可 -
mode=6(balance-alb):发送按各网卡实时速率分摊,接收靠ARP协商引导客户端,但若网卡驱动不返回准确速率(如某些虚拟化网卡),会导致流量严重倾斜
验证方式不是看ip a,而是读/proc/net/bonding/bond0中Slave Interface状态和Aggregator ID字段。
配置文件里最容易漏掉的关键参数
RHEL/CentOS系(如CentOS 7+)用/etc/sysconfig/network-scripts/ifcfg-bond0,但以下几项不写全,bond接口可能无法协商或切换失败:
-
BONDING_OPTS="mode=4 miimon=100 lacp_rate=1"——lacp_rate=1表示快速LACP(每秒发一次),不加默认是慢速(30秒),导致聚合建立极慢 - 从设备(如
ifcfg-eth0)必须清空IPADDR、NETMASK等网络配置,只留MASTER=bond0和SLAVE=yes,否则systemctl restart network会报错或忽略绑定 - 若需指定主网卡(尤其
mode=1),在BONDING_OPTS里加primary=eth0,否则故障切换时可能选错接口 -
fail_over_mac=1(仅mode=1有效):让备用网卡在接管时主动通告新MAC,避免交换机MAC表老化导致短暂丢包
注意:ifup bond0前务必先ifdown eth0 && ifdown eth1,否则旧连接残留可能干扰bond状态。
验证时别只ping,要盯住/proc/net/bonding和ethtool
配置完跑ping通只是基础,真正要看的是:
执行cat /proc/net/bonding/bond0,确认:
- Number of ports 是2
- 每个Slave Interface下Link Failure Count为0
- Aggregator ID在mode=4下非N/A,且两个slave的ID相同
再跑ethtool bond0,看Speed是否显示预期值(如双千兆应为2000Mb/s而非1000Mb/s);若仍是单网卡速率,说明聚合未生效。
拔线测试时,观察/proc/net/bonding/bond0中Currently Active Slave是否秒级变更,且Missed Heartbeat不持续增长——这个细节常被忽略,但它直接反映miimon检测灵敏度是否足够。

















