告别单点故障!CentOS 7 双网卡 Bonding 高可用配置全攻略

在企业级服务器环境中,网络的稳定性与带宽常常是系统管理员关注的重点。单块网卡一旦出现故障,可能导致服务中断;而单链路带宽也可能成为性能瓶颈。为了解决这些问题,Linux 系统(尤其是 CentOS 7)提供了 网卡绑定(NIC Bonding) 功能——将多个物理网卡“捆绑”成一个逻辑接口,从而实现 高可用性、负载均衡或带宽聚合

本文将手把手教你如何在 CentOS 7 上配置双网卡 Bonding,涵盖实际操作步骤、常见模式选择及验证方法,助你轻松打造更可靠、更高性能的网络架构。


一、什么是网卡 Bonding?

网卡 Bonding(也称作链路聚合、端口绑定)是 Linux 内核提供的一种机制,它允许将多个物理网络接口(如 eth0、eth1)组合成一个逻辑接口(如 bond0)。这个逻辑接口对外表现为单一网络设备,但内部可实现冗余或聚合。

常见 Bonding 模式(mode)

模式名称特点
mode=0balance-rr(轮询)默认模式,提供负载均衡和容错,但需交换机支持
mode=1active-backup(主备)高可用首选,同一时间仅一块网卡工作,故障自动切换
mode=4802.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 表示不分配 IP
  • MASTER=bond0SLAVE=yes 将其绑定到 bond0

步骤 4:重启网络服务

systemctl restart network

💡 如果使用 NetworkManager,也可用 nmclinmtui 图形工具配置,但传统 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=yesBOOTPROTO=static(或 dhcp)。
  • 切换失败? 确保 miimon 值合理(通常 100ms),且交换机端口未启用 STP 阻塞。
  • 重启后失效? 确认 modprobe bonding 已永久加载。

通过简单的配置,CentOS 7 的双网卡 Bonding 技术即可为你带来 网络冗余保障潜在的性能提升。无论是数据库服务器、Web 应用还是虚拟化平台,Bonding 都是构建高可用基础设施的重要一环。

🔔 觉得有收获?点击关注,获取更多 Linux/运维/云计算/开源项目 实用干货!

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值