Rocky Linux 9 双网卡 bond0 绑定
一、VMware 虚拟机添加2块网卡
步骤1:关闭虚拟机
操作 :选中目标 Rocky 9 虚拟机 → 右键 → 电源 → 关闭客户机
原因:VMware 添加/修改网卡硬件时,虚拟机必须完全关机(不可挂起),否则硬件变更无法生效,系统开机后也无法识别新网卡。
步骤2:添加第一块网卡(若已有则跳过)
- 点击「编辑虚拟机设置」→ 硬件列表点击「添加」;
- 选择「网络适配器」→ 点击「下一步」;
- 网络连接选择(2块网卡需一致):
- 桥接模式:直接连接物理网络(推荐测试用);
- 仅主机模式:仅与宿主机/同网络虚拟机通信;
- 勾选「启动时连接」→ 点击「完成」→ 「确定」。
原因:
- 网络适配器是虚拟机与外部通信的硬件基础,需先创建第一块网卡作为绑定的基础设备;
- 2块网卡必须选择相同网络模式(如均为桥接),否则属于不同网络域,无法实现绑定(绑定要求从设备在同一网络环境);
- 勾选「启动时连接」确保开机后网卡自动启用,无需手动激活。
步骤3:添加第二块网卡
操作 :重复步骤2,网络连接选择与第一块网卡相同的模式,完成后点击「确定」。
原因:双网卡绑定需要至少2块物理网卡作为从设备,一块为主、一块为备(主备模式),或共同承担流量(负载均衡模式),缺少第二块网卡无法实现高可用/负载均衡功能。
步骤4:开机验证网卡识别
操作:启动虚拟机,执行命令:
bash
nmcli device status # 查看类型为ethernet的设备名(如ens224、ens256)
命令含义:
nmcli:NetworkManager 的命令行工具,用于管理网络连接;device status:查看所有网络设备的状态(类型、名称、连接状态);
原因 :确认VMware添加的2块网卡已被系统识别(状态为disconnected或connected均可),若未识别需检查VMware网卡配置(是否启动时连接、网络模式是否正确)。
二、系统配置 bond0
核心原理铺垫
- bond0:虚拟网卡(对外提供IP,是系统与外部通信的"入口"),物理网卡不单独配置IP;
- 从设备:2块物理网卡(如ens224、ens256),仅作为bond0的"备份/负载"设备;
- 模式选择:
mode=active-backup(主备模式),同一时间仅1块网卡工作,故障时自动切换(无需交换机配置,适合高可用场景); miimon=1000:每1秒检测一次从设备状态(MII是网卡物理层检测机制),确保故障时快速切换。
步骤1:创建 bond0 虚拟网卡
操作:
bash
nmcli connection add type bond con-name bond0 ifname bond0 bond.options "mode=active-backup,miimon=1000"
命令含义:
connection add:创建新的网络连接;type bond:连接类型为bond(网卡绑定);con-name bond0:连接名称(用于nmcli管理,可自定义,建议与网卡名一致);ifname bond0:虚拟网卡的设备名(即bond0,对外可见的网卡名);bond.options "mode=active-backup,miimon=1000":bond绑定参数,指定主备模式和心跳检测间隔;
原因:创建虚拟网卡bond0作为绑定的"主设备",统一管理2块物理网卡,避免物理网卡单独暴露IP导致的网络混乱,同时通过参数配置绑定规则。
步骤2:绑定物理网卡到 bond0
操作:
bash
# 绑定第一块网卡(替换为实际网卡名,如ens224)
nmcli connection add type ethernet slave-type bond con-name bond0-port1 ifname ens224 master bond0
# 绑定第二块网卡(替换为实际网卡名,如ens256)
nmcli connection add type ethernet slave-type bond con-name bond0-port2 ifname ens256 master bond0
命令含义:
type ethernet:从设备是以太网类型(物理网卡);slave-type bond:指定该连接是bond的从设备;con-name bond0-port1:从设备连接名称(自定义,便于区分);ifname ens224:绑定的物理网卡设备名;master bond0:指定从设备的主设备是bond0;
原因:将物理网卡"归属"到bond0管理,让物理网卡成为bond0的附属设备,不单独承担网络通信,仅在主设备故障时切换或分担流量。
步骤3:配置 bond0 静态IP(指定10.0.0.130)
操作:
bash
nmcli connection modify bond0 \
ipv4.addresses '10.0.0.130/24' \ # 目标IP
ipv4.gateway '10.0.0.2' \ # 目标网关
ipv4.dns '10.0.0.2' \ # 目标DNS
ipv4.method manual \
connection.autoconnect yes
命令含义:
connection modify bond0:修改bond0的连接配置;ipv4.addresses '10.0.0.130/24':设置bond0的静态IP和子网掩码(/24表示255.255.255.0);ipv4.gateway '10.0.0.2':设置网关(跨网段通信的必经之路);ipv4.dns '10.0.0.2':设置DNS服务器(解析域名,如www.baidu.com);ipv4.method manual:IP获取方式为手动(静态IP,避免DHCP分配导致IP变动);connection.autoconnect yes:开机自动激活bond0连接,无需手动启动;
原因:bond0作为对外通信的虚拟网卡,必须配置IP、网关、DNS才能实现网络连通;静态IP确保设备IP固定,便于管理和访问(如服务器场景)。
步骤4:激活所有连接
操作:
bash
nmcli con up bond0-port1
nmcli con up bond0-port2
nmcli con up bond0
命令含义:
con up:激活指定的网络连接(con是connection的缩写);
原因:创建连接后默认处于未激活状态,需手动激活才能让配置生效;先激活从设备、再激活主设备,确保主设备启动时从设备已就绪,避免绑定失败。
三、绑定功能测试
测试1:基础连通性
操作:
bash
ping 10.0.0.2 -c 4 # ping网关
ping www.baidu.com -c 4 # ping外网(依赖DNS生效)
命令含义:
ping:测试网络连通性的工具(发送ICMP数据包,接收响应则表示连通);-c 4:指定发送4个数据包后停止(避免持续ping);
原因:- ping网关(10.0.0.2)验证内网连通性(bond0与网关是否能通信);
- ping外网(www.baidu.com)验证DNS解析和外网访问能力(确认网关和DNS配置正确);
- 若ping不通,说明IP、网关或DNS配置有误,需排查配置参数。
测试2:主备切换验证
操作:
- 持续 ping 网关:
ping 10.0.0.2; - 禁用主网卡:
nmcli device disconnect 主网卡名(如ens224); - 查看切换结果:
cat /proc/net/bonding/bond0 | grep "Active Slave"; - 恢复网卡:
nmcli device connect 主网卡名;
命令含义:
nmcli device disconnect 网卡名:断开指定网卡的连接(模拟网卡故障);cat /proc/net/bonding/bond0:查看bond0的详细绑定状态(系统内核维护的绑定信息文件);grep "Active Slave":过滤出当前活跃的从设备(主网卡);
原因:验证主备模式的核心功能------主网卡故障时,备网卡是否自动切换为活跃状态,且网络不中断(ping过程仅丢1-2包或不丢包),确保高可用生效。
四、网络环境还原步骤
核心原理
还原的本质是:删除bond0相关连接,解除物理网卡与bond0的绑定,重新为物理网卡配置独立IP,恢复单网卡工作模式。
步骤1:停止并删除bond0相关连接
操作:
bash
# 停用所有连接
nmcli con down bond0
nmcli con down bond0-port1
nmcli con down bond0-port2
# 删除bond0及从设备连接
nmcli con delete bond0
nmcli con delete bond0-port1
nmcli con delete bond0-port2
命令含义:
con down:停用连接(暂时关闭,配置保留);con delete:删除连接(彻底移除配置文件,无法恢复);
原因:先停用连接避免删除时出现"占用"错误,再彻底删除bond0相关配置,解除物理网卡与bond0的绑定关系。
步骤2:恢复物理网卡的独立配置(以ens224为例)
操作:
bash
nmcli connection add type ethernet con-name ens224 ifname ens224 \
ipv4.addresses '10.0.0.130/24' \
ipv4.gateway '10.0.0.2' \
ipv4.dns '10.0.0.2' \
ipv4.method manual
# 激活网卡
nmcli con up ens224
命令含义 :与配置bond0的IP命令类似,只是连接类型为独立以太网(type ethernet),无master参数(不归属任何bond设备);
原因:让物理网卡恢复独立工作状态,配置原bond0的IP(10.0.0.130),确保网络访问方式不变,无需修改其他设备的访问配置。
步骤3:验证还原结果
操作:
bash
ip addr show ens224 # 确认ens224已配置10.0.0.130
ping 10.0.0.2 -c 4 # 验证网络连通
命令含义:
ip addr show 网卡名:查看指定网卡的IP配置信息;
原因:确认物理网卡已成功配置IP,且网络连通正常,还原操作生效。
五、命令速查表(含核心含义)
| 操作 | 命令 | 核心含义 |
|---|---|---|
| 创建bond0 | nmcli con add type bond con-name bond0 ifname bond0 bond.options "mode=active-backup,miimon=1000" |
创建主备模式的bond0虚拟网卡,1秒心跳检测 |
| 绑定网卡1 | nmcli con add type ethernet slave-type bond con-name bond0-port1 ifname 网卡名 master bond0 |
将物理网卡作为从设备绑定到bond0 |
| 绑定网卡2 | nmcli con add type ethernet slave-type bond con-name bond0-port2 ifname 网卡名 master bond0 |
同上,绑定第二块物理网卡 |
| 配置IP | nmcli con modify bond0 ipv4.addresses '10.0.0.130/24' ipv4.gateway '10.0.0.2' ipv4.dns '10.0.0.2' |
给bond0配置静态IP、网关、DNS |
| 激活连接 | nmcli con up bond0-port1 && nmcli con up bond0-port2 && nmcli con up bond0 |
依次激活从设备和主设备,使配置生效 |
| 查看bond状态 | cat /proc/net/bonding/bond0 |
查看bond0绑定模式、活跃网卡、心跳间隔等详细信息 |
| 模拟网卡故障 | nmcli device disconnect 网卡名 |
断开指定网卡,测试主备切换 |
| 删除bond0 | nmcli con delete bond0 bond0-port1 bond0-port2 |
彻底删除bond0及从设备连接,解除绑定 |