LACP——链路聚合控制协议

 

LACP——链路聚合控制协议

什么是LACP?

LACP(Link Aggregation Control Protocol,链路聚合控制协议)是一种基于IEEE802.3ad标准的实现链路动态聚合与解聚合的协议,它是链路聚合中常用的一种协议。
链路聚合组中启用了LACP协议的成员端口通过发送LACPDU报文进行交互,双方对哪些端口能够发送和接收报文达成一致,确定承担业务流量的链路。此外,当聚合条件发生变化时,如某个链路发生故障,LACP模式会自动调整聚合组中的链路,组内其他可用成员链路接替故障链路维持负载平衡。这样在不进行硬件升级的情况下,可以增加设备之间的逻辑带宽,提高网络的可靠性。


年终盘点:2023年IT人考证一览-CSDN博客文章浏览阅读1.1k次,点赞29次,收藏24次。今天,我们就来盘点下,现在IT圈里都流行哪些证儿https://blog.csdn.net/XMWS_IT/article/details/135986741?spm=1001.2014.3001.5501


LACP与LAG是什么关系?

链路聚合组LAG(Link Aggregation Group)是指将若干条以太链路捆绑在一起形成一条逻辑链路,也称Eth-Trunk链路。每个聚合组对应一个链路聚合接口或Eth-Trunk接口,组成Eth-Trunk接口的各个物理接口称为成员接口,成员接口对应的链路称为成员链路。链路聚合接口可以作为普通的以太网接口来使用,与普通以太网接口的差别在于:转发的时候链路聚合组需要从成员接口中选择一个或多个接口来进行数据转发。

图片


链路聚合组与链路聚合接口、成员接口和成员链路关系示意图

LAG是一种链路聚合技术,当在两台交换机之间并行连接多个端口并将它们配置为LAG时,链路聚合组就会形成,而LACP是一种自动建立LAG的控制协议,用于启用LAG自动配置网络交换机端口、分离链路故障和激活故障切换。

LAG主要有两种模式,分别是手工模式和LACP模式。

  • 手工模式:指LAG不启用任何链路聚合协议,Eth-Trunk的建立、成员接口的加入由手工配置。

  • LACP模式:指LAG启用LACP链路聚合协议,Eth-Trunk的建立、成员接口的加入基于LACP协议协商完成。

部分设备支持手工模式,但不支持LACP模式,LACP模式需要本端和对端设备同时启用LACP协议,所选择的活动接口必须保持一致,才能建立LAG,如果对端设备未启用LACP协议,本端LAG会尝试将数据包传输到远程单个接口,可能导致通信失败。

图片


手工模式与LACP模式的对比

为什么要用LACP?

LACP模式对数据传输更加稳定和可靠

手工模式下,所有链路都是活动链路,所有活动链路均参与数据转发,平均分担流量。如果某条活动链路故障,链路聚合组自动在剩余的活动链路中平均分担流量。

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

如下图所示,两台设备间有M+N条链路,在聚合链路上转发流量时在M条链路上分担负载,即活动链路,不在另外的N条链路转发流量,这N条链路提供备份功能,即备份链路。此时链路的实际带宽为M条链路的总和,但是能提供的最大带宽为M+N条链路的总和。当M条链路中有一条链路故障时,LACP会从N条备份链路中找出一条优先级高的可用链路替换故障链路。此时链路的实际带宽还是M条链路的总和,但是能提供的最大带宽就变为M+N-1条链路的总和。

图片


M:N备份示意图

LACP模式对聚合链路组的故障检测更加准确和有效

手工模式只能检测到同一聚合组内的成员链路有断路等有限故障,LACP模式不仅能够检测到同一聚合组内的成员链路有断路等有限故障,还可以检测到链路故障、链路错连等故障。

如下图所示,DeviceA与DeviceB之间创建Eth-Trunk,需要将DeviceA上的四个接口与DeviceB捆绑成一个Eth-Trunk。由于错将DeviceA上的一个接口与DeviceC相连,这将会导致DeviceA向DeviceB传输数据时可能会将本应该发到DeviceB的数据发送到DeviceC上。

手工模式的Eth-trunk不能及时检测到该故障,如果在DeviceA和DeviceB上都启用LACP协议,经过协商后,Eth-Trunk就会选择正确连接的链路作为活动链路来转发数据,从而DeviceA发送的数据能够正确到达DeviceB。

图片


Eth-Trunk错连示意图

LACP是如何工作的?

LACP为数据交换设备提供一种标准的协商方式,系统根据自身配置自动形成聚合链路,并启动聚合链路收发数据。LACP通过链路聚合控制协议数据单元LACPDU(Link Aggregation Control Protocol Data Unit)与对端交互信息,LACPDU报文中包含设备的系统优先级、MAC地址、接口优先级、接口号和操作Key等信息,对端接收到这些信息后,将这些信息与其它端口所保存的信息比较以选择能够汇聚的端口,双方对端口加入或退出某个动态聚合组达成一致,确定承担业务流量的链路。

LACP主要工作主要包含互发LACPDU报文、确定主动端、确定活动链路、链路切换,具体实现如下。

互发LACPDU报文

在对接的两台设备上创建Eth-Trunk并配置为LACP模式,然后向Eth-Trunk中手工加入成员接口。此时成员接口上便启用了LACP协议,两端互发LACPDU报文,LACPDU报文中包含设备的系统优先级、MAC地址、接口优先级、接口号和操作Key等信息。

图片


互发LACPDU报文

确定主动端

两端设备均会收到对端发来的LACPDU报文。以DeviceB为例,当DeviceB收到DeviceA发送的报文时,DeviceB会查看并记录对端信息,然后比较系统优先级字段,如果DeviceA的系统优先级高于本端的系统优先级,则确定DeviceA为LACP主动端。如果DeviceA和DeviceB的系统优先级相同,比较两端设备的MAC地址,MAC地址小的一端为LACP主动端。

图片


确定主动端

确定活动链路

选出主动端后,设备两端会以主动端的接口优先级来选择活动接口,如果主动端的接口优先级都相同则选择接口编号比较小的为活动接口。LACP模式支持设置活动接口数上限阈值以在保证带宽的情况下提高网络可靠性,当前活动接口数目达到上限阈值时,再向Eth-Trunk中添加成员接口,不会增加Eth-Trunk活动接口的数目,超过上限阈值的链路状态将被置为Down,作为备份链路。两端设备选择了一致的活动接口,活动链路组便可以建立起来,这些活动链路以负载分担的方式转发数据。

如下图所示,LACP模式下,如果活动链路数上限阈值为2,通过LACP协商后,链路1和链路2因为优先级较高被选作活动链路,链路3则为备份链路。聚合链路中的活动链路参与数据转发,总带宽等于被选中的活动链路带宽之和。

图片


确定活动链路

链路切换

LACP模式链路聚合组中如果某条活动链路故障,链路聚合组自动在备份链路中选择一条优先级最高的链路作为活动链路接替故障链路,参与数据转发的链路数目不变,保证数据传输的可靠性。LACP模式链路聚合组两端设备中任何一端检测到以下事件,都会触发聚合组的链路切换:

  • 链路Down事件。

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

  • LACP协议发现链路故障。

  • 接口不可用。

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

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

  1. 关闭故障链路。

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

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

图片


链路切换

LACP和PAgP有什么区别?

LACP和PAgP(Port Aggregation Protocol,端口汇聚协议)是链路聚合中使用最广泛的两种协商协议。LACP和PAgP的功能类似,都是通过捆绑链路并协商成员链路之间的流量提高网络的可用性和稳定性。LACP和PAgP数据包在交换机之间通过支持以太网通道的端口交换。

它们之间最大的区别是支持的供应商不同,LACP是开放标准,可以在大多数交换机上运行,如华为S5700系列交换机,而PAgP是Cisco专有协议,只能在Cisco或支持PAgP的第三方交换机上运行。

图片

LACP vs PAgP


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

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

相关文章

jenkins+kubernetes+git+dockerhub构建devops云平台

Devops简介 k8s助力Devops在企业落地实践 传统方式部署项目为什么发布慢,效率低? 上线一个功能,有多少时间被浪费了? 如何解决发布慢,效率低的问题呢? 什么是Devops? 敏捷开发 提高开发效率&…

卖东西的微信小程序多少钱?卖货小程序怎么做?

部分商家在寻找一个简单的解决方案来在线销售商品,需求并不复杂,能让客户轻松下单并完成支付的商城小程序就已足够。那么做一个这样的商城小程序要怎么做呢?多少钱? 您可能会想:我不懂编程,也没有搭建过小程…

导览系统厂家|景区电子导览|手绘地图|AR导览|语音导览系统

随着元宇宙、VR、AR等新技术的快速发展,旅游服务也更加多元化、智能化。景区导览系统作为旅游服务的重要组成部分,其形式更加多元化智能化。智能导览系统作为一种新的服务方式,能够为游客提供更加便捷的旅游服务和游览体验,也逐渐…

windows安装部署node.js并搭建Vue项目

一、官网下载安装包 官网地址:https://nodejs.org/zh-cn/download/ 二、安装程序 1、安装过程 如果有C/C编程的需求,勾选一下下图所示的部分,没有的话除了选择一下node.js安装路径,直接一路next 2、测试安装是否成功 【winR】…

如何搭建零售行业经营分析体系?

​怎么搭建零售行业的经营分析体系? 整体思路就是:利用数据中台基于业务全价值链的数据沉淀,借助大数据技术进行采集、计算、存储和加工,同时统一数据建模与治理,构建数据资产,充分挖掘数据,实…

[electron] electron环境搭建

electron组成部分 Electron作为一个跨平台的框架。按照道理来说Node.js作为语言已经统一了不同平台的操作,为什么还有Native apis。好吧,先不管那么多首先我们需要先下载Node.js nodejs官网 。记得还要安装npm包管理,这里就不细讲。 npm换源…

[极客大挑战 2019]LoveSQL1 题目分析与详解

一、题目简介: 二、通关思路: 1、首先查看页面源代码: 我们发现可以使用工具sqlmap来拿到flag,我们先尝试手动注入。 2、 打开靶机,映入眼帘的是登录界面,首先尝试万能密码能否破解。 username: 1 or 11…

istio学习记录——VirtualService详解

上一篇使用VirtualService进行了简单的流量控制,并通过Gateway将流量导入到了集群内。这一篇将更加深入的介绍 VirtualService。 k8s中有service,service能够对流量进行负载均衡,那为什么istio又引入了VirtualService呢,因为serv…

MATLAB_ESP32有限脉冲响应FIR无限脉冲响应IIR滤波器

要点 ESP32闪烁LED,计时LEDESP32基础控制:温控输出串口监控,LCD事件计数器,SD卡读写,扫描WiFi网络,手机控制LED,经典蓝牙、数字麦克风捕捉音频、使用放大器和喇叭、播放SD卡和闪存MP3文件、立体…

Vuex的mutations和actions区别

Vuex中的mutations用于同步操作,而actions则处理异步操作。以下是它们的具体区别: 同步与异步: Mutations是同步的,这意味着在mutation中的函数执行时,不能包含任何异步操作,如Promise或者setTimeout等。…

solidity编程

一.Solidity 简介 Solidity 是⼀种⽤于编写以太坊虚拟机( EVM )智能合约的 编程语⾔。我认为掌握 Solidity 是参与链上项⽬的必备技 能:区块链项⽬⼤部分是开源的,如果你能读懂代码,就可以 规避很多亏钱项⽬。…

省市区街道/乡镇四级联动vue3

最近优化了一个省.市.区/县、乡镇/街道的四级联动组件,技术栈是element vue3记录一下。 本来是这样的三级联动: 这个三级联动很简单,直接利用el-select组件把地区值带进去就行了,现在要优化成省.市.区/县、乡镇/街道的四级联动&…

GORM框架快速入门

GORM框架 gorm地址 :https://github.com/go-gorm/gorm 目前使用最广泛的一个go语言数据库框架 1、入门 数据库以目前使用最多的mysql为例。 //安装MySQL驱动 go get -u gorm.io/driver/mysql //安装gorm包 go get -u gorm.io/gorm //安装gin go get -u github.c…

Bicycles(变形dijkstra,动态规划思想)

Codeforces Round 918 (Div. 4) G. Bicycles G. Bicycles 题意: 斯拉夫的所有朋友都打算骑自行车从他们住的地方去参加一个聚会。除了斯拉维奇,他们都有一辆自行车。他们可以经过 n n n 个城市。他们都住在城市 1 1 1 ,想去参加位于城市…

Python程序打包成exe可执行文件的常用方法

在Python中,您可以使用一些工具将您的Python程序打包成可执行文件(.exe)。以下是一些常用的工具: PyInstaller: PyInstaller是一个流行的工具,它可以将Python脚本打包成独立的可执行文件,支持Windows、Linux和Mac。您可以使用以下命令安装PyInstaller: pip install pyin…

Python 快速入门篇

本文简介 点赞 关注 收藏 学会了 2024年是AI的元年,AI的爆火不仅推动了科技领域的进步,更让 Python 语言成为了这一变革中的关键角色。 Python 语言简单易懂,语法清晰明了,懂一点英语的都能学得会。很适合在职场摸爬滚打多年…

python 基础绘图函数 实例

简介 在 Python 中,有许多用于绘图的库。以下是一些常用的 Python 绘图库及其基本绘图函数的简要介绍: Matplotlib: matplotlib.pyplot.plot(x, y): 绘制线图。matplotlib.pyplot.scatter(x, y): 绘制散点图。matplotlib.pyplot.bar(x, height): 绘制条…

【STM32 物联网】AT指令与TCP,发送与接收数据

文章目录 前言一、连接TCP服务器1.1 配置Wifi模式1.2 连接路由器1.3 查询ESP8266设备IP地址1.4 连接TCP服务器 二、向服务器接收数据和发送数据2.1 发送数据2.2 接收数据 总结 前言 随着物联网(IoT)技术的迅速发展,越来越多的设备和系统开始…

总结一下linux性能检测和调优手段

1.perf 是 Linux 系统中性能分析工具,用于收集性能相关的信息。它可以用于查看 CPU 使用情况、内存性能、磁盘 I/O 等,以帮助开发者找到性能瓶颈。 以下是一些 perf 常见用法和示例: 1. CPU Profiling a. 查看 CPU 使用率 perf stat -e cpu…

高性能 Kafka 及常见面试题

Kafka 是一种分布式的,基于发布/订阅的消息系统,原本开发自 LinkedIn,用作 LinkedIn 的事件流(Event Stream)和运营数据处理管道(Pipeline)的基础。 基础原理详解可见 Kafka 基本架构及原理 基础…