Linux系统如何配置多网卡绑定?
Linux系统多网卡绑定配置全攻略
在服务器环境中,网络连接的可靠性和带宽至关重要。Linux系统通过网卡绑定(NIC Bonding)技术,可以将多个物理网卡虚拟成一个逻辑接口,实现负载均衡和故障转移。本文将详细介绍7种绑定模式的区别,并提供CentOS和Ubuntu系统的实战配置示例。
一、网卡绑定的7种工作模式解析
- mode=0(balance-rr):轮询模式,数据包轮流通过各个网卡发送
- mode=1(active-backup):主备模式,只有主网卡工作,备网卡处于待命状态
- mode=2(balance-xor):XOR哈希模式,根据源/目的MAC地址分配网卡
- mode=3(broadcast):广播模式,所有数据包通过所有网卡发送
- mode=4(802.3ad):动态链路聚合,需要交换机支持LACP协议
- mode=5(balance-tlb):自适应传输负载均衡,根据当前负载分配流量
- mode=6(balance-alb):自适应负载均衡,包含tlb模式并增加接收负载均衡
二、CentOS 7/8配置实战
1. 安装必要工具
yum install -y teamd bond-utils
2. 创建bonding接口配置文件
vi /etc/sysconfig/network-scripts/ifcfg-bond0
DEVICE=bond0
TYPE=Bond
ONBOOT=yes
BOOTPROTO=none
BONDING_MASTER=yes
BONDING_OPTS="mode=4 miimon=100"
3. 修改物理网卡配置
vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=none
MASTER=bond0
SLAVE=yes
三、Ubuntu 18.04+配置方法
1. 安装ifenslave工具
apt install -y ifenslave
2. 配置netplan(以mode=6为例)
vi /etc/netplan/01-netcfg.yaml
network:
version: 2
bonds:
bond0:
interfaces: [eth0, eth1]
parameters:
mode: balance-alb
mii-monitor-interval: 100
四、常见问题排查
- 绑定接口不生效:检查是否加载了bonding模块(lsmod | grep bonding)
- 网络速度未提升:确认交换机端口配置是否正确,特别是802.3ad模式
- 备网卡不切换:测试物理链路是否正常(ethtool eth0)
- MTU不匹配:确保所有成员网卡的MTU值一致
五、最佳实践建议
对于Web服务器集群,推荐使用mode=4(802.3ad)获得最佳性能;数据库服务器建议采用mode=1(active-backup)确保稳定性;云环境中的虚拟机可以考虑mode=6(balance-alb)。配置完成后务必使用cat /proc/net/bonding/bond0命令验证绑定状态,并通过iperf3进行实际带宽测试。
