linux多网卡绑定通过bond接口实现链路冗余或负载分担,需依次完成加载bonding模块、配置mode与miimon、设置从属网卡为slave、启动服务并验证状态、最后测试故障切换。

如果您在Linux服务器上需要提升网络连接的可靠性与带宽,多网卡绑定(Bonding)是一种常用技术。通过将多个物理网卡逻辑合并为一个bond接口,可实现链路冗余或负载分担。以下是配置Linux多网卡绑定的具体步骤:
一、确认内核支持并加载bonding模块
Linux内核需内置或可加载bonding驱动模块,该模块负责管理bond接口及其工作模式。若未启用,bond设备无法创建。
1、执行命令检查bonding模块是否已加载:lsmod | grep bonding。
2、若无输出,手动加载模块:modprobe bonding。
3、为确保重启后自动加载,将模块写入配置文件:echo "bonding" >> /etc/modules(Debian/Ubuntu)或echo "bonding" >> /etc/rc.modules(RHEL/CentOS),并赋予执行权限。
二、配置bond接口参数(mode选择与基础设定)
bond接口的行为由mode参数决定,不同mode对应不同高可用或性能目标。常见mode包括:mode=0(balance-rr)、mode=1(active-backup)、mode=4(802.3ad)。必须明确指定mode及miimon检测间隔以保障故障切换有效性。
1、创建bond配置文件,路径为/etc/network/interfaces(Debian系)或/etc/sysconfig/network-scripts/ifcfg-bond0(RHEL系)。
2、在配置中指定mode值,例如设置为主备模式:BONDING_OPTS="mode=1 miimon=100"。
3、确保所有参与绑定的从属网卡(如eth0、eth1)配置为MASTER=bond0且SLAVE=yes,同时禁用其独立IP地址分配。
三、配置从属网卡并绑定至bond设备
物理网卡必须脱离独立网络管理状态,作为slave纳入bond控制范围,否则系统会因路由冲突或地址重复导致网络异常。
1、编辑第一个从属网卡配置文件,例如/etc/sysconfig/network-scripts/ifcfg-eth0,添加或修改以下行:DEVICE=eth0
MASTER=bond0
SLAVE=yes
ONBOOT=yes。
2、对第二个从属网卡(如eth1)执行相同操作,仅替换DEVICE名称。
3、确认bond主接口配置文件中包含有效IP信息,例如:IPADDR=192.168.1.100
NETMASK=255.255.255.0
GATEWAY=192.168.1.1,且ONBOOT=yes。
四、启动bond接口并验证状态
完成配置后需激活bond设备,并实时检查其成员状态与当前活动端口,确保绑定生效且无链路错误。
1、重启网络服务:systemctl restart networking(Debian)或systemctl restart network(RHEL)。
2、查看bond接口状态:cat /proc/net/bonding/bond0,确认MII Status显示“up”,Primary Slave与Currently Active Slave字段存在且一致。
3、运行ip link show bond0和ip addr show bond0,验证MAC地址聚合正确、IP地址已绑定、状态为UP。
五、手动触发故障切换测试
为验证active-backup模式下的高可用能力,需人为模拟单网卡失效场景,观察bond是否自动迁移流量至备用链路。
1、拔下当前active网卡(如eth0)的网线,或执行ifconfig eth0 down。
2、等待约1–3秒后,再次执行cat /proc/net/bonding/bond0,观察Currently Active Slave字段是否已切换为eth1。
3、使用ping -I bond0 网关IP持续测试连通性,确认无丢包或中断现象。










