跳转到主内容
极星编程网:以代码为星,赴技术山海!

Linux多网卡配置方案_绑定与负载策略解析【教程】

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 CentOS Linux 7.9.2009 CentOS Linux 7.9.2009是传统CentOS Linux 7的最后主要版本,也是很多企业历史服务器中仍可能遇到的系统版本。它以稳定、兼容RHEL 7生态、文档丰富和软件支持广泛著称,曾长期用于Web服务、数据库、虚拟化节点和企业内部业务系统。不过CentOS Linux 7已于2024年6月30日停止维护,现在继续使用会面临安全补丁缺失风险。该版本更适合旧业务迁移、历史环境恢复或离线兼容性测试。

下载

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对应规则

相关文章