Linux网络绑定模式配置与故障切换详解
背景
在企业服务器环境中,单一网卡带宽有限且存在单点故障风险。Linux 内核提供了 bonding 驱动,通过将多个物理网卡聚合为逻辑接口,实现带宽叠加和故障切换。本文详细介绍七种绑定模式的工作原理、配置步骤及故障切换验证方法。
绑定模式概述
Linux bonding 支持七种模式,归纳为两类:
负载均衡模式(需交换机配合):
- mode 1(active-backup):主备模式,一主一备
- mode 2(balance-xor):基于源MAC的负载均衡
- mode 4(802.3ad):LACP动态链路聚合,需交换机启用LACP
- mode 5/6:基于流量的负载均衡(mode 5=基于源IP,mode 6=基于轮询)
高可用模式(交换机无特殊要求):
- mode 0(balance-rr):轮询负载均衡,缺点是数据包可能乱序
- mode 3(broadcast):广播模式,所有从机都发送相同数据
生产环境最常用的是 mode 1(主动备份)和 mode 4(LACP)。
配置步骤
1. 加载Bonding模块
1 | # 临时加载 |
2. 创建Bond接口配置文件
编辑 /etc/sysconfig/network-scripts/ifcfg-bond0:
1 | DEVICE=bond0 |
3. 配置成员网卡
编辑成员网卡配置,例如 ifcfg-eth0:
1 | DEVICE=eth0 |
同样配置 eth1,两个网卡都指向同一个 bond0。
4. 重启网络服务
1 | systemctl restart network |
5. 验证绑定状态
1 | # 查看bonding信息 |
LACP模式配置(mode 4)
如果采用 mode 4,需在交换机侧启用 LACP。以 Cisco 交换机为例:
1 | interface range ethernet 1/0/1 -2 |
服务器侧配置:
1 | BONDING_OPTS="mode=4 miimon=100 lacp_rate=1 xmit_hash_policy=layer2+3" |
故障切换验证
人工触发故障
1 | # 模拟链路断开 |
恢复验证
1 | # 恢复链路 |
监控脚本示例
1 |
|
常见故障排查
| 问题 | 原因 | 解决方法 |
|---|---|---|
| 无流量 | bond模块未加载 | `modprobe bonding; lsmod |
| 频繁切换 | miimon值过低 | 增大至200-500ms |
| 交换机侧端口ERR | 端口模式不匹配 | 确认双工和速率协商一致 |
| 无法ping网关 | ARP问题 | 启用 fail_over_mac=1 |
总结
网络绑定是提升服务器网络可用性的基础手段。mode 1 适合简单场景,mode 4 适合需要带宽叠加的高吞吐场景。配置时注意成员网卡速率一致,交换机端口配置匹配,并在部署后进行故障切换演练确保高可用真正生效。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 体系所运维知识库!