链路聚合与软件网桥配置
链路聚合与软件网桥配置
一、链路聚合(NIC Teaming)
(一)核心概述
链路聚合(又称网卡组、网卡聚合)是将多个物理网络接口控制器(NIC)通过逻辑方式组合为一个虚拟接口的技术,可实现故障转移(某网卡故障时自动切换)或吞吐量提升(多网卡分担流量),适用于高可用或高带宽需求场景。
(二)核心模式与功能
链路聚合支持多种工作模式,适配不同业务需求:
模式名称 | 功能说明 | 适用场景 |
roundrobin | 轮询模式,所有端口按顺序轮流传输数据包,提升吞吐量。 | 负载均衡、高带宽场景 |
activebackup | 主备模式,仅主网卡活跃,主网卡故障时自动切换到备用网卡,保障可用性。 | 高可用场景(如服务器冗余) |
loadbalance | 负载均衡模式,通过哈希函数监控流量,动态均衡端口负载。 | 流量不均的复杂网络环境 |
broadcast | 广播容错模式,所有端口同时传输数据包,确保数据可靠送达。 | 关键数据广播、容错优先场景 |
(三)链路聚合配置步骤(以activebackup模式为例)
环境准备:
- 服务器需具备 2 个物理网卡(示例:ens36、ens37),均接入同一网段(192.168.200.0/24)。
1. 清理原有网络连接
# 查看现有网络连接标签nmcli connection show# 删除原有默认连接(如“有线连接 1”“有线连接 2”)nmcli connection delete "有线连接 1"nmcli connection delete "有线连接 2"
2. 创建聚合组接口(team0)
# 创建名为team0的聚合接口,指定模式为activebackupnmcli connection add con-name team0 ifname team0 type team config '{"runner": {"name": "activebackup"}}'
3. 配置聚合接口 IP 地址
# 为team0分配静态IP(192.168.200.10/24),并设置开机自启nmcli connection modify team0 \ipv4.addresses 192.168.200.10/24 \ipv4.method manual \connection.autoconnect yes
4. 添加物理网卡到聚合组
将ens36和ens37作为从接口加入team0:
# 添加ens36到team0nmcli connection add con-name team0-ens36 ifname ens36 type team-slave master team0# 添加ens37到team0nmcli connection add con-name team0-ens37 ifname ens37 type team-slave master team0
5. 激活聚合接口并验证状态
# 激活team0接口nmcli connection up team0# 查看聚合组状态(确认主备关系,先添加的网卡默认为主)teamdctl team0 state
6. 主网卡故障测试(断开 ens36 后状态变化)
在activebackup模式下,初始主网卡为最先添加的ens36,断开ens36后:
# 断开ens36网卡连接nmcli connection down team0-ens36# 再次查看聚合组状态teamdctl team0 state# 输出显示主网卡已自动切换为ens37,状态为“active”,原主网卡ens36状态变为“failed”# 此时网络连接不受影响,server1仍可ping通server2的192.168.200.20ping 192.168.200.20
(四)跨服务器测试
- 配置另一台服务器:按上述步骤配置,仅修改team0的 IP 为192.168.200.20/24。
- 连通性测试:
# 在server1(192.168.200.10)上ping server2(192.168.200.20)ping 192.168.200.20 # 应能正常通信
二、软件网桥(Bridge)
(一)核心概述
软件网桥是 Linux 系统中仿真硬件网桥的链路层设备,通过MAC 地址学习和报文转发实现网络流量转发,常用于虚拟化场景(如 KVM)中,让多个虚拟网卡共享一个物理网卡。
(二)核心功能
- MAC 地址学习:记录设备 MAC 地址与网桥端口的对应关系,构建 “地址 - 端口转发表”。
- 报文转发:根据目标 MAC 地址查询转发表,通过对应端口转发数据包,未匹配时广播转发。
- STP 规则:通过生成树协议(STP)选择主工作网卡,避免网络环路,网桥 MAC 地址与主网卡一致。
(三)软件网桥配置步骤
环境准备:
- 开启 IP 转发(网桥需转发跨网段流量时):
# 编辑内核参数配置文件vim /etc/sysctl.conf# 添加或修改:net.ipv4.ip_forward = 1# 生效配置sysctl -p
1. 清理原有网络连接
同链路聚合步骤 1,删除默认有线连接:
nmcli connection delete "有线连接 1"nmcli connection delete "有线连接 2"
2. 创建软件网桥(bridge0)
# 创建名为bridge0的软件网桥nmcli connection add con-name bridge0 ifname bridge0 type bridge
3. 配置网桥 IP 地址(可选)
如需网桥作为网络节点,可分配静态 IP:
nmcli connection modify bridge0 \ipv4.addresses 192.168.200.10/24 \ipv4.method manual \connection.autoconnect yes
4. 添加物理网卡到网桥
将ens36和ens37连接到bridge0:
# 添加ens36到bridge0nmcli connection add con-name bridge0-ens36 ifname ens36 type bridge-slave master bridge0# 添加ens37到bridge0nmcli connection add con-name bridge0-ens37 ifname ens37 type bridge-slave master bridge0
5. 激活网桥并验证状态
# 激活bridge0网桥nmcli connection up bridge0# 查看网桥状态(确认端口与MAC表,初始主工作网卡为ens36)brctl show
6. 主网卡故障测试(断开 ens36 后状态变化)
网桥通过 STP 规则选择主工作网卡,初始主网卡为ens36,断开ens36后:
# 断开ens36网卡连接nmcli connection down bridge0-ens36# 查看网桥状态变化brctl show# 输出显示网桥端口中ens36状态变为“down”,ens37自动成为新的主工作网卡# 网桥MAC地址切换为ens37的MAC地址,网络连接保持正常ping 192.168.200.20 # 仍可正常ping通server2
(四)跨服务器测试
- 配置另一台服务器:按上述步骤配置,网桥 IP 设为192.168.200.20/24。
- 连通性测试:
# 在server1(192.168.200.10)上ping server2(192.168.200.20)ping 192.168.200.20 # 应能正常通信
三、关键区别与适用场景
技术类型 | 核心功能差异 | 主网卡故障切换特点 | 典型适用场景 |
链路聚合 | 多网卡逻辑聚合,提升带宽或冗余 | 主动模式下自动切换至备用网卡,状态实时更新 | 服务器高可用、高带宽需求(如数据库) |
软件网桥 | 链路层转发,共享物理网卡资源 | 通过 STP 规则切换主网卡,MAC 地址随主网卡变更 | 虚拟化环境(如 KVM 虚拟网卡共享) |
通过上述配置,链路聚合可实现网卡级冗余或负载均衡,软件网桥可高效共享网络资源,两者均为 Linux 网络优化的重要技术,需根据业务需求选择合适方案。