Linux网卡Bonding通过绑定多个物理网卡为逻辑接口实现带宽叠加或故障切换,需加载bonding模块、选择合适模式(如mode=1主备或mode=4需LACP)、配置bond及从设备参数,并验证状态与故障转移。

Linux下配置网卡Bonding,核心是将多个物理网卡绑定为一个逻辑接口,实现带宽叠加(链路聚合)或故障自动切换(冗余备份),关键在于选择合适的bond模式并正确配置内核模块与网络参数。
确认内核支持并加载bonding模块
Bonding功能由内核模块bonding提供,多数现代发行版已内置。需确认模块可用并按需加载:
- 检查是否已加载:lsmod | grep bonding
- 若未加载,手动加载:modprobe bonding
- 为开机自动加载,写入/etc/modules(Debian/Ubuntu)或/etc/sysconfig/modules/bonding.modules(RHEL/CentOS)中添加bonding
- 可选:通过modinfo bonding查看支持的模式和参数
选择适合场景的bond模式
不同模式对应不同需求,不建议盲目使用mode=0(balance-rr):
- mode=1(active-backup):最常用,主备冗余。仅1个slave工作,另一台故障时秒级切换,交换机无需特殊配置
- mode=4(802.3ad):真正链路聚合,需交换机开启LACP且配置相同聚合组;吞吐提升明显,但依赖硬件配合
- mode=6(balance-alb):自适应负载均衡,支持收发双向分担,无需交换机配合,但ARP监控较敏感,适合单交换机环境
配置bond接口(以RHEL/CentOS为例)
以创建bond0、绑定eth0和eth1、采用active-backup模式为例:
- 新建/etc/sysconfig/network-scripts/ifcfg-bond0:
DEVICE=bond0
BOOTPROTO=static
IPADDR=192.168.1.100
NETMASK=255.255.255.0
ONBOOT=yes
BONDING_OPTS="mode=1 miimon=100 fail_over_mac=1"
- 修改ifcfg-eth0与ifcfg-eth1,清空IP配置,仅保留:
DEVICE=eth0
BOOTPROTO=none
ONBOOT=yes
MASTER=bond0
SLAVE=yes
- 重启网络服务:systemctl restart network(或nmcli connection reload && nmcli connection up bond0,视NetworkManager启用情况而定)
- 验证:cat /proc/net/bonding/bond0 查看状态与当前活动端口
验证与日常维护要点
配置完成后需实测连通性与故障转移能力:
- 拔掉主网线,观察/proc/net/bonding/bond0中Active Slave是否变更,业务是否中断(active-backup应无感)
- 用ethtool bond0确认link状态与速率汇总
- 注意:bond接口不能直接配置MAC地址,如需固定,应在BONDING_OPTS中加macaddr=xx:xx:xx:xx:xx:xx,或在从设备中统一设置
- 若使用DHCP,将BOOTPROTO=dhcp设于bond0,从设备保持BOOTPROTO=none


















