Linux 各类bond和功能

news/2025/3/31 12:16:25/文章来源:https://www.cnblogs.com/migrator/p/18797864

参考:

DeepSeek V3


在 Linux 中,bond0bond6 代表了不同的网络绑定(Bonding)模式,用于将多个物理网卡(NIC)聚合为一个逻辑接口,以提高带宽、冗余或负载均衡。以下是各模式的详细解释、优缺点、适用场景以及交换机支持要求。


1. Bonding 模式概览

Linux 的 bonding 驱动支持 7 种模式(mode 0mode 6),每种模式的名称(如 bond0)是用户自定义的,实际效果由 mode 参数决定。

模式 名称 特点 交换机支持要求
0 balance-rr 轮询(Round-Robin)负载均衡 必须支持
1 active-backup 主备模式,只有一个网卡活跃 无需支持
2 balance-xor 基于哈希的负载均衡(源/目的 MAC+IP+端口) 必须支持
3 broadcast 所有流量在所有网卡广播 必须支持
4 802.3ad LACP 动态链路聚合(需交换机配合) 必须支持 LACP
5 balance-tlb 发送负载均衡(基于当前负载),接收通过主网卡 无需支持
6 balance-alb 自适应负载均衡(发送和接收均负载均衡,需 ARP 协商) 无需支持

2. 各模式详解

Mode 0: balance-rr(轮询负载均衡)

  • 原理:数据包依次通过每个网卡发送(轮询)。
  • 优点
    • 提高吞吐量(多网卡带宽叠加)。
  • 缺点
    • 数据包可能乱序,某些协议(如 TCP)性能下降。
    • 必须交换机支持链路聚合(静态或动态)。
  • 适用场景
    • 需要最大化带宽且交换机支持静态聚合(如视频流服务器)。
  • 交换机支持:必须配置静态链路聚合(如 Cisco 的 on 模式或华为的 manual 模式)。

Mode 1: active-backup(主备模式)

  • 原理:只有一个网卡活跃,其他网卡作为备份。
  • 优点
    • 高可用性,故障切换快(无需交换机支持)。
  • 缺点
    • 带宽不叠加。
  • 适用场景
    • 对冗余性要求高但带宽需求不高的场景(如数据库服务器)。
  • 交换机支持:无需特殊配置。

Mode 2: balance-xor(哈希负载均衡)

  • 原理:根据哈希算法(源/目的 MAC+IP+端口)选择网卡。
  • 优点
    • 避免数据包乱序,适合 TCP。
  • 缺点
    • 单条流的带宽受限于单个网卡。
  • 适用场景
    • 需要负载均衡且交换机支持静态聚合(如 Web 服务器)。
  • 交换机支持:必须配置静态链路聚合。

Mode 3: broadcast(广播模式)

  • 原理:所有数据包在所有网卡广播。
  • 优点
    • 极端冗余(所有网卡传输相同数据)。
  • 缺点
    • 带宽浪费,网络拥堵。
  • 适用场景
    • 极少使用(如金融级高冗余需求)。
  • 交换机支持:必须支持广播聚合。

Mode 4: 802.3ad(LACP 动态聚合)

  • 原理:通过 LACP 协议动态协商聚合链路。
  • 优点
    • 带宽叠加,动态管理(自动添加/移除链路)。
    • 高可用性和负载均衡。
  • 缺点
    • 配置复杂,需交换机支持 LACP。
  • 适用场景
    • 企业级高带宽、高可用场景(如虚拟化宿主机)。
  • 交换机支持:必须启用 LACP(如 Cisco 的 active 模式)。

Mode 5: balance-tlb(发送负载均衡)

  • 原理:根据当前负载分配发送流量,接收通过主网卡。
  • 优点
    • 无需交换机支持。
    • 发送流量负载均衡。
  • 缺点
    • 接收流量不均衡。
  • 适用场景
    • 上行流量远大于下行流量的场景(如文件服务器)。
  • 交换机支持:无需支持。

Mode 6: balance-alb(自适应负载均衡)

  • 原理:通过 ARP 协商实现发送和接收负载均衡。
  • 优点
    • 无需交换机支持。
    • 发送和接收均负载均衡。
  • 缺点
    • ARP 协商可能影响性能。
  • 适用场景
    • 普通负载均衡需求且无法配置交换机(如小型办公网络)。
  • 交换机支持:无需支持。

3. 如何选择 Bonding 模式?

需求 推荐模式
最大化带宽 + 交换机支持 LACP mode 4 (802.3ad)
最大化带宽 + 交换机不支持 LACP mode 0 (balance-rr)
高可用性(主备) mode 1 (active-backup)
负载均衡 + 无需交换机支持 mode 6 (balance-alb)
发送流量负载均衡 mode 5 (balance-tlb)

4. 交换机支持总结

  • 必须支持的模式:
    • mode 0mode 2mode 3mode 4(需 LACP)。
  • 无需支持的模式:
    • mode 1mode 5mode 6

5. 配置示例

mode 4 (802.3ad) 为例:

# 加载 bonding 模块
modprobe bonding mode=4 miimon=100 lacp_rate=fast# 创建 bond0 接口
ip link add bond0 type bond
ip link set bond0 type bond mode 4 miimon 100# 添加物理网卡到 bond0
ip link set eth0 master bond0
ip link set eth1 master bond0# 启用 bond0
ip link set bond0 up

6. 注意事项

  1. Miimon:建议设置 miimon=100(毫秒)以检测链路状态。
  2. LACP 速率lacp_rate=fast(1秒)或 slow(30秒)。
  3. 性能测试:实际环境中测试带宽和故障切换时间。

通过合理选择 bonding 模式,可以显著提升网络性能和可靠性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/907108.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Vue3封装支持Base64导出的电子签名组件

效果图准备工作 组件内用到elementPlus,vue-esign组件,使用前提前安装好。组件代码 <template><!-- 签名容器 --><div class="sign-container" ><div class="sign-preview" :class="[sizeClass, { has-sign: base64Img }]&quo…

产品经理研读:Agent的九种设计模式(图解+代码)

资料来源:火山引擎-开发者社区 引言 上周五我在一个社群里做了一次分享,题目是《从 YC 项目看 AI 趋势以及 AI agent 开发工具类产品该如何设计》,收到了大家不错的反馈,这篇文章和大家详细讲讲分享中提到的 Agent设计模式 1.Agent 的九种设计模式。 先来一张图镇楼,欢迎大…

获取字节火山DeepSeek系列 API完整教程及超多实用玩法!

资料来源:火山引擎-开发者社区原文首发在“Equity AI”公众号,内容经由“WaytoAGI社区整理汇总”,本篇包含了火山DeepSeek API使用的几种方式:飞书多维表格调用,Coze智能体调用,浏览器插件调用。快薅羊毛用起来吧!发现火山方舟大模型服务平台的模型服务计费文档悄咪咪的…

MCR101-ASEMI电源控制电路专用MCR101

MCR101-ASEMI电源控制电路专用MCR101编辑:LL MCR101-ASEMI电源控制电路专用MCR101 型号:MCR101 品牌:ASEMI 封装:TO-92 阻断电压:600V~800V 通态电流:1.0A 类型:单向可控硅 工作温度:-40℃~150℃ MCR101在工业自动化、智能家居和能源管理领域,"精准控制"始终…

IDEA中如何创建scala的对象

1、创建项目 打开Intellij IDEA,点击“Create New Project”。 选择“Java”作为Language,选择“Maven”作为Build System,选择JDK版本; 输入GroupId的名称,一般是com.xxx; 设置完成后点击“Create”。 2、配置Maven File -> Settings -> Build,Execution,Deploym…

fastjson-1.2.68-bypass

fastjson-1.2.68 绕过 在 1.2.47 的利用 mappings 缓存恶意类绕过 autoType 修复后,fastjson 又陆续爆出来了一些黑名单的绕过方式。直到 1.2.68 又有了新的思路去绕过 autoType 安全机制 我们先来看看 fastjson1.2.68 又引入了哪些安全机制 1.2.68 引入了一个新的安全机制 sa…

【日记】感觉沉着冷静是很难得的品质(1200 字)

正文今天不太忙。居然看了一半时间的书,而且居然从零看了一半多了。昨天晚上,一个偶然的原因,看了六层楼跟别人聊天的视频。其实上班之后已经蛮久都没有看他了,时间真的很稀缺。视频中提到了他写的书。他本身表达能力就很好,我想着书应该也不差,就下了一本电子版。刚开始…

Supergateway:MCP服务器的远程调试与集成工具

Supergateway 是一款专为 MCP(Model Context Protocol)服务器设计的远程调试与集成工具,通过 SSE(Server-Sent Events)或 WebSocket(WS)协议实现基于 stdio 的服务器与客户端的高效通信。以下是其核心功能及使用场景的详细解析:核心功能多协议支持支持 SSE 和 WebSocke…

怎么办?听说Windows远程桌面要撤销?解决办法还真有!

3月11日微软正式宣布,将在2025年5月27日关闭并从Microsoft Store中移除Windows远程桌面应用程序,用户将无法通过旧版远程桌面访问这些功能。微软公司此次决定下架Microsoft远程桌面应用,主要是为了推广功能更为强大的Windows App,这种23年上线的解决方案提供了更加统一的界…

电脑文件同步软件,想要备份电脑文方法有哪些?

备份电脑文件的方法有多种,可根据需求选择适合的方案。以下是常见的备份方式及工具推荐,涵盖不同场景:一、使用系统内置工具 Windows 文件历史记录 方法: 连接外部硬盘或网络驱动器。 搜索「文件历史记录」→ 选择驱动器 → 开启自动备份。 可设置备份频率(如每小时)。 二…

我的家庭实验室服务器集群硬件清单

概述 之前有热心读者想要了解我的家庭实验室服务器集群的硬件配置清单. 所以有这篇文章.📝声明: 不是广告, 不是推广, 不是软广.先放2张照片:📝声明: 确实没有理线天赋, 这已经是我理线的极限了, 求轻喷.😂硬件包括:网络一图左下亮绿光的: 瑞莎 Radxa E20C 一图中下: 兮克…

python+pytest+loguru+allure日志封装

一、日志类封装from io import StringIO import sys import os from loguru import logger sys.path.append((os.path.abspath(os.path.join(os.path.dirname(__file__), ../)))) project_path = os.path.dirname(os.path.join(os.path.dirname(__file__))) log_path = os.path…