linux网卡链路聚合需将ip配置在bond接口(如bond0)而非物理网卡,否则引发冲突;须确认内核支持bonding模块,按mode=1(主备)或mode=4(lacp)选择模式并匹配交换机配置,从属网卡禁用ip且正确绑定,最后验证状态与故障切换。

Linux中配置网卡链路聚合(Bond)本质是把多块物理网卡虚拟成一个逻辑接口(如 bond0),再给这个逻辑接口配置IP地址。关键点在于:IP地址必须配在 bond 接口上,不能配在从属的物理网卡上——否则会导致冲突、通信异常或绑定失效。
一、确认物理网卡和系统支持
先查清可用网卡名和内核是否支持 bonding:
ip -br a # 查看当前网卡列表(如 ens33、ens37) modinfo bonding # 看是否有输出,确认模块存在 lsmod | grep bonding # 检查是否已加载
若无输出,需手动加载并设为开机启用:
modprobe bonding echo "bonding" > /etc/modules-load.d/bonding.conf
二、选择合适模式并配置 bond 接口IP
不同模式对交换机要求不同,常见两种推荐场景:
✅ mode=1(主备高可用)——无需交换机配合,最稳妥
适合只求链路不中断、不强求带宽叠加的生产环境。
编辑 /etc/sysconfig/network-scripts/ifcfg-bond0(CentOS/RHEL):
DEVICE=bond0 TYPE=Bond BONDING_MASTER=yes BOOTPROTO=static IPADDR=192.168.1.10 NETMASK=255.255.255.0 GATEWAY=192.168.1.1 ONBOOT=yes BONDING_OPTS="mode=1 miimon=100 updelay=200 downdelay=200"
⚠️ 注意:不要写
NM_CONTROLLED=no或USERCTL=no(新版 NetworkManager 可能忽略),如用nmcli管理,建议统一用它配置。
✅ mode=4(802.3ad/LACP)——需交换机支持LACP,带宽叠加+容错
适合数据中心、高性能业务。ifcfg-bond0 中改用:
BONDING_OPTS="mode=4 miimon=100 lacp_rate=1 xmit_hash_policy=layer3+4"
并在交换机侧创建对应 LACP 聚合组(端口通道),确保两端协商成功。
三、配置从属网卡(Slave)
以 ens33 和 ens37 为例,分别编辑:/etc/sysconfig/network-scripts/ifcfg-ens33
DEVICE=ens33 BOOTPROTO=none ONBOOT=yes MASTER=bond0 SLAVE=yes
同理配置 ifcfg-ens37,仅改 DEVICE= 行。
⚠️ 确保它们不包含 IPADDR、NETMASK、GATEWAY 等网络参数,也不启用 DHCP。
四、启用并验证
重启网络服务(或使用 nmcli):
systemctl restart network # 传统 network.service(RHEL/CentOS 7) # 或 nmcli connection reload && nmcli connection up bond0
验证是否生效:
cat /proc/net/bonding/bond0 # 查看状态、当前主从、链路是否 UP ip a show bond0 # 确认 IP 已绑定且状态为 UP ping -c3 192.168.1.1 # 测试通路
拔掉一根网线,观察是否自动切换(mode=1 下会丢 1–3 个包后恢复)。
IP地址配置本身不复杂,但成败取决于三点:
- bond 接口配了 IP,物理网卡没配
- 模式参数与交换机能力匹配(尤其 mode=0/2/4)
-
miimon值合理(通常 100ms),保障故障检测及时
按这四步走,一次就能跑通。











