服务器网卡绑定bond,多网卡负载与冗余
服务器网卡绑定bond,就是把两块或多块物理网卡合并成一个逻辑网卡,让它们一起工作。
对零基础用户来说,最直接的价值有两个:一块网卡坏了业务不断线,也就是冗余;
多块网卡同时传输流量,也就是负载。
本文按可照做的顺序讲清模式选择、配置步骤和验证方法。
先确认场景和模式,别急着敲命令
网卡绑定不是随便绑上就能用,先看交换机支持哪种模式。
常见模式里,mode=1(active-backup)只做冗余,同一时间只有一块网卡工作,配置最简单,交换机不需要额外设置。mode=4(802.3ad)做负载均衡,需要交换机把对应端口配置成链路聚合(LACP),两端匹配才能正常。
如果你的服务器只有普通接入交换机、无法改配置,优先选 mode=1;
如果机房交换机支持 LACP 并且你确实需要更高带宽,再考虑 mode=4。
判断标准很简单:不确定交换机是否支持 LACP 时,先用 mode=1 保证冗余。
准备条件:
- 至少两块物理网卡,例如
ens33、ens34,用ip link确认名称。 - 服务器有 root 或 sudo 权限。
- 知道要绑定的 IP、网关、DNS,建议先记录原配置。
- 如果走远程 SSH,尽量在带外管理或本地终端操作,避免配错后失联。
用 nmcli 配置 bond 的完整步骤
RHEL、CentOS、Rocky、AlmaLinux 等系统默认带 NetworkManager,用 nmcli 最省事。
以下示例把 ens33、ens34 绑定成 bond0,使用 mode=1,IP 为 192.168.1.100/24。
第一步,创建 bond 接口:
nmcli con add type bond con-name bond0 ifname bond0 mode active-backup
nmcli con mod bond0 ipv4.addresses 192.168.1.100/24
nmcli con mod bond0 ipv4.gateway 192.168.1.1
nmcli con mod bond0 ipv4.dns 223.5.5.5
nmcli con mod bond0 ipv4.method manual
第二步,把两块物理网卡加入 bond:
nmcli con add type bond-slave ifname ens33 master bond0
nmcli con add type bond-slave ifname ens34 master bond0
第三步,启动并设为开机自启:
nmcli con up bond0
nmcli con up bond-slave-ens33
nmcli con up bond-slave-ens34
nmcli con mod bond0 connection.autoconnect yes
如果改用 mode=4,把第一条命令里的 mode active-backup 换成 mode 802.3ad,同时交换机侧要配置 LACP。
配置文件方式和关键参数
不使用 NetworkManager 或习惯手写配置的环境,可以在 /etc/sysconfig/network-scripts/ 下创建 ifcfg-bond0,内容大致如下:
DEVICE=bond0
TYPE=Bond
BONDING_MASTER=yes
BOOTPROTO=none
IPADDR=192.168.1.100
PREFIX=24
GATEWAY=192.168.1.1
ONBOOT=yes
BONDING_OPTS="mode=1 miimon=100"
物理网卡的 ifcfg-ens33、ifcfg-ens34 里则设置 MASTER=bond0 和 SLAVE=yes,并去掉各自的 IP。miimon=100 表示每 100 毫秒检测一次链路状态,是判断网卡是否掉线的常用参数。
改完后重启网络服务,例如 systemctl restart network 或 nmcli con reload,具体命令随系统版本不同,建议以实际环境为准。
配置完怎么验证是否生效
验证分三层:接口状态、绑定状态、真实连通性。
先看 bond 接口是否起来:
ip addr show bond0
cat /proc/net/bonding/bond0
在 /proc/net/bonding/bond0 输出里,重点看 Bonding Mode 是否为你设置的模式,以及 Currently Active Slave 指向哪块网卡。
mode=1 下只显示一块活动网卡属于正常现象。
再做连通性测试:
ping -c 4 192.168.1.1
ping -c 4 223.5.5.5
有条件的话做断网演练:拔掉当前活动网卡对应的网线,观察 Currently Active Slave 是否切换到另一块,同时持续 ping 网关应只有少量丢包或不断线。
这一步能真实验证冗余是否有效。
容易踩的坑和常见报错
配置 bond 时,下面几个问题出现频率最高:
- 两块网卡各自还留着 IP:这会导致路由混乱,从属网卡必须去掉 IP,只保留 bond0 的地址。
- mode=4 交换机没配 LACP:表现为 bond 起不来或时通时断,需要两端配置一致。
- 远程操作直接断网:改网络配置前先确认带外管理可用,否则配错后无法回连。
- 网卡名写错:
ens33和enp3s0这类名称容易混淆,操作前用ip link核对。 - 改了配置没重载:修改后要重新加载连接或重启网络服务,否则新配置不生效。
如果 nmcli con up 报设备未托管,检查 NetworkManager 是否运行,以及对应网卡是否被其他网络管理工具接管。
常见疑问
绑定后带宽会翻倍吗?
不一定。mode=1 只做冗余不增加带宽;mode=4 在交换机支持且多连接并发时才可能提升总吞吐,单个连接通常仍受单网卡速率限制。
两块网卡型号不同能绑定吗?
一般可以,但建议尽量同型号同速率,避免兼容性和性能差异带来的问题。
bond 和 team 该选哪个?
bond 兼容性好、资料多,适合大多数场景;team 是较新的方案,功能更灵活但配置相对复杂。普通服务器优先用 bond 即可。
服务器网卡绑定bond 的核心就是选对模式、两端配置一致、动手前做好回连准备。
按本文步骤配完并用断网测试验证一次,多网卡负载与冗余才算真正落地。