LACP——链路聚合控制协议

news/2024/4/17 8:11:27

 

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



https://www.xjx100.cn/news/3293478.html

相关文章

JDK, JRE, 和 JVM 的解释

在Java编程中,JDK(Java Development Kit,Java开发工具包)、JRE(Java Runtime Environment,Java运行环境)和JVM(Java Virtual Machine,Java虚拟机)是三个核心概…

利用 ChatGPT 提升个人工作、生活品质

利用 ChatGPT 提升个人工作、生活品质和个人智慧是一个多方面而又切实可行的方法。 以下是一些具体的建议: 获取信息和知识: ChatGPT 可以回答各种问题并提供相关信息和知识。你可以利用它来查询工作中遇到的问题、学习新的知识领域或是获取日常生活中的…

林曦老师的新年礼物,送你三个学习锦囊

暄桐是一间传统美学教育教室,创办于2011年,林曦是创办人和授课老师,教授以书法为主的传统文化和技艺,皆在以书法为起点,亲近中国传统之美,以实践和所得,滋养当下生活。    在暄桐六阶读书课…

力扣● 1049. 最后一块石头的重量 II ● 494. 目标和 ● 474.一和零

● 1049. 最后一块石头的重量 II 题目要把石头分成两堆,这两堆的重量差值最小。相撞之后剩下的石头重量就最小。其实就是要尽量把石头分为差不多重量的两堆,和昨天的● 416. 分割等和子集相似,这样就转换成了01背包问题。 和416题一样&…

【Kubernetes】k8s中容器之间、pod之间如何进行网络通信?

目录 PodKubernetes 网络模型同一Pod上的容器之间进行通信同一Node上的不同Pod之间进行通信不同Node上的Pod之间进行通信Service参考 Pod 首先来回顾一下Pod: Pod 是用于构建应用程序的最小可部署对象。单个 Pod 代表集群中正在运行的工作负载,并封装一…

JMeter实现接口自动化测试

一、JMETER的环境搭建 参考:https://www.cnblogs.com/qmfsun/p/4902534.html 二、JMETER的汉化 临时汉化方法:打开jmeter,options-->choose language-->选择语言 可以根据自己的需要选择简体中文或者繁体中文,如图&#xf…

LeetCode 0938.二叉搜索树的范围和:深度优先搜索(可中序遍历)

【LetMeFly】938.二叉搜索树的范围和:深度优先搜索(可中序遍历) 力扣题目链接:https://leetcode.cn/problems/range-sum-of-bst/ 给定二叉搜索树的根结点 root,返回值位于范围 [low, high] 之间的所有结点的值的和。…

YOLOv9-Openvino和ONNXRuntime推理【CPU】

1 环境: CPU:i5-12500 Python:3.8.18 2 安装Openvino和ONNXRuntime 2.1 Openvino简介 Openvino是由Intel开发的专门用于优化和部署人工智能推理的半开源的工具包,主要用于对深度推理做优化。 Openvino内部集成了Opencv、Tens…