Hello,大家好啊!今天给大家带来一篇信创服务器操作系统上链路聚合(Bonding)配置实战的文章。链路聚合可以让两块网卡协同工作,提高服务器网络可靠性和带宽利用率,是企业级部署和关键业务系统中非常重要的网络配置技能。本文将手把手教你,在信创服务器系统中通过NetworkManager和nmcli命令配置双网卡Active-Backup模式的链路聚合,即便是网络故障也能保障通信不中断!欢迎大家分享点赞,点个在看和关注吧!
什么是链路聚合(Bonding)?
链路聚合(Bonding)是一种把多块网卡虚拟成一块网卡使用的技术。
本次配置采用的是:模式:active-backup(主备模式)
一块网卡工作,另一块处于备份状态;
主用网卡故障时,备份网卡接管,网络不中断;
保证系统网络的高可用性,降低单点故障风险。
1.查看系统信息
[pdsyw@pdsyw1024 桌面]$ cat /etc/os-release [pdsyw@pdsyw1024 桌面]$ uname -a
cat /etc/os-release:查看系统发行版信息,包括版本号、ID 等。
uname -a:显示内核版本、硬件架构、主机名等整体系统信息。
这一步主要是确认当前操作系统的版本和内核版本,以便后续判断所需的软件包或配置策略是否兼容。
2.查看网卡信息
[root@pdsyw1024 ~]# ip a
ip a:显示系统中所有网络接口(包括物理网卡、虚拟网卡、回环接口等)的 IP 配置、MAC 地址、状态(UP/DOWN)等。通过这一步,可以了解到网卡的名称(如 ens160, ens192),确认它们是否已经有 IP等,为后续 Bond 配置做准备。
3.安装NetworkManager
[root@pdsyw1024 ~]# dnf install NetworkManager
dnf install NetworkManager:如果系统中尚未安装或缺失此包,可以通过此命令安装 NetworkManager。一般默认都会安装 NetworkManager。但如果是极简镜像,可能需要手动安装。NetworkManager 提供了 nmcli 命令,使我们能够用更现代、灵活的方式管理网络连接。
4.确认内核模块
[root@pdsyw1024 ~]# lsmod | grep bonding [root@pdsyw1024 ~]# modprobe bonding [root@pdsyw1024 ~]# lsmod | grep bonding
lsmod | grep bonding:查看系统是否已经加载了 bonding 模块。
modprobe bonding:如果未加载,就通过 modprobe 手动加载;加载后再 lsmod | grep bonding 看看是不是已经进入内核模块列表。
bonding 是实现链路聚合(Bond)的关键内核模块,没有它就无法进行 Bond 配置。
5.创建Bond主连接
[root@pdsyw1024 ~]# nmcli connection add \ \> type bond \ > ifname bond0 \ > con-name bond0 \ > ip4 192.168.80.10/24 \ > gw4 192.168.80.254 \ > ipv4.dns 223.5.5.5 \ > bond.options "mode=active-backup,miimon=100" 连接 "bond0" (e73fd75d-4f12-4248-b5dc-d1da699de634) 已成功添加。
type bond:告诉 NetworkManager 创建的是一个 Bond 类型连接。
ifname bond0 con-name bond0:将该连接的接口名和连接名都指定为 bond0。
ip4 192.168.80.10/24:给 bond0 分配静态 IP 地址 192.168.80.10,掩码是 /24 (255.255.255.0)。
gw4 192.168.80.254:设置网关为 192.168.80.254。
ipv4.dns 223.5.5.5:设置 DNS 为 223.5.5.5。
bond.options "mode=active-backup,miimon=100":
mode=active-backup 指定了主备模式(只用一个网卡做流量,另一条网卡仅在故障时顶上)。
miimon=100 表示每 100 ms 检测一次链路状态。
这样就创建了一个 “Bond 主接口”,它在系统里会成为一个新的虚拟网卡 bond0,并且拥有 IP、网关和 DNS 设置。
6.创建并配置从属(Slave1)连接
[root@pdsyw1024 ~]# nmcli connection add \ > type ethernet \ > con-name ens160-slave \ > ifname ens160 \ > master bond0 连接 "ens160-slave" (57037856-3d79-4895-a733-c16179b8969a) 已成功添加。
type ethernet:从属网卡是物理以太网类型。
con-name ens160-slave:给连接一个自定义名称(便于区分这是给 ens160 网卡用的,从属到 bond0)。
ifname ens160:表示这是针对物理网卡 ens160 的配置。
master bond0:将 ens160 绑定到 bond0 主连接作为从属。
通过这一步,NetworkManager 会记录“ens160 这块网卡属于 bond0”,让其不再独立分配 IP,而是受 bond0 控制。
7.创建并配置从属(Slave2)连接
[root@pdsyw1024 ~]# nmcli connection add \ > type ethernet \ > con-name ens192-slave \ > ifname ens192 \ > master bond0 连接 "ens192-slave" (d00f01b8-3bee-42db-b0d0-814ebd1f56e2) 已成功添加。
与第 6 步类似,只是更换了网卡名称为 ens192,让它也成为 bond0 的从属。
8.查看所有连接
[root@pdsyw1024 ~]# nmcli connection show
罗列系统中已创建的所有连接。会看到 ens160, ens192, bond0, ens160-slave, ens192-slave 五条连接(前两者为旧的独立网卡连接,后者为新建的 bond 相关连接)。
9.彻底删除旧连接(不推荐)
[root@pdsyw1024 ~]# nmcli connection delete ens160 [root@pdsyw1024 ~]# nmcli connection delete ens192
这两条命令删除了系统中原本针对 ens160 / ens192 的独立连接。这样做的结果是:只保留 ens160-slave 和 ens192-slave 可以绑定到 bond0,而不会再有同名的旧连接来冲突。之所以说“不推荐”是因为有时我们也许想保留原有连接配置以作参考,或者只想暂时停用而不删除。
10.仅禁用自动连接而不删除(推荐)
[root@pdsyw1024 ~]# nmcli connection modify ens160 connection.autoconnect no [root@pdsyw1024 ~]# nmcli connection modify ens192 connection.autoconnect no [root@pdsyw1024 ~]# nmcli connection down ens160 [root@pdsyw1024 ~]# nmcli connection down ens192
前两条命令让旧的 ens160、ens192 连接在开机或网线插拔时不再自动激活。这样可以避免它们和新的 ens160-slave / ens192-slave 产生冲突。后两条命令是手动停止当前活跃的 ens160、ens192 连接,让它们立即下线。停用后,我们的 bond0 才可以接管 ens160、ens192。
11.激活bond0连接
[root@pdsyw1024 ~]# nmcli connection up bond0
启动(激活)bond0 主连接。此时它会等待从属网卡上线,如果没有从属,那么 bond0 会暂时显示“master waiting for slaves”。
12.激活从属连接
[root@pdsyw1024 ~]# nmcli connection up ens160-slave [root@pdsyw1024 ~]# nmcli connection up ens192-slave
分别启动 ens160-slave、ens192-slave 两个连接,让物理网卡 ens160、ens192 加入 bond0。
这样 bond0 就获得了实际物理链路,MII Status 应能变为 “up”。
13.查看状态
[root@pdsyw1024 ~]# nmcli connection show --active [root@pdsyw1024 ~]# nmcli device status
nmcli connection show --active:查看当前所有“已激活”的连接;
nmcli device status:查看每个网卡 (DEVICE) 关联的连接以及管理状态。
可以确认bond0 是否为 “已连接”;ens160、ens192 是否已连接到各自的从属连接(ens160-slave, ens192-slave)。
14.查看Bond内核信息
[root@pdsyw1024 ~]# cat /proc/net/bonding/bond0
这是查看内核中 bond0 设备的详细信息的关键命令。可以看到:Bonding Mode、Currently Active Slave、MII Status、Speed、Link Failure Count 等。这里如果 “MII Status: up”,说明物理链路正常;Currently Active Slave: ens160 表示当前是 ens160 在主动工作(active-backup 模式下)。
15.查看bond0网卡
[root@pdsyw1024 ~]# ip addr show bond0
显示 bond0 这个虚拟网卡的 IP、MAC、状态等信息。如果 state UP 并且能看到分配好的 192.168.80.10/24,说明这个 IP 生效了。
16.在其他终端上测试连通性
pdsyw@pdsyw-PC:~/Desktop$ ping 192.168.80.10
从另一台机器(或同一台机器上其他网络环境) ping 192.168.80.10,验证是否可以正常响应。
如果能正常 ping 通,代表 bond0 这条虚拟网卡的网络访问已经配置成功了。
17.重启测试
[root@pdsyw1024 ~]# reboot
让服务器重启,以验证开机后是否还能保持正确的 Bond 配置和连接状态。
若重启后因自动连接优先级或 ifcfg 文件干扰,可能导致 bond0 无法自动 UP,需要排查并正确保留 only bond + slave 连接。
18.查看状态
[root@pdsyw1024 ~]# nmcli connection show --active [root@pdsyw1024 ~]# ip addr show bond0
同上,用来确认重启以后,bond0 依旧是“UP”,ens160、ens192 依旧是从属到 bond0。
如果这时看到 “ens160-slave”、“ens192-slave” 依然激活,bond0 拥有 IP,说明配置生效并成功持久化。
19.查看Bond内核信息
[root@pdsyw1024 ~]# cat /proc/net/bonding/bond0
再次确认目前的模式 (active-backup)、当前活动从属网卡、链路状态等,都和重启前一致。
表明系统在开机时自动加载 bonding 模块并启用了 bond0 配置。
20.测试网卡
20.1.当ens160网卡状态异常
[root@pdsyw1024 ~]# cat /proc/net/bonding/bond0
当人为断开 ens160 网线或者在虚拟机管理界面禁用 ens160 时,会看到:
ens160 的 MII Status: down
Currently Active Slave: ens192
在 active-backup 模式下,bond0 会把流量切换到另一块网卡 (ens192),保证网络连续性。
20.2.从其他终端测试连通性
pdsyw@pdsyw-PC:~/Desktop$ ping 192.168.80.10
验证故障转移是否成功:如果 ping 不间断或只丢一两个包,则表示故障转移工作正常。
20.3.当ens192网卡状态异常
[root@pdsyw1024 ~]# cat /proc/net/bonding/bond0
同理,如果拔掉 / 禁用 ens192,则 ens192 会显示 down,Currently Active Slave 切换到 ens160。依旧可以通过 ping 测试来确认网络是否保持畅通。
20.2.从其他终端测试连通性
pdsyw@pdsyw-PC:~/Desktop$ ping 192.168.80.10
验证故障转移是否成功:如果 ping 不间断或只丢一两个包,则表示故障转移工作正常。
到这里,信创服务器系统上链路聚合(Bonding)配置就全部完成了!通过active-backup主备模式,哪怕一条链路故障,系统网络依然畅通无阻,大大提高了服务器的稳定性和可靠性。如果您觉得这篇文章对您有帮助,欢迎分享点赞,点个在看和关注哦!后续我还会分享更多服务器网络、存储和高可用配置的实战技巧,敬请期待!