Linux多网卡配置含五种方案:mode=0轮询负载均衡需交换机聚合;mode=1主备高可用无需交换机支持;mode=4基于LACP动态聚合需交换机启用802.3ad;mode=6自适应负载均衡收发双向均衡且免交换机配合;策略路由实现按源地址分流至不同物理链路。

在Linux系统中,当服务器配备多个物理网卡时,可通过网卡绑定(Bonding)技术实现高可用性或带宽聚合。不同绑定模式对应不同的流量分发与故障切换逻辑。以下是几种主流的多网卡配置方案及其负载策略解析:
一、mode=0(balance-rr)轮询模式
该模式通过轮询方式将网络数据包依次分发至各从属网卡,实现带宽叠加和基本负载均衡。要求交换机端口配置为聚合组(如IEEE 802.3ad),且所有参与绑定的网卡速率与双工模式必须一致。
1、加载bonding内核模块:modprobe bonding mode=0 miimon=100
2、创建bond0接口配置文件(/etc/sysconfig/network-scripts/ifcfg-bond0),设置BOOTPROTO为static,并指定IP地址、子网掩码及网关
3、修改各物理网卡配置文件(如ifcfg-eth0、ifcfg-eth1),将DEVICE设为对应名称,ONBOOT设为yes,BOOTPROTO设为none,并添加MASTER=bond0与SLAVE=yes
4、重启网络服务:systemctl restart network
二、mode=1(active-backup)主备模式
此模式仅一个网卡处于活动状态,其余作为热备份。当主网卡失效时,自动切换至备用网卡,保障连接连续性。无需交换机支持链路聚合,适用于对高可用性要求严苛但不追求带宽叠加的场景。
1、加载bonding模块并指定主备模式:modprobe bonding mode=1 miimon=100 primary=eth0
2、配置bond0接口为静态IP,禁用IPv6(可选),并确保NM_CONTROLLED=no以避免NetworkManager干扰
3、在各从属网卡配置中分别写入MASTER=bond0与SLAVE=yes,同时在主网卡配置中追加BONDING_OPTS="mode=1 primary=eth0 miimon=100"
4、执行ip link set bond0 up启用绑定接口,并验证状态:cat /proc/net/bonding/bond0
三、mode=4(802.3ad)动态链路聚合模式
基于IEEE 802.3ad标准,通过LACP协议与交换机协商聚合参数,实现自动发现、配置同步与故障检测。需交换机端明确启用LACP,并将对应端口加入同一LAG组。
1、确认内核已启用802.3ad支持:grep CONFIG_BONDING /boot/config-$(uname -r),输出应含=y或=m
2、加载模块时指定lacp_rate与xmit_hash_policy:modprobe bonding mode=4 lacp_rate=1 xmit_hash_policy=layer2+3 miimon=100
3、在bond0配置中添加:BONDING_OPTS="mode=4 lacp_rate=1 xmit_hash_policy=layer2+3 miimon=100"
4、检查聚合状态是否为“Aggregator ID: N”且所有端口显示“Aggregator ID: N, Actor Key: N, Partner Key: N”,表示LACP握手成功
四、mode=6(balance-alb)自适应负载均衡模式
该模式无需交换机配合,支持发送与接收双向流量均衡。发送端依据哈希算法分配流量,接收端通过ARP协商机制引导响应报文由特定网卡处理,从而实现收发路径分离下的负载分担。
1、加载模块并启用ALB:modprobe bonding mode=6 miimon=100
2、配置bond0为静态IP,关闭STP(若使用桥接):STP=off
3、在各从属网卡配置中设置MASTER=bond0、SLAVE=yes,并在bond0配置中加入BONDING_OPTS="mode=6 miimon=100"
4、触发ARP重协商:echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore与echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
五、基于策略路由的多网卡独立出口配置
当需要不同业务流量走不同物理链路(如管理网段走eth0、业务网段走eth1),可绕过bonding,采用策略路由方式实现网卡分工。每张网卡保留独立IP与路由表,通过源地址匹配规则决定出口路径。
1、为eth0配置主IP(如192.168.1.10/24),eth1配置次IP(如10.0.2.20/24),均设置ONBOOT=yes且BOOTPROTO=static
2、创建独立路由表(/etc/iproute2/rt_tables),追加两行:100 table_eth0与101 table_eth1
3、分别为两张网卡添加默认路由与直连路由:ip route add default via 192.168.1.1 dev eth0 table table_eth0,ip route add 192.168.1.0/24 dev eth0 src 192.168.1.10 table table_eth0
4、添加策略规则:ip rule add from 192.168.1.10/32 table table_eth0,ip rule add to 192.168.1.0/24 table table_eth0,同理配置eth1对应规则










