LACP链路聚合-基础篇

2023-05-16

一、基本概念

  • 系统LACP优先级

    系统LACP优先级是为了区分两端设备优先级的高低而配置的参数。LACP模式下,两端设备所选择的活动接口必须保持一致,否则链路聚合组就无法建立。此时可以使其中一端具有更高的优先级,另一端根据高优先级的一端来选择活动接口即可。系统LACP优先级值越小优先级越高。

  • 接口LACP优先级

    接口LACP优先级是为了区别同一个Eth-Trunk中的不同接口被选为活动接口的优先程度,优先级高的接口将优先被选为活动接口。接口LACP优先级值越小,优先级越高。

  • 成员接口间M:N备份

    LACP模式链路聚合由LACP确定聚合组中的活动和非活动链路,又称为M:N模式,即M条活动链路与N条备份链路的模式。这种模式提供了更高的链路可靠性,并且可以在M条链路中实现不同方式的负载均衡。

    如下图所示,两台设备间有M+N条链路,在聚合链路上转发流量时在M条链路上分担负载,即活动链路,不在另外的N条链路转发流量,这N条链路提供备份功能,即备份链路。此时链路的实际带宽为M条链路的总和,但是能提供的最大带宽为M+N条链路的总和。

    当M条链路中有一条链路故障时,LACP会从N条备份链路中找出一条优先级高的可用链路替换故障链路。此时链路的实际带宽还是M条链路的总和,但是能提供的最大带宽就变为M+N-1条链路的总和。

wKiom1l36MiixRhPAAAiTm4EcoM993.jpg-wh_50

      这种场景主要应用在只向用户提供M条链路的带宽,同时又希望提供一定的故障保护能力时。当有一条链路出现故障,系统能够自动选择一条优先级最高的可用备份链路变为活动链路。

      如果在备份链路中无法找到可用链路,并且目前处于活动状态的链路数目低于配置的活动接口数下限阈值,那么系统将会把聚合接口关闭。

二、LACP模式实现原理

     基于IEEE802.3ad标准的LACP是一种实现链路动态聚合与解聚合的协议。LACP通过链路聚合控制协议数据单元LACPDU(Link Aggregation Control Protocol Data Unit)与对端交互信息。

在LACP模式的Eth-Trunk中加入成员接口后,这些接口将通过发送LACPDU向对端通告自己的系统优先级、MAC地址、接口优先级、接口号和操作Key等信息。对端接收到这些信息后,将这些信息与自身接口所保存的信息比较,用以选择能够聚合的接口,双方对哪些接口能够成为活动接口达成一致,确定活动链路。

LACPDU报文详细信息如下图所示。

wKioL1l36aeQoLWXAAA-TWEp4wQ274.png-wh_50

wKiom1l36fjjbr8UAAB5WKegCSY823.jpg-wh_50

LACP模式Eth-Trunk建立的过程如下:
  • 两端互相发送LACPDU报文。

       如下图所示,在DeviceA和DeviceB上创建Eth-Trunk并配置为LACP模式,然后向Eth-Trunk中手工加入成员接口。此时成员接口上便启用了LACP协议,两端互发LACPDU报文。

wKiom1l36obgkpbwAAAZ8v-xH24105.jpg-wh_50

  • 确定主动端和活动链路。
         如下图所示,两端设备均会收到对端发来的LACPDU报文。以DeviceB为例,当DeviceB收到DeviceA发送的报文时,DeviceB会查看并记录对端信息,然后比较系统优先级字段,如果DeviceA的系统优先级高于本端的系统优先级,则确定DeviceA为LACP主动端。如果DeviceA和DeviceB的系统优先级相同,比较两端设备的MAC地址,确定MAC地址小的一端为LACP主动端。
    选出主动端后,两端都会以主动端的接口优先级来选择活动接口,两端设备选择了一致的活动接口,活动链路组便可以建立起来,从这些活动链路中以负载分担的方式转发数据。

wKioL1l36uvwtJT2AABkcSv7HLE900.jpg-wh_50

  • LACP抢占

使能LACP抢占功能后,聚合组会始终保持高优先级的接口作为活动接口的状态。

如下图所示,接口Port1、Port2和Port3为Eth-Trunk的成员接口,DeviceA为主动端,活动接口数上限阈值为2,三个接口的LACP优先级分别为10、20、30。当通过LACP协议协商完毕后,接口Port1和Port2因为优先级较高被选作活动接口,Port3成为备份接口。

wKioL1l36y2yYyTeAAAnkFjbY3o210.jpg-wh_50

以下两种情况需要使能LACP的抢占功能。

  •       Port1接口出现故障而后又恢复了正常。当接口Port1出现故障时被Port3所取代,如果在Eth-Trunk接口下未使能LACP抢占功能,则故障恢复时Port1将处于备份状态;如果使能了LACP抢占功能,当Port1故障恢复时,由于接口优先级比Port3高,将重新成为活动接口,Port3再次成为备份接口。

  • 如果希望Port3接口替换Port1、Port2中的一个接口成为活动接口,可以使能了LACP抢占功能,并配置Port3的接口LACP优先级较高。如果没有使能LACP抢占功能,即使将备份接口的优先级调整为高于当前活动接口的优先级,系统也不会进行重新选择活动接口的过程,不切换活动接口。

  • LACP抢占延时

    抢占延时是LACP抢占发生时,处于备用状态的链路将会等待一段时间后再切换到转发状态。配置抢占延时是为了避免由于某些链路状态频繁变化而导致Eth-Trunk数据传输不稳定的情况。

       如上图所示,Port1由于链路故障切换为非活动接口,此后该链路又恢复了正常。若系统使能了LACP抢占功能并配置了抢占延时,Port1重新切换回活动状态就需要经过抢占延时的时间。

  • 活动链路与非活动链路切换

LACP模式链路聚合组两端设备中任何一端检测到以下事件,都会触发聚合组的链路切换:

当满足上述切换条件其中之一时,按照如下步骤进行切换:

  1. 链路Down事件。

  2. 以太网OAM检测到链路失效。

  3. LACP协议发现链路故障。

  4. 接口不可用。

  • 在使能了LACP抢占功能的前提下,更改备份接口的优先级高于当前活动接口的优先级。

  1. 关闭故障链路。

  2. 从N条备份链路中选择优先级最高的链路接替活动链路中的故障链路。

  3. 优先级最高的备份链路转为活动状态并转发数据,完成切换。


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

LACP链路聚合-基础篇 的相关文章

随机推荐

  • C语言如何分离一个数的高低位,如何将2个字节变成一个字节

    关于这个概念 xff0c 是我从工作中学习的 xff0c 虽然在读书的时候就应该要掌握 xff0c 但是在开发中 xff0c 这项技能尤其重要 我是做嵌入式开发的 xff0c 在嵌入式开发过程中 xff0c 如何对数据操作必然是不可缺少的问
  • 你要的免费Proxy资源全在这里了

    地址 xff1a github com derekhe Pro 介绍 在 爬虫实战 xff1a 从数据到产品 一书中 xff0c 我讲到了一个基于ProxyBroker的代理池 经过我的长时间的实践 xff0c 这个代理池用起来非常的方便和
  • 短视频App源码:如何搭建短视频社区

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 短视频App源码 xff1a 如何搭建短视频社区 随着国内移动互联网的发展 xff0c 中国的移动互联网时代已经来临 xff0c 以快手 抖音为主的短视频平台迅速火热起来
  • mysql 百万级数据的模糊查询 优化 笔记

    最近老大给了一个需求 xff0c 是要写一个姓名的模糊查询 问题很简单 xff0c 难度在于这张表有将近500W条数据 如果要做中文的模糊查询 xff0c 效率简直惨不忍睹 网上查了一下资料 xff0c 发现全文索引挺符合我的需要的 结果
  • 如何在Ubuntu 18.04上创建启用了Sudo的新用户[快速入门]

    介绍 Introduction The sudo command provides a mechanism for granting administrator privileges ordinarily only available to
  • Sql语句批量更新数据(多表关联)

    最近在项目中遇到一个问题 xff0c 原来设计的功能是不需要一个特定的字段值depid的 xff0c 但是新的功能需要根据depid来展现 xff0c 于是出现了这样一个问题 xff0c 新增加的数据都有正确的depid 而原来的大量的数据
  • Matlab M文件“程序块”注释方法

    方法一 xff1a 注释语句的快捷键是Ctrl 43 R 取消注释的快捷键是Ctrl 43 T 并且支持一次注释 xff08 或者取消注释 xff09 多行语句 选定要注释 xff08 或者取消注释 xff09 的那些语句 xff0c 然后
  • 如何开发高性能低成本的网站之技术选择

    每个企业都是慢慢发展起来的 xff0c 在起步阶段成本是一个不得不考虑的重大问题 直接入正题 xff1a 前台框架 ASP NET MVC 43 Jquery 43 Json 43 Flash ASP NET MVC 高性能速度快 xff0
  • 密码学题库

    参考题库 一 选择题 1 第一个实用的 迄今为止应用最广的公钥密码体制是 A A RSA B Elgamal C ECC D NTRU 2 一个密码系统至少由明文 密文 加密算法和解密算法 密钥五部分组成 xff0c 而其安全性是由 xff
  • 【linux】linux 下 shell命令 执行结果赋值给变量【两种方式】

    方法1 xff1a 通用方法 使用Tab键上面的反引号 例子如下 xff1a find命令 模糊查询在 apps swapping目录下 查找 文件名中包含swapping并且以 jar结尾的文件 使用反引号 引住命令 xff0c 然后使用
  • Octet 和 Byte 的区别

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 关于程序的文章中 Octet 和 Byte是常见的词汇 xff0c 他们都表示8 bit 在读RFC或网络设备文档时 xff0c 经常见到Octet这量词来指代8位 xff
  • 云计算的弹性

    云计算最大的优势就在于弹性 目前 xff0c 阿里云已拥有在数分钟内开出一家中型互联网公司所需要的IT资源的能力 xff0c 这就能够保证大部分企业在云上所构建的业务都能够承受巨大的业务量压力 计算弹性 纵向的弹性 xff0c 即单个服务器
  • LACP 详解

    一 LACP简介 1 LACP协议简介 基于 IEEE802 3ad 标准的LACP xff08 Link Aggregation Control Protocol xff0c 链路汇聚控 制协议 xff09 是一种实现链路动态汇聚与解汇聚
  • 串口发送数据

    关于串口发送数据 自己以前呢是这样 void Usart Out Char unsigned char c uint32 t cnt while cnt USART SendData USART1 c 43 43 while USART G
  • Spring 启动分析(1)

    2019独角兽企业重金招聘Python工程师标准 gt gt gt Spring MVC 启动记录 xff08 1 xff09 1 默认的初始化就是一个DispatchServlet xff0c 这个serlet的初始化过程就是整个spri
  • ubuntu安装xfce_在Ubuntu Linux上安装Xfce(Xubuntu)

    ubuntu安装xfce Ubuntu by default includes the Gnome desktop environment but it s easy enough to install another window man
  • 缓存详解

    前言 总括 xff1a 缓存从来都是前端的一个痛点 xff0c 很多前端搞不清楚缓存到底是何物 xff0c 从而给自己创造了一些麻烦 xff0c 本文一如既往的用通俗易懂的文字和实例来讲述缓存 xff0c 希望能让您有所得 原文博客地址 x
  • JAVA URL协议扩展支持HDFS

    为什么80 的码农都做不了架构师 xff1f gt gt gt 问题 xff1a 最近在做自然语言处理的时候 使用了谢菲尔德大学的Gate 奈何Gate只能从本地文件读取配置和语义文件 特将此改造成从HDFS读取 并且和Spark集成起来
  • Docker搭建MySQL服务

    Docker开源镜像 前面我们已经安装好了Docker xff0c 也简单了解了Docker 那么我们可以尝试搭建一个MySQL服务 要搭建服务就要启动服务容器 xff0c 要创建容易就要有镜像 xff0c Docker提供了一个类似Git
  • LACP链路聚合-基础篇

    一 基本概念 系统LACP优先级系统LACP优先级是为了区分两端设备优先级的高低而配置的参数 LACP模式下 xff0c 两端设备所选择的活动接口必须保持一致 xff0c 否则链路聚合组就无法建立 此时可以使其中一端具有更高的优先级 xff