网络链路聚合

news2024/12/29 9:55:20

这里写目录标题

  • 链路聚合
    • 什么是链路聚合?为什么要进行链路聚合?
    • Linux网卡bonding的7种模式
      • 模式一:balance-rr 轮询均衡模式
      • 模式二:active-backup 主备策略模式
      • 模式三:balance-xor 平衡策略
      • 模式四:broadcast 广播策略
      • 模式五:802.3ad
      • 模式六:balance-tlb 适配器传输负载均衡
      • 模式七:balance-alb 适配器适应性负载均衡
    • Linux配置Bonding模式
    • 交换机链路聚合(Link Aggregation,LA)
      • Link Aggregation
      • Link Aggregation Control Protocol (LACP)
        • 静态
        • 动态
    • Linux网卡bonding与交换机配置关系
    • Mellanox交换机配置链路聚合
  • 参考

链路聚合

什么是链路聚合?为什么要进行链路聚合?

链路聚合是一种网络技术,它将多个物理链路(如以太网、无线电连接或其他类型的连接)捆绑在一起形成一个逻辑链路,从而增加网络带宽和容错性。

在链路聚合中,多个物理链路被组合成一个逻辑链路,这个逻辑链路对于网络上的设备来说就像是一个单一的高带宽链路。这种技术可以帮助提高网络的吞吐量和可靠性,因为当一个物理链路出现故障时,其他链路可以继续正常工作,从而避免因单点故障而导致整个网络瘫痪。

链路聚合还可以使网络管理更加简单,因为网络管理员只需要管理一个逻辑链路,而不是多个物理链路。此外,链路聚合可以提高网络的负载均衡能力,因为它可以将网络流量分散到多个物理链路上,从而减轻单个链路的负载压力。

Linux网卡bonding的7种模式

bonding是linux内核自带的模块,它能将Linux系统的多个网卡绑定为一个逻辑端口,同时对外提供一个统一的IP地址,目前bonding模块的工作模式共有七种mode(0~6)。

模式一:balance-rr 轮询均衡模式

mode=0 ,(balance-rr) Round-robin policy 轮询均衡模式

  • 所有链路处于负载均衡状态,轮循环方式(即依次传输:第1个包走eth0,下一个包就走eth1….一直循环下去,直到最后一个传输完毕)往每条链路发送报文,基于per packet方式发送。服务上ping 一个相同地址:1.1.1.1 双网卡的两个网卡都有流量发出。负载到两条链路上,说明是基于per packet方式 ,进行轮询发送。

  • 这模式的特点是提供负载平衡(增加了带宽),同时支持容错能力,当有链路出问题,会把流量切换到正常的链路上。

模式二:active-backup 主备策略模式

mode=1, (active-backup) Active-backup policy(主备策略模式)

  • 只有一个设备处于活动状态,当一个宕掉另一个马上由备份转换为主设备。mac地址是外部可见得,从外面看来,bond的MAC地址是唯一的,以避免switch(交换机)发生混乱。此模式只提供了容错能力;但是它的资源利用率较低,只有一个接口处于工作状态,资源利用率为1/n。
  • 这种模式接入不需要交换机端支持,随便怎么接入都行。

模式三:balance-xor 平衡策略

mode=2,(balance-xor) XOR policy(根据hash的平衡策略)

  • 该模式将限定流量,以保证到达特定对端的流量总是从同一个接口上发出。既然目的地是通过MAC地址来决定的,因此该模式在“本地”网络配置下可以工作得很好。如果所有流量是通过单个路由器(比如 “网关”型网络配置,只有一个网关时,源和目标mac都固定了,那么这个算法算出的线路就一直是同一条,那么这种模式就没有多少意义了。),那该模式就不是最好的选择。和balance-rr一样,交换机端口需要能配置为“port channel”。这模式是通过源和目标mac做hash因子来做xor算法来选路的。此模式提供负载平衡和容错能力。
  • 基于指定的传输HASH策略传输数据包。默认hash算法是: [(source MAC address XOR’d with destination MAC address) modulo slave count]。(XOR:异或),算法可以更改。

模式四:broadcast 广播策略

mode=3,(broadcast)broadcast policy(广播策略)

  • 这种模式的特点是在每个slave接口上传输每个数据包,当有对端交换机失效,我们感觉不到任何downtime,但此法过于浪费资源;但是这种模式有很好的容错机制,适用于金融行业,因为他们需要高可靠性的网络,不允许出现任何问题。

模式五:802.3ad

mode=4,(802.3ad)IEEE 802.3ad Dynamic link aggregation(IEEE 802.3ad 动态链接聚合)

  • 创建一个聚合组,它们共享同样的速率和双工设定。根据802.3ad规范将多个slave工作在同一个激活的聚合体下。外出流量的slave选择是基于传输hash策略,该策略可以通过xmit_hash_policy选项从缺省的XOR策略改变到其他策略。需要注意的 是,并不是所有的传输策略都是802.3ad适应的,尤其考虑到在802.3ad标准43.2.4章节提及的包乱序问题。不同的实现可能会有不同的适应性。
  • 必要条件:
    • 条件1:ethtool支持获取每个slave的速率和双工设定
    • 条件2:switch(交换机)支持IEEE802.3ad Dynamic link aggregation
    • 条件3:大多数switch(交换机)需要经过特定配置才能支持802.3ad模式

模式六:balance-tlb 适配器传输负载均衡

mode=5,(balance-tlb)Adaptive transmit load balancing(适配器传输负载均衡)

  • 不需要任何特别的switch(交换机)支持的通道bonding。在每个slave上根据当前的负载(根据速度计算)分配外出流量。如果正在接受数据的slave出故障了,另一个slave接管失败的slave的MAC地址。
  • 该模式的必要条件:ethtool支持获取每个slave的速率,mode6模式下无需配置交换机,因为做bonding的这两块网卡是使用不同的MAC地址。

模式七:balance-alb 适配器适应性负载均衡

mode=6,(balance-alb)Adaptive load balancing(适配器适应性负载均衡)

  • 该模式包含了balance-tlb模式,同时加上针对IPV4流量的接收负载均衡(receiveload balance, rlb),而且不需要任何switch(交换机)的支持。交换机上也是可见多个网卡的MAC,不需要做链路聚合配置。

  • 必要条件:

    • 条件1:ethtool支持获取每个slave的速率;
    • 条件2:底层驱动支持设置某个设备的硬件地址,从而使得总是有个slave(curr_active_slave)使用bond的硬件地址,同时保证每个 bond 中的slave都有一个唯一的硬件地址。

Linux配置Bonding模式

/etc/netplan/bond-config.yaml

network:
  version: 2
  ethernets:
    ens4f0np0:
      addresses: []
      dhcp4: no
      optional: true
    ens4f1np1:
      addresses: []
      dhcp4: no
      optional: true
  bonds:
    bond0:
      interfaces:
        - ens4f0np0
        - ens4f1np1
      parameters:
        mode: 802.3ad
        mii-monitor-interval: 100
      addresses:
        - "192.168.12.5/24"
      gateway4: "192.168.12.1"

交换机链路聚合(Link Aggregation,LA)

Link Aggregation

不同厂商的交换机在端口聚合(Port Aggregation,PA)方面使用不同的术语。例如,Cisco使用EtherChannel,Brocade使用Brocade LAG,而IEEE 802.3ad LACP(Link Aggregation Control Protocol)则是一种基于标准的协议,它在2008年被转入IEEE 802.1ax标准中。LACP可以动态配置端口聚合,而且不依赖于任何特定的厂商,因此大多数以太网交换机都支持该协议。这些实现的目标都是一致的,即将两个或多个端口绑定在一起,作为一个高带宽的逻辑端口,以提高链路速度、冗余性、弹性和负载均衡性。

从技术上来说,我们可以在交换机之间使用多个端口创建并行的trunk链路,但生成树协议(STP)会将其视为环路,并关闭所有可能造成环路的链接。而端口聚合则生成一个单一的逻辑链路,不会导致环路问题,并可以作为Access Port(连接主机)或Trunk Port(承载多个VLAN流量)使用。

Link Aggregation Control Protocol (LACP)

LACP 是通过向所有启用LACP协议的链路发送LACPDU Frame来工作的,如果发现链路另一端的设备也启用了LACP,LACP将独自在同一条链路上发送Frame,使得两者能够发现它们之间的多条链路,并将它们合并成单条逻辑链路。

LACP的模式分为静态和动态,动态又分为主动和被动。

静态

mode on,手动强制模式:

不发送也不接收LACP协商报文,交换机物理端口被强制捆绑到etherchannel,数据包根据聚合口负载均衡模式在多个物理口上传输。一般默认的为基于包的负载均衡,即在多个网口之间轮询发送数据包。使用这种聚合模式时,对端也必须是mode on,强制形成etherchannel。

动态

  • active,主动协商模式:

交换机聚合口主动发出LACPDU报文,与对端符合802.3ad规范的动态聚合口主动协商。

一般推荐使用主动模式。

  • passive,被动协商模式:

交换机聚合口只接收LACPDU报文,被动与对端符合802.3ad规范的动态聚合口进行协商。

Linux网卡bonding与交换机配置关系

bonding模式交换机配置
mode=0,balance-rr 轮询均衡模式LACP mode on 强行链路聚合
mode=1,active-backup 主备模式无特殊配置
mode=2,balance=xor,hash均衡模式LACP mode on 强行链路聚合
mode=3,broadcast 广播模式LACP mode on 强行链路聚合
mode=4,ieee802.3ad 动态链路聚合LACP动态协商,建议主动模式
mode=5,balance-tlb 适配器发送负载均衡无特殊配置
mode=6,balance-alb 适配器收发负载均衡无特殊配置

Mellanox交换机配置链路聚合

在这里插入图片描述

链路聚合连接示意图
#登陆
enable
config t

interface port-channel 1
exit
lacp

interface ethernet 1/8
channel-group 1 mode active
exit

interface ethernet 1/7
channel-group 1 mode active
exit

interface port-channel 2
exit
lacp

interface ethernet 1/1
channel-group 2 mode active
exit
interface ethernet 1/2
channel-group 2 mode active

参考

Link Aggregation Group (LAG) - Onyx v3.8.2110 - NVIDIA Networking Docs Mellanox交换机链路聚合配置方式。

BlueField Link Aggregation - NVIDIA Networking Docs — BlueField Link Aggregation - NVIDIA Networking Docs Mellanox网卡链路聚合配置方式。

HowTo Configure LACP on Mellanox Switches (nvidia.com) Mellanox交换机链路聚合配置示例。

以太网链路聚合控制协议(LACP)(链路聚合控制协议:将多个端口虚机成一个逻辑端口来提高链路速度, Active/Active 模式) - SammyLiu - 博客园 (cnblogs.com)

linux网卡聚合及链路聚合 - 白色的番茄 - 博客园 (cnblogs.com)

交换机链路聚合与Linux的bond模式对照 - 知乎 (zhihu.com)

NVIDIA Mellanox 交换机 Onyx 配置 L2 MLAG,基础案例-赛诺信致软件技术(北京)有限公司 (infohpc.com)

交换机链路聚合模式说明 - sxy-cloud - 博客园 (cnblogs.com)

交换技术链路聚合配置 - 知乎 (zhihu.com)

Linux下双网卡绑定七种模式 多网卡的7种bond模式原理- 华为 (huawei.com)

linux—高级网络配置:链路聚合_liunx做链路聚合命令_一只胖橘猫的博客-CSDN博客


🥯
🥚
🍝

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【python】枚举的基本使用,及如何实现枚举属性的自增长

▒ 目录 ▒ 🛫 问题描述环境 1️⃣ 枚举的基本使用自定义枚举成员的值枚举值唯一:unique枚举成员的别名:property枚举成员的元数据 2️⃣ 实现枚举属性的自增长python3.6python3.5.2python2不支持enum模块 🛬 结论📖 参…

智慧医疗救护车数据采集、远程管理物联网方案-5G工业路由器应用

随着5G通信技术发展成熟,逐渐普遍应用于物联网中,救护车是医疗中不可缺少的部分,在救护车的物联网中具备车辆定位、数据采集、在线传输、远程监控等功能,5G工业路由器需要对救护车提供全程联网,实现智慧医疗的信息化、…

【JUC进阶】08. 重量级锁

目录 1、前言 2、重量级锁 3、数据结构和控制流程 3.1、Monitor 对象 3.2、控制流程 4、性能分析 5、同其他锁的对比 1、前言 前面我们介绍了偏向锁,轻量级锁,自旋锁相关知识。初次之外,锁升级过程还会涉及到重量级锁。重量级锁是并发…

基于Java珠宝首饰交易平台设计实现(源码+lw+部署文档+讲解等)

博主介绍:✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专…

新品预告——旗舰级DG4Pros最详技术解析及应用方案介绍

旗舰级DG4Pros RIY-DG4Pros是目前睿铂性能指标最高的一款全画幅倾斜摄影相机,其核心光学组件部分由睿铂结合多年来的用户反馈与对倾斜摄影技术的探索成果,完全自主研发设计,技术水平领先于市面同类产品。相机镜头内置双高斯结构和超低色散非…

Spring Boot 中的 Type-safe Configuration Properties:原理、用法与示例

Spring Boot 中的 Type-safe Configuration Properties:原理、用法与示例 前言 Spring Boot 是一个快速开发 Spring 应用程序的框架,它提供了很多有用的功能和特性。其中,Type-safe Configuration Properties 是一个常用的功能,…

基于STL的演讲比赛流程管理

比赛规则: 学校举行一场演讲比赛,共有12个人参加。比赛共两轮,第一轮为淘汰赛,第二轮为决赛。每名选手都有对应的编号,如10001~10012 比赛方式:分组比赛,每组6个人; 第一轮分为两个小组,整体按…

python: more Layer Architecture and its Implementation in Python and mysql 8.0

mysql 8.0 drop table DuStudentList;#学生表create table DuStudentList (StudentId INT NOT NULL AUTO_INCREMENT comment主键id, #自动增加,StudentName nvarchar(50) comment学生姓名,StudentNO varchar(50) comment学号, #学号StudentBirthday datet…

单片机学习12-串口通信

目录 串口通信实验 通信的基本概念 串行通信与并行通信 异步通信与同步通信 单工、半双工与全双工通信 通信速率(比特率) 单片机串口介绍 串口通信简介 串口相关寄存器 串口工作方式 方式 0 方式 1 方式 2 和方式 3 串口的使用方法 硬件设计…

基于matlab使用形态操作对视频流中的对象进行计数(附源码)

一、前言 此示例演示如何使用形态操作对视频流中的对象进行计数 输入视频流包含订书钉的图像。在此示例中,您使用平顶形态操作来消除不均匀的照明,并使用打开形态操作来消除订书钉之间的间隙。然后,将图像转换为二进制,对每个帧…

【Java】网络通信基础、协议分层及封装分用

IP地址:端口号概念格式 协议五元组协议分层TCP/IP五层模型 封装和分用 网络互连的目的是进行网络通信,也就是网络数据传输,更具体一点,是网络主机中的不同进程间基于网络来传输数据。 IP地址:端口号 概念 ip地址表示…

数据库监控与调优【十七】—— 表结构设计优化

表结构设计优化 第一范式(1NF) 字段具有原子性,即数据库的每一个字段都是不可分割的原子数据项,不能是集合、数组、记录等非原子数据项 当实体中的某个属性有多个值时,必须拆分为不同的属性 例子: 如图…

23.6.23

1.整理用户相关的指令、整理磁盘相关的指令 (1)用户相关 创建用户:sudo adduser 用户名 给新用户添加sudo权限:sudo vim /etc/sudoers 添加后wq!强制退出 删除用户:sudo userdel (-r&#x…

tomcat环境部署

目录 一、安装jdk 1、关闭防火墙,将安装 Tomcat 所需软件包传到/opt目录下,安装JDK 2、设置JDK环境变量 3、使用文本工具编写java源代码 二、安装启动Tomcat 1、解包 2、后台启动 3、使用80端口访问 一、安装jdk 在部署 Tomcat 之前必须安装好…

Java学习629

线程安全 开发中银行排号,火车售票系统中多线程程序发生的问题 引入代码: package Test0626;class SaleTicket implements Runnable{int ticket 100;Overridepublic void run() {while(true){if (ticket > 0){System.out.println(Thread.currentT…

ROS2 launch文件同时引入yaml文件参数和自定义变量参数

0 背景 在ROS中,launch工具可以帮助用户同时启动多个节点,以及引入多种设置如参数导入、节点名重映射等。在ROS1中,launch文件通过xml语言编写,后缀名为.launch;而ROS2在xml的基础上(后缀名为.xml&#xf…

【Servlet学习四】实现一个内存版本的表白墙~

目录 一、前端代码 二、后端代码实现 🌈1、全局类定义AppVar 🌈2、实体类定义Message 🌈3、获取所有信息:getMessageServlet实现前后端的交互 🌈4、添加数据:addMessageServlet,实现前后端…

notepad++去除换行符和空格

在notepad中按Ctrlh 1.去除换行符 输入如图所示的查找内容为\r\n,【替换为】不填写,勾选底部的【正则表达式】,然后点击【全部替换】 2. 按照逗号换行 输入如图所示的查找内容为,,【替换为】\r\n,勾选底部的【正则…

C# WinForm 选择打开文件和保存文件

做 winform 项目的时候正好遇到了记录一下: 打开文件 我们使用 OpenFileDialog 控件来打开文件选择框: 通过 Title 属性可以设置选择框的标题而 Filter 属性可以设置选中的文件类型,这个属性由两个部分组成 SVG files (*.svg)|*.svg &am…

九、云尚办公系统-管理端-审批管理

云尚办公系统:管理端-审批管理 B站直达【为尚硅谷点赞】: https://www.bilibili.com/video/BV1Ya411S7aT 本博文以课程相关为主发布,并且融入了自己的一些看法以及对学习过程中遇见的问题给出相关的解决方法。一起学习一起进步!!…