
Linux多网卡绑定(Bonding)是提升网络可靠性与带宽的常用方案,核心在于将多个物理网卡逻辑聚合为一个虚拟bond接口,支持主备、负载均衡等多种模式。配置关键在于内核模块加载、bond接口定义、子接口绑定及网络服务协同,稍有疏忽易导致断网或模式失效。
确认内核支持并加载bond模块
多数现代Linux发行版已内置bonding驱动,但需确认是否启用:
- 运行 lsmod | grep bonding 查看是否已加载;若无输出,执行 modprobe bonding 临时加载
- 永久生效:在 /etc/modules(Debian/Ubuntu)或 /etc/sysconfig/modules/bonding.modules(RHEL/CentOS)中添加 bonding 一行
- 可选:通过 modinfo bonding 查看支持的mode参数(如mode=1主备、mode=4 802.3ad等)
配置bond接口与物理网卡绑定
以RHEL/CentOS为例(使用network-scripts),需修改三类配置文件:
-
/etc/sysconfig/network-scripts/ifcfg-bond0:定义bond主接口
DEVICE=bond0
BONDING_OPTS="mode=1 miimon=100 fail_over_mac=1"
BOOTPROTO=static
IPADDR=192.168.10.100
NETMASK=255.255.255.0
ONBOOT=yes -
/etc/sysconfig/network-scripts/ifcfg-eth0 和 ifcfg-eth1:分别配置从属网卡
DEVICE=eth0
MASTER=bond0
SLAVE=yes
ONBOOT=yes
USERCTL=no - 注意:两个从属网卡不能配置IP、不能启用DHCP,且需确保物理交换机端口未启用STP阻塞(尤其mode=4时需LACP配合)
验证bond状态与故障切换
配置完成后重启网络服务(systemctl restart network 或 ifdown/ifup bond0),再检查:
- cat /proc/net/bonding/bond0:查看当前模式、活动接口、链路状态、miimon检测结果
- ip link show bond0 和 ip addr show bond0:确认UP状态及IP绑定正常
- 模拟故障:拔掉eth0网线,观察proc输出中Active Slave是否自动切换为eth1;延迟通常在miimon设定值(如100ms)的2–3倍内完成
- 注意:mode=1下仅一个接口转发流量,吞吐不叠加;如需带宽聚合,须用mode=4且交换机侧配置LACP,否则可能丢包
常见问题与避坑提示
实际部署中高频问题集中在配置顺序、模式误用和交换机协同:
- 先启slave再启bond会失败——务必按“先配bond、再配slave、最后启动bond”顺序操作
- mode=0(balance-rr)虽能负载分担,但要求交换机端口聚合且MAC学习混乱,生产环境慎用
- CentOS 7+ 使用NetworkManager时,传统ifcfg方式可能被覆盖,建议停用NM或改用nmcli定义bond连接
- VMware或KVM虚拟化环境中,需确认虚拟交换机支持LACP或允许混杂模式(尤其mode=1 fail_over_mac=1场景)










