RHEL7系统下双网卡绑定(Bonding)通过多网卡协同工作提升网络可靠性与带宽,实战配置需先确认网卡状态,安装bonding驱动;编辑bonding配置文件(如ifcfg-bond0),指定模式(如active-backup实现故障转移,mode0负载均衡)、IP地址及子网掩码;配置从属网卡(如ifcfg-eth0、ifcfg-eth1)绑定至bond0;重启network服务使配置生效,最后测试网络连通性与故障切换能力,该方案可有效避免单点故障,满足企业级网络高可用需求。
在服务器运维中,单网卡可能存在单点故障风险,且带宽受限,通过Linux内核的Bonding(网卡绑定)技术,可将多块物理网卡虚拟成一块逻辑网卡,实现负载均衡、冗余备份及带宽叠加,提升网络可靠性和性能,本文以RHEL7系统为例,详细讲解如何绑定两块网卡为Bond0,涵盖模式选择、配置步骤及验证方法。
Bonding技术概述
Bonding(也称链路聚合)通过Linux内核模块bonding实现,支持多种工作模式,常见模式如下:
| 模式 | 名称 | 特点 | 适用场景 |
|------|--------------------|----------------------------------------------------------------------|------------------------------|
| 0 | balance-rr(平衡轮询) | 按顺序将数据包发送到不同网卡,实现负载均衡,需交换机支持聚合 | 高带宽需求,无冗余要求 |
| 1 | active-backup(主备) | 仅一块网卡工作,另一块备份,故障时自动切换 | 高可靠性,带宽要求不高 |
| 4 | 802.3ad(LACP动态聚合) | 基于IEEE 802.3ad标准,需交换机支持LACP协议,动态协商负载均衡 | 企业级高可靠+负载均衡 |
| 6 | balance-tcp(TCP负载) | 基于TCP/UDP哈希算法分配流量,支持多路径传输 | 通用负载均衡,适合复杂网络 |
本文以mode=1(主备模式)为例,该模式配置简单、兼容性强,适合大多数冗余场景。

准备工作
系统与硬件环境
- 操作系统:RHEL7.9(Minimal安装,已配置基础网络)
- 硬件:两块物理网卡(假设为
ens33、ens34,已驱动并识别) - 工具:
ifconfig/ip命令、vim编辑器
检查网卡状态
确认两块网卡已正确识别且未被占用:
ip addr show # 查看网卡信息,确认ens33、ens34存在 ls /sys/class/net/ # 列出所有网卡,确保ens33、ens34在列
Bonding配置步骤
步骤1:加载Bonding内核模块
RHEL7默认未加载bonding模块,需手动加载并设置开机自启:
# 临时加载模块(立即生效) modprobe bonding # 查看模块是否加载成功 lsmod | grep bonding # 显示bonding相关信息 # 设置开机自启(写入配置文件) echo "bonding" > /etc/modules-load.d/bonding.conf
步骤2:创建Bond0逻辑网卡配置文件
RHEL7网络配置文件位于/etc/sysconfig/network-scripts/,需创建ifcfg-bond0:
vim /etc/sysconfig/network-scripts/ifcfg-bond0 ``` 以静态IP为例,DHCP用户可调整`BOOTPROTO`和`IPADDR`等参数): ```ini # Bond0逻辑网卡配置 DEVICE=bond0 # 逻辑网卡名称 TYPE=Bond # 类型为Bond BOOTPROTO=static # 静态IP(DHCP改为dhcp) IPADDR=192.168.1.100 # 绑定后的IP地址 NETMASK=255.255.255.0 # 子网掩码 GATEWAY=192.168.1.1 # 网关 DNS1=8.8.8.8 # DNS ONBOOT=yes # 开机自启 # Bonding核心参数(必须配置) BONDING_OPTS="mode=1 miimon=100" # mode=1:主备模式;miimon=100:每100ms检测链路状态(单位ms)
步骤3:配置物理网卡为Slave
将两块物理网卡ens33、ens34设置为Bond0的从设备,禁用其独立IP配置:
配置ens33:
vim /etc/sysconfig/network-scripts/ifcfg-ens33
修改/添加以下参数:
DEVICE=ens33 TYPE=Ethernet BOOTPROTO=none # 禁用独立IP ONBOOT=yes MASTER=bond0 # 指定主设备为bond0 SLAVE=yes # 标记为从设备 # 其他参数(如HWADDR)保持默认,无需修改
配置ens34:
vim /etc/sysconfig/network-scripts/ifcfg-ens34 ``` 与`ens33`一致,仅需将`DEVICE`改为`ens34`: ```ini DEVICE=ens34 TYPE=Ethernet BOOTPROTO=none ONBOOT=yes MASTER=bond0 SLAVE=yes
步骤4:重启网络服务使配置生效
# 重启网络服务(注意:可能导致SSH连接短暂中断,建议本地操作) systemctl restart network # 或使用nmcli命令(避免服务重启,需NetworkManager支持) nmcli con down "System ens33" && nmcli con down "System ens34" nmcli con add type bond ifname bond0 mode active-backup ip4 192.168.1

