在企业级服务器环境中,网络的稳定性与带宽常常是系统管理员关注的重点。单块网卡一旦出现故障,可能导致服务中断;而单链路带宽也可能成为性能瓶颈。为了解决这些问题,Linux 系统(尤其是 CentOS 7)提供了 网卡绑定(NIC Bonding) 功能——将多个物理网卡“捆绑”成一个逻辑接口,从而实现 高可用性、负载均衡或带宽聚合。
本文将手把手教你如何在 CentOS 7 上配置双网卡 Bonding,涵盖实际操作步骤、常见模式选择及验证方法,助你轻松打造更可靠、更高性能的网络架构。
一、什么是网卡 Bonding?
网卡 Bonding(也称作链路聚合、端口绑定)是 Linux 内核提供的一种机制,它允许将多个物理网络接口(如 eth0、eth1)组合成一个逻辑接口(如 bond0)。这个逻辑接口对外表现为单一网络设备,但内部可实现冗余或聚合。
常见 Bonding 模式(mode)
| 模式 | 名称 | 特点 |
|---|---|---|
| mode=0 | balance-rr(轮询) | 默认模式,提供负载均衡和容错,但需交换机支持 |
| mode=1 | active-backup(主备) | 高可用首选,同一时间仅一块网卡工作,故障自动切换 |
| mode=4 | 802.3ad(LACP) | 动态链路聚合,需交换机支持 LACP 协议,兼顾带宽与冗余 |
推荐场景:
- 若追求简单高可用 → 选 mode=1
- 若交换机支持且需提升带宽 → 选 mode=4
本文以 mode=1(active-backup) 为例进行配置,适用于大多数生产环境。
二、准备工作
- 操作系统:CentOS 7
- 两块物理网卡(例如:ens192 和 ens224)
- root 权限
- 确保两块网卡连接到同一网络(或支持 bonding 的交换机)
⚠️ 注意:配置前建议备份原网络配置,并确保可通过控制台访问服务器(避免网络中断失联)。
三、配置步骤
步骤 1:加载 bonding 内核模块(若使用 CentOS 7 默认的 network 服务管理网络,这一步可不做,直接从步骤2开始配置)
# 临时加载(重启失效)
modprobe bonding
# 永久加载
echo "bonding" >> /etc/modules-load.d/bonding.conf
步骤 2:创建 bond0 接口配置文件
vim /etc/sysconfig/network-scripts/ifcfg-bond0
写入以下内容(根据你的网络环境调整 IP、网关等):
DEVICE=bond0
NAME=bond0
TYPE=Bond
BONDING_MASTER=yes
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.10.100
NETMASK=255.255.255.0
GATEWAY=192.168.10.1
DNS1=8.8.8.8
BONDING_OPTS="mode=1 miimon=100"
参数说明:
mode=1:主备模式miimon=100:每 100ms 检测一次链路状态
步骤 3:修改两个物理网卡配置
配置 ens192:
vi /etc/sysconfig/network-scripts/ifcfg-ens192
内容如下:
DEVICE=ens192
NAME=ens192
TYPE=Ethernet
BOOTPROTO=none
ONBOOT=yes
MASTER=bond0
SLAVE=yes
DEFROUTE=no
配置 ens224:
vi /etc/sysconfig/network-scripts/ifcfg-ens224
内容相同:
DEVICE=ens224
NAME=ens224
TYPE=Ethernet
BOOTPROTO=none
ONBOOT=yes
MASTER=bond0
SLAVE=yes
DEFROUTE=no
✅ 关键点:
BOOTPROTO=none表示不分配 IPMASTER=bond0和SLAVE=yes将其绑定到 bond0
步骤 4:重启网络服务
systemctl restart network
💡 如果使用 NetworkManager,也可用
nmcli或nmtui图形工具配置,但传统 ifcfg 方式在 CentOS 7 中更稳定。
四、验证 Bonding 是否生效
1. 查看 bond0 状态
cat /proc/net/bonding/bond0
输出示例(mode=1):
Bonding Mode: fault-tolerance (active-backup)
Primary Slave: None
Currently Active Slave: ens192
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0
Slave Interface: ens192
MII Status: up
Speed: 1000 Mbps
Duplex: full
Slave Interface: ens224
MII Status: up
Speed: 1000 Mbps
Duplex: full
可以看到当前活跃的是 ens192,若拔掉该网线,应自动切换到 ens224。
2. 检查网络接口
ip addr show bond0
应显示配置的 IP 地址。
3. 测试故障切换
手动禁用一块网卡:
ifdown ens192
再查看 /proc/net/bonding/bond0,应看到 Currently Active Slave 变为 ens224,且网络仍可通信。
五、常见问题排查
- 无法上网? 检查
GATEWAY是否只在 bond0 中设置,物理网卡不能有 gateway。 - bond0 无 IP? 确认
ONBOOT=yes且BOOTPROTO=static(或 dhcp)。 - 切换失败? 确保
miimon值合理(通常 100ms),且交换机端口未启用 STP 阻塞。 - 重启后失效? 确认
modprobe bonding已永久加载。
通过简单的配置,CentOS 7 的双网卡 Bonding 技术即可为你带来 网络冗余保障 与 潜在的性能提升。无论是数据库服务器、Web 应用还是虚拟化平台,Bonding 都是构建高可用基础设施的重要一环。
2863

被折叠的 条评论
为什么被折叠?



