
Linux网卡绑定(Bonding)本质是把多块物理网卡聚合成一个逻辑网卡(如 bond0),实现高可用或带宽叠加。核心不在于“加硬件”,而在于配置协同:内核模块加载、网络脚本对齐、交换机配合(部分模式必需)。
确认前提与基础检查
先确保系统支持 bonding:
- 运行 modinfo bonding,有输出说明内核已内置支持;无返回需检查是否禁用或需重新编译
- 检查命令是否存在:ifenslave(旧版 CentOS/RHEL 6/7 必需,新版 systemd 系统中常由内核自动管理)
- 用 ip link show 或 ls /sys/class/net/ 查看当前网卡名(注意:CentOS 7+ 多为 ens33、enp0s3 等可预测命名,非统一 eth0)
- 确认两块待绑定网卡处于同一网段、连接同一交换机(mode=0/2/4 等负载类模式要求交换机端口聚合)
配置三要素:bond 主配置 + 物理网卡从属 + 模块参数
以 CentOS/RHEL 7/8 为例(配置文件位于 /etc/sysconfig/network-scripts/):
-
创建 bond0 主配置(ifcfg-bond0):
DEVICE=bond0
TYPE=Bond
NAME=bond0
BOOTPROTO=static
IPADDR=192.168.10.100
NETMASK=255.255.255.0
GATEWAY=192.168.10.1
ONBOOT=yes
BONDING_OPTS="mode=1 miimon=100"
(mode=1 表示主备,最稳妥;miimon=100 表示每 100ms 检测链路状态)
-
设置物理网卡为 slave(如 ifcfg-ens33 和 ifcfg-ens37):
DEVICE=ens33
TYPE=Ethernet
BOOTPROTO=none
ONBOOT=yes
MASTER=bond0
SLAVE=yes
USERCTL=no
-
声明 bonding 模块参数(推荐写入 /etc/modprobe.d/bonding.conf):
alias bond0 bonding
options bonding mode=1 miimon=100 fail_over_mac=active
选择合适绑定模式的关键点
不同 mode 对应不同场景,不能只看“是否负载”:
-
mode=1(active-backup):主备切换,无需交换机配合,故障恢复快,适合大多数高可用需求
-
mode=4(802.3ad / LACP):真正聚合带宽(如双千兆变近两倍吞吐),但必须交换机开启 LACP 并配置聚合组,否则无法协商成功
-
mode=0(round-robin):简单轮询,易导致乱序,一般仅用于测试或特定内网环境
-
mode=6(balance-alb):自适应负载均衡,收发都分摊,无需交换机支持,但依赖网卡驱动支持 ethtool
启用与验证步骤
完成配置后执行:
- 停用 NetworkManager(避免干扰):systemctl stop NetworkManager && systemctl disable NetworkManager
- 加载模块:modprobe bonding(若已存在可跳过)
- 重启网络服务:systemctl restart network(RHEL/CentOS)或 nmcli connection reload && nmcli connection up bond0(若用 NetworkManager 管理)
- 验证状态:
cat /proc/net/bonding/bond0 —— 查看当前活动接口、模式、链路状态
ip addr show bond0 —— 确认 IP 是否生效
ethtool bond0 —— 查看聚合速率和双工状态
- 模拟故障测试:ip link set ens33 down,观察 bond0 是否仍通、active slave 是否自动切换
实际部署时建议从 mode=1 开始,稳定后再按需升级到 mode=4;虚拟机中测试记得关闭网卡前先断开 VMware/VirtualBox 的“连接”选项,而非仅 ifdown,否则可能失联。
以上就是Linux网卡绑定怎么做_多网卡高可用配置说明【指导】的详细内容,更多请关注php中文网其它相关文章!