Linux网卡绑定不是配了就自动负载均衡,必须选对mode:mode=1仅主备高可用,mode=0/4需交换机配合,唯mode=6(balance-alb)支持收发双向分流且免交换机配置,配合miimon、updelay、downdelay和xmit_hash_policy=layer2+3等参数才真正生效。

选对 bonding mode 才能真正分流
Linux 多网卡绑定不是配了 bond0 就自动负载均衡。最常见失败原因是误用 mode=1(主备)当负载均衡用,或者在交换机不支持时硬上 mode=0 或 mode=4。真正能实现“收发双向分担+无需交换机配合”的只有 mode=6(balance-alb);若交换机可配 LACP,则 mode=4(802.3ad)更稳定。
关键区别:
-
mode=1:永远只走一张卡,纯高可用,不是负载均衡 -
mode=0:轮询发包,但交换机必须做端口聚合(如 Cisco EtherChannel),否则 MAC 地址抖动、丢包 -
mode=4:需交换机启用 LACP,所有成员口速率/双工一致,协商失败则 bond 不生效 -
mode=6:发送靠 ethtool 动态选卡,接收靠伪造 ARP 响应引导客户端,不依赖交换机
BONDING_OPTS 必填参数不能省
只写 mode=6 很可能让 bond0 起不来,或链路故障时不切换。以下参数缺一不可:
-
miimon=100:必须设,单位毫秒,表示每 100ms 用 MII 检测物理链路通断 -
updelay=200和downdelay=200:避免网卡刚 link up 就被误判为可用,造成短暂黑洞 -
xmit_hash_policy=layer2+3:仅对mode=4和mode=6有效,让哈希基于源/目的 IP+端口,比默认layer2(仅 MAC)更能分散小流
完整示例:BONDING_OPTS="mode=6 miimon=100 updelay=200 downdelay=200 xmit_hash_policy=layer2+3"
注意:ifcfg-bond0 里不要写 GATEWAY —— 默认路由应由上层网络管理器或手动添加,否则多网关易冲突。
Linux 性能分析与调优专家,覆盖 CPU、内存、磁盘 I/O、网络、内核参数、编译优化、容器/K8s。适用场景:系统卡顿/高负载、内存不足/OOM/Swap 高、CPU 异常/iowait 高。
验证流量是否真分流,别只看 ifconfig
ip addr show bond0 显示 UP、cat /proc/net/bonding/bond0 显示两块卡都是 MII Status: up,不代表流量在分摊。常见假象是 TX 字节数只涨 eth0,eth1 几乎不动。
原因和验证方法:
- 单个长连接(如
scp、rsync)始终走同一张卡 ——mode=6按 TCP 连接哈希分发,需并发多个连接才能看到分流;用curl -s http://example.com &启 10 个、或iperf3 -P 4才能触发多路径 - 没开
xmit_hash_policy=layer2+3,默认只按 MAC 哈希,所有流量都打到同一张卡 —— 检查cat /proc/net/bonding/bond0 | grep "Xmit hash policy" - 物理链路未真实连通 —— 用
ethtool eth0和ethtool eth1确认Link detected: yes,且速率一致
配置文件里 MASTER/SLAVE 关系要闭环
三处配置必须严格对应,漏一项就导致从属网卡不生效:
-
ifcfg-bond0中设TYPE=Bond、BONDING_MASTER=yes、BONDING_OPTS=... -
ifcfg-eth0和ifcfg-eth1中必须含:MASTER=bond0、SLAVE=yes、BOOTPROTO=none、ONBOOT=yes - 确保没有其他服务(如 NetworkManager)接管网卡 ——
NM_CONTROLLED=no要加在所有相关配置中
重启后执行:modprobe -r bonding && modprobe bonding 再 systemctl restart network(RHEL/CentOS)或 sudo systemctl restart networking(Debian/Ubuntu)。最后务必用 cat /proc/net/bonding/bond0 确认 “Slave Interface” 下列出全部成员卡且状态为 Up。
真正难的不是配出来,而是确认每条链路都在参与转发 —— 流量哈希策略、并发连接数、交换机配合程度,这三个点任何一个没对齐,就会回到单卡跑满的老路。

















