Linux怎么配置多网卡负载均衡 Linux网卡Bonding与Team模式详解

月夜之吻

月夜之吻

2026-04-24

1010人浏览

原创

多数生产环境应选bond mode=4(802.3ad/lacp),因其在稳定性、交换机兼容性及内核支持成熟度上无明显短板;team仅在需自定义哈希策略、动态重配或聚合超4块网卡时才适用,否则增加运维复杂度。

linux怎么配置多网卡负载均衡 linux网卡bonding与team模式详解

直接说结论:多数生产环境该选 bond mode=4(802.3ad/LACP),不是因为它“高级”,而是它在稳定性、交换机兼容性、内核支持成熟度上没有明显短板;team 仅在需要自定义哈希策略、动态重配或聚合超 4 块网卡时才值得引入,否则徒增运维复杂度。

为什么 bond0 启不来?先查这三件事

90% 的绑定失败不是配置写错,而是底层没就绪:

  • lsmod | grep bonding 没输出 → 执行 modprobe bonding,并往 /etc/modules 追加 bonding 确保开机加载
  • ip link showeth0/eth1 状态是 DOWNNO-CARRIER → 先手动 ip link set eth0 up,确认物理链路连通
  • NetworkManager 正在接管网卡 → systemctl stop NetworkManager && systemctl disable NetworkManager,并在所有网卡配置文件中加 NM_CONTROLLED=no

别跳过这些,cat /proc/net/bonding/bond0 报 “No such file or directory” 就说明 bond0 接口根本没创建成功,此时调参数毫无意义。

bond mode=4 配置后流量不均衡?重点看 xmit_hash_policy 和交换机

mode=4 理论上能负载分担,但默认 xmit_hash_policy=layer2 只按 MAC 地址哈希 —— 同一服务器对同一目标 IP 的所有连接永远走同一条链路,看起来就是“只有一张卡在干活”。

  • 改哈希策略:在 BONDING_OPTS 中加入 xmit_hash_policy=layer3+4,让它按源/目的 IP + 端口组合计算哈希值
  • 交换机必须配成 LACP active 模式(不能是 passive),且所有参与端口加入同一个 LAG 组
  • 检查协商结果:cat /proc/net/bonding/bond0 中每块 slave 的 Port State 应为 0x3f(表示 LACP 成功握手),若为 0x1,说明根本没协商上

注意:改完 xmit_hash_policy 不需要重启网络服务,但必须先 ip link set bond0 downup 才会生效。

Go语言(Golang)Linux版
Go语言(Golang)Linux版

Go语言(Golang)Linux版适合在 Linux 环境中部署 Go 编译工具链,支持服务端开发、微服务、网络程序、容器化项目和自动化工具开发。

下载

team loadbalance 比 bond mode=4 慢?这不是 bug,是架构代价

team 的负载均衡能力确实更灵活(比如支持 tx_hash 组合 ["eth", "ipv4", "ipv6"]),但它把链路状态检测、哈希决策等逻辑全放在用户态 teamd 进程里处理,带来三个可测量的开销:

  • 故障切换慢约 150ms:team 切换依赖 teamd 收到 Netlink 事件再通知内核,而 bond 在内核态直接响应
  • CPU 占用高:满载时 team 占用率约 12%,bond 仅 5% —— 对 CPU 敏感的服务(如 DPDK、高频交易)需谨慎
  • 配置不向后兼容:nmcli 创建的 team 连接无法用传统 ifcfg 文件管理,容易和旧运维脚本冲突

如果你只是想让两块万兆卡跑满 20Gbps,bond mode=4 更稳;只有当你需要基于应用层特征(比如 HTTP Host 头)做分流,才该考虑 team 上层扩展。

别忽略 MTU 和双工模式的一致性

哪怕 bondteam 都配对了,只要其中一块网卡的 MTU 是 1500、另一块是 9000,或者一块是全双工、另一块是半双工,绑定接口就会频繁抖动甚至中断。

  • 统一设置:ethtool -s eth0 speed 10000 duplex full autoneg off mtu 1500,对所有 slave 网卡执行一遍
  • 验证:ethtool eth0 | grep -E "(Speed|Duplex|MTU)",确保输出完全一致
  • 绑定接口的 MTU 必须 ≤ 所有 slave 的最小 MTU,否则发包会失败

这个细节常被跳过,但它是跨厂商设备(比如 Cisco 交换机 + Intel 网卡 + Mellanox 网卡混用)中最隐蔽的单点故障源。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

linux

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

2023.06.21

2624

4

如何安装LINUX
如何安装LINUX

本站专题提供如何安装LINUX的相关教程文章,还有相关的下载、课程,大家可以免费体验。

2023.06.29

1623

10

linux find
linux find

find是linux命令,它将档案系统内符合 expression 的档案列出来。可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。find根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部分为 path,之后的是 expression。还有指DOS 命令 find,Excel 函数 find等。本站专题提供linux find相关教程文章,还有相关

2023.06.30

1268

5

linux修改文件名
linux修改文件名

本专题为大家提供linux修改文件名相关的文章,这些文章可以帮助用户快速轻松地完成文件名的修改工作,大家可以免费体验。

2023.07.05

2588

7

linux系统安装教程
linux系统安装教程

linux系统是一种可以免费使用,自由传播,多用户、多任务、多线程、多CPU的操作系统。本专题提供linux系统安装教程相关的文章,大家可以免费体验。

2023.07.06

2347

7

linux查看文件夹大小
linux查看文件夹大小

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。linux怎么查看文件夹大小呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.20

1613

8

linux查看ip命令
linux查看ip命令

本专题为大家提供linux查看ip命令相关文章内容,感兴趣的朋友可以免费下载体验试试。

2023.07.20

1204

4

linux查看cpu使用率
linux查看cpu使用率

在linux的系统维护中,可能需要经常查看cpu使用率,分析系统整体的运行情况。本专题为大家带来了linux查看cpu使用率的相关文章,感兴趣的朋友千万不要错过了。

2023.07.25

1375

6

linux查找文件命令
linux查找文件命令

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.31

208

3

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
phpMyAdmin 安装文档
phpMyAdmin 安装文档

共0课时 | 0人学习

Apifox下载与安装手册
Apifox下载与安装手册

共0课时 | 0人学习

安装 Xdebug 并配置 phpstorm
安装 Xdebug 并配置 phpstorm

共1课时 | 125人学习