一、 LACP简介

1、LACP协议简介基于 IEEE802.3ad 标准的LACP(Link Aggregation Control Protocol,链路汇聚控制协议)是一种实现链路动态汇聚与解汇聚的协议。LACP 协议通过

LACPDU(Link Aggregation Control Protocol Data Unit,链路汇聚控制协议数据单元)与对端交互信息。使能某端口的 LACP 协议后,该端口将通过发送LACPDU 向对端通告自己的系统优先级、系统MAC、端口优先级、端口号和操作Key。对端接收到这些信息后,将这些信息与其它端口所保存的信息比较以选择能够汇聚的端口,从而双方可以对端口加入或退出某个动态汇聚组达成一致。2、LACP报文

主要字段介绍:

Actor_Port/Partner_Port:本端/对端接口信息。Actor_State/Partner_State:本端/对端状态。Actor_System_Priority/Partner_System_Priority:本端/对端系统优先级。Actor_System/Partner_System:本端/对端系统ID。Actor_Key/Partner_Key:本端/对端操作Key,各接口的该值相同才能够聚合。

Actor_Port_Priority/Partner_Port_Priority:本端/对端接口优先级。

二、链路聚合的分类

1、 手工负载分担模式链路聚合

1)手工汇聚概述手工负载分担模式是一种最基本的链路聚合方式,在该模式下,Eth-Trunk 接口的建立,成员接口的加入完全由手工来配置,没有链路聚合控制协议的参与。该模式下所有成员接口(selected)都参与数据的转发,分担负载流量,因此称为手工负载分担模式。手工汇聚端口的 LACP 协议为关闭状态,禁止用户使能手工汇聚端口的LACP 协议。

2)手工汇聚组中的端口状态在手工汇聚组中,端口可能处于两种状态:Selected 或Standby。处于Selected 状态且端口号最小的端口为汇聚组的主端口,其他处于Selected 状态的端口为汇聚组的成员端口。由于设备所能支持的汇聚组中的最大端口数有限制,如果处于Selected 状态的端口数超过设备所能支持的汇聚组中的最大端口数,系统将按照端口号从小到大的顺序选择一些端口为Selected 端口,其他则为Standby 端口。

3)手工汇聚对端口配置的要求一般情况下,手工汇聚对汇聚前的端口速率和双工模式不作限制。但对于以下情况,系统会作特殊处理:对于初始就处于 DOWN 状态的端口,在汇聚时对端口的速率和双工模式没有限制;对于曾经处于 UP 状态,并协商或强制指定过端口速率和双工模式,而当前处于DOWN 状态的端口,在汇聚时要求速率和双工模式一致;对于一个汇聚组,当汇聚组中某个端口的速率和双工模式发生改变时,系统不进行解汇聚,汇聚组中的端口也都处于正常工作状态。但如果是主端口出现速率降低和双工模式变化,则该端口的转发可能出现丢包现象。

2、 LACP 协议链路聚合LACP(Link Aggregation Control Protocol)链路聚合包含两种类型:

1) 静态 LACP 模式链路聚合

a)静态 LACP 模式链路聚合简介静态 LACP 模式下,Eth-Trunk 接口的建立,成员接口的加入,都是由手工配置完成的。但与手工负载分担模式链路聚合不同的是,该模式下LACP 协议报文参与活动接口的选择。也就是说,当把一组接口加入Eth-Trunk 接口后,这些成员接口中哪些接口作为活动接口,哪些接口作为非活动接口还需要经过LACP 协议报文的协商确定。静态汇聚端口的 LACP 协议为使能状态,当一个静态汇聚组被删除时,其成员端口将形成一个或多个动态LACP 汇聚,并保持LACP 使能。禁止用户关闭静态汇聚端口的LACP 协议。

b)。Selected 端口和Standby 端口都能收发LACP 协议,但Standby 端口不能转发用户报文。说明:在一个汇聚组中,处于Selected 状态且端口号最小的端口为汇聚组的主端口,其他处于Selected 状态的端口为汇聚组的成员端口。在静态汇聚组中,系统按照以下原则设置端口处于 Selected 或者Standby 状态:系统按照端口全双工/高速率、全双工/低速率、半双工/高速率、半双工/低速率的优先次序,选择优先次序最高的端口处于Selected 状态,其他端口则处于Standby 状态。与处于 Selected 状态的最小端口所连接的对端设备不同,或者连接的是同一个对端设备但端口在不同的汇聚组内的端口将处于Standby 状态。端口因存在硬件限制(如不能跨板汇聚)无法汇聚在一起,而无法与处于Selected 状态的最小端口汇聚的端口将处于Standby 状态。与处于 Selected 状态的最小端口的基本配置不同的端口将处于Standby 状态。由于设备所能支持的汇聚组中的 Selected 端口数有限制,如果当前的成员端口数超过了设备所能支持的最大Selected 端口数,系统将按照端口号从小到大的顺序选择一些端口为Selected 端口,其他则为Standby 端口。

2) 动态 LACP 模式链路聚合

a)动态 LACP 模式链路聚合简介动态 LACP 模式下,Eth-Trunk 接口的建立,成员接口的加入,活动接口的选择完全由LACP 协议通过协商完成。这就意味着启用了动态LACP 协议的两台直连设备上,不需要创建Eth-Trunk 接口,也不需要指定哪些接口作为聚合组成员接口,两台设备会通过LACP 协商自动完成链路的聚合操作。动态 LACP 汇聚是一种系统自动创建/删除的汇聚,不允许用户增加或删除动态LACP 汇聚中的成员端口。只有速率和双工属性相同、连接到同一个设备、有相同基本配置的端口才能被动态汇聚在一起。即使只有一个端口也可以创建动态汇聚,此时为单端口汇聚。动态汇聚中,端口的LACP 协议处于使能状态。

b)动态汇聚组中的端口状态在动态汇聚组中,端口可能处于两种状态:Selected 或Standby。Selected 端口和Standby 端口都能收发LACP 协议,但Standby 端口不能转发用户报文。由于设备所能支持的汇聚组中的最大端口数有限制,如果当前的成员端口数量超过了最大端口数的限制,则本端系统和对端系统会进行协商,根据设备ID 优的一端的端口ID 的大小,来决定端口的状态。具体协商步骤如下:比较设备 ID(系统优先级+系统MAC 地址)。先比较系统优先级,如果相同再比较系统MAC 地址。设备ID 小的一端被认为优。比较端口 ID(端口优先级+端口号)。对于设备ID 优的一端的各个端口,首先比较端口优先级,如果优先级相同再比较端口号。端口ID 小的端口为Selected 端口,剩余端口为Standby 端口。在一个汇聚组中,处于Selected 状态且端口号最小的端口为汇聚组的主端口,其他处于Selected 状态的端口为汇聚组的成员端口。说明:与手工汇聚组不同的是,在静态汇聚组和动态汇聚组中,处于 DOWN 的端口为Standby 状态。

三、LACP实现原理1、手工汇聚原理手工负载分担模式链路聚合是应用比较广泛的一种链路聚合,大多数运营级网络设备均支持该特性,当需要在两个直连设备间提供一个较大的链路带宽而对端设备又不支持LACP 协议时,可以使用手工负载分担模式

说明:

手工负载分担模式的Eth-Trunk 接口可以聚合不同单板、不同双工模式的成员接口。

2、静态汇聚原理

a)基本概念静态LACP 模式链路聚合是一种利用LACP 协议进行参数协商选取活动链路的聚合模式。该模式由LACP 协议确定聚合组中的活动和非活动链路,又称为M∶N 模式,即M 条活动链路与N 条备份链路的模式。这种模式提供了更高的链路可靠性,并且可以在M 条链路中实现不同方式的负载均衡。

M:N 模式的Eth-Trunk 接口中M 和N 的值可以通过配置活动接口数上限阈值来确定。

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

c)接口 LACP 优先级接口LACP 优先级是为了区别不同接口被选为活动接口的优先程度。接口LACP 优先级值越小,优先级越高。缺省情况下,接口LACP 优先级为32768。

d)静态模式Eth-Trunk 接口建立过程静态模式Eth-Trunk 接口建立过程如下所示:

① 两端互相发送 LACPDU 报文。

② 两端设备根据系统 LACP 优先级确定主动端。

③ 两端设备根据接口LACP 优先级确定活动接口,最终以主动端设备的活动接口确定两端的活动接口。

e) 互发 LACPDU 报文在两端设备CX-A 和CX-B 上创建Eth-Trunk 接口并配置为静态LACP 模式,然后向Eth-Trunk 接口中手工加入成员接口。此时成员接口上便启用了LACP 协议,两端互相发出LACPDU 报文,如下图所示。

f)确定主动端Eth-Trunk 两端设备均会收到对端发来的LACP 报文,根据报文中的优先级字段,确认活动接口。优先级字段的值越小,优先级越高。如下图所示,当CX-B 收到CX-A 发送LACP 报文时,CX-B 会查看并记录对端信息,并且比较系统优先级字段。CX-A 的系统优先级为10,高于CX-B 的系统优先级,所以选择CX-A 为主动端。此时CX-B 将按照CX-A 的接口优先级选择活动接口。如果 Eth-Trunk 链路两端设备的系统优先级一致,系统将选择系统ID 字段较小的作为主动端。系统ID 由设备的MAC 地址产生。

g)选择活动接口选出主动端后,两端都会以主动端的接口优先级来选择活动接口。如上图所示,CX-A 为主动端,CX-A 的接口GE1/0/1、GE1/0/2 的优先级高于接口GE2/0/1,此时接口GE1/0/1、GE1/0/2 被选为活动接口,组成LACP 聚合组,以负载分担的方式转发数据。

2、静态汇聚原理动态汇聚和静态汇聚原理类似,只是动态汇聚中所有端口都是通过协议确定,而不是像静态汇聚通过协议在指定端口中确定汇聚相关端口。四、实现细节1、链路聚合控制的相关参数

a)LACP协议如何唯一的标识聚合组:系统ID(System ID) ,由"系统优先级+系统MAC地址"组成,其中,之所以要有"系统优先级",是因为LACP协议中,链路聚合两端设备扮演不同角色,有了"系统优先级",管理员可以通过配置干预角色选举。

b)端口ID(Port ID):对于参与链路聚合的各个端口,也需要在设备内部唯一标识,端口ID由"端口优先级+端口号"组成,之所以需要"端口优先级",也是因为涉及端口的不同角色选举

c)Aggregator ID:在一个设备上,能进行多组聚合,即有多个Aggregator,为了区分这些Aggregator,给每个Aggregator分配了一个聚合ID(Aggregator ID),为一个16位整数

2、端口key聚合端口中有两种key:一种是操作key,一种是管理key。操作key是为形成聚合当前使用的key,管理key是允许管理者对key值进行操作的key。

3、 操作key在动态LACP聚合中,只有操作KEY相同的端口才能属于同一个聚合组,你可以认为操作KEY相同的端口,其属性相同。在手工聚合和静态LACP聚合中,虽然同一个聚合组中的端口的操作KEY不一定相同(因端口由管理员手工加入),但是Selected端口的操作KEY一定相同。操作Key 是在端口汇聚时,系统根据端口的配置(即速率、双工、基本配置、管理Key)生成的一个配置组合。

(1) 对于手工汇聚组和静态汇聚组,Selected 的端口有相同的操作Key。

(2) 静态汇聚端口在使能LACP 后,端口的管理Key 与汇聚组ID 相同。

(3) 动态汇聚端口在使能LACP 协议后,其管理Key 缺省为零。

(4) 对于动态汇聚组,同组成员一定有相同的操作Key。

4、六要素a)四个要素:一个聚合组来说,如果需要进行唯一标识的话,需要包含四个元素:本端系统ID、本端操作KEY、对端系统ID、对端操作KEYb)两个要素:系统中并不是所有聚合组都包含多个链路,为了区分只包含单个链路的聚合组的情况,还需要额外加上两个元素:本端端口ID和对端端口ID。

c)结论:这六个元素唯一确定了一个聚合组,称为聚合组 ID(Link Aggregation Group ID,LAG ID)。如果一个聚合组中包含多个链路,那么LAG ID中,本端端口ID和对端端口ID为0,相当于只用四元组就可以刻画包含多个链路的聚合组。

5、端口类型:

a)Selectet和Unselected:参与流量转发的端口称为Selected端口,否则称为Unselected端口

b)主端口(master端口)处于Selected状态且端口号最小的端口称为主端口(Master Port),可以形象的认为,聚合组中的所有端口被汇聚到了主端口,主端口在逻辑上代表了整个聚合组,对于GVRP/GMRP、STP/RSTP/MSTP等二层协议,都只从主端口发送,其他数据报文则在各个Selected端口间分担。

c)补充:由于Selected与Unselected端口在实际状态下的选取受到硬件的影响,所以不同厂家产品的具体表现形式可能有差异

5、LACP绑定端口判断将一个端口绑定到Aggregator的关键依据是 LAG ID,判断方法是:

(1)Aggregator的操作KEY和端口的操作KEY相同。

(2)已经绑定到这个Aggregator的其他端口和这个端口有相同的链路LAG ID,即与Aggregator关联的LAG ID必须和端口的LAG ID相同。

(3) "LAG ID"则指的是聚合组ID( Link Aggregation Group ID),"聚合ID"则指的是Aggregator ID. (LAG ID就是指属于同一个聚合中的所有port 包括selected 和Standby,对于手工和静态比较好理解,就是指用户所指定的所有port,对于动态汇聚,指所有port)

6、端口离开Aggregator

(1)如果Actor端口在一定时间内(使用long timeout时是90s,使用short timeout是3秒)收不到Partner端口发送的LACP报文,就宣告自己处于超时状态,如果在下一个short timeout时间(3秒)内还没有收到Partner的报文,就会离开这个Aggregator。

(2)如果从Partner端口收到的LACP报文,发现LAG ID发生了改变(系统ID或操作KEY发生了变化,系统ID改变说明连接到的对端设备发生了变化,操作KEY发生了变化可能是对端端口的属性发生了变化),这时端口也会离开这个Aggregator。

(3)还有一种导致端口离开Aggregator的情况:Actor端口本身的属性发生了变化,设备通过动态操作KEY功能给它分配的操作KEY发生变化,导致和Aggregator的LAG ID不匹配,从而离开聚合组。

7、Active模式和Passive模式

(1)Active模式下,端口正常周期性的发送LACP报文;

(2)Passive模式下,端口平时不发送LACP报文,不过,一旦收到了对端的LACP报文,就会正常发送LACP报文了。

动态lacp和静态lacp区别_链路聚合 ——LACP报文详解相关推荐

  1. 链路聚合_链路聚合可靠性技术详解(二)

    链路聚合的两种模式: 根据是否启用链路聚合控制协议 LACP,链路聚合分为手工负载分担模式和LACP 模式. 一.手工负载分担模式链路聚合 手工负载分担模式下, Eth-Trunk 的建立.成员接口的 ...

  2. 链路聚合_链路聚合可靠性技术详解(三)

    eth-trunk链路聚合支持流量本地转发机制和特殊的链路聚合e-trunk. 一.Eth-Trunk 支持接口流量本地优先转发(堆叠) 1.堆叠设备:将多台设备通过专用的堆叠电缆连接起来,对外呈现为 ...

  3. 链路聚合_【网络干货】链路聚合可靠性技术详解

    一.基本概念 如图所示,DeviceA 与DeviceB 之间通过三条以太网物理链路相连,将这三条链路捆绑在一起,就成为了一条逻辑链路,这条逻辑链路的最大带宽等于原先三条以太网物理链路的带宽总和,从而 ...

  4. linux中查询动态库版本的命令,linux 程序、动态库、静态库内部添加版本号和编译时间详解...

    给程序和库添加版本号和库,有利于维护和升级. 当然你可以在文件名上体现,比如有个程序叫 yun,文件名写为 yun_1.0.2,但这个需要每次手动维护,而且不能100%确保当前程序就是那个版本.所以, ...

  5. java接口vm和dto的区别_第十八节:详解Java抽象类和接口的区别

    前言 对于面向对象编程来说,抽象是它的特征之一. 在Java中,实现抽象的机制分两种,一为抽象类,二为接口. 抽象类为abstract class,接口为Interface. 今天来学习一下Java中 ...

  6. 锐捷三层链路聚合配置+命令详解

    配置要点: 1.第一步先要创建一个AP口,并且将该AP口更改为三层口,并且配置IP地址 2.进入需要加入AP的物理端口配置模式,将物理口变为三层口.如果聚合组的类型的光口,并且需要将光电复用口加入此聚 ...

  7. it工程师和码农的区别_毕业生 | IT行业岗位详解

    点击"Cisco思科CCIE俱乐部"→点击右上角"..."→"设为星标"   资讯丨干货丨入群 联系小E微信:SPOTO123456 现在大 ...

  8. 链路聚合_网络技术纯干货之带宽翻倍——链路聚合LACP

    近些年,随着光纤宽带的升级,200M/500M/1000M宽带的普及,以及用户自建网络数据存储,千兆速率带宽愈发成为瓶颈,目前小型网络万兆普及还未成熟,链路聚合成为缓解网络带宽的最优解决方案 开始之前 ...

  9. 论vue3.0和vue2.0区别之编程方式及例子详解

    系列文章目录 第一章 论vue3.0和vue2.0区别之编程方式及例子详解 第二章 同一台电脑 实现 vue-cli2和vue-cli3同时并存 及 常见命令 第三章 vue3.0项目实战 - Ele ...

最新文章

  1. ValueError: invalid literal for int() with base 10
  2. JQuery 的部分高级语法
  3. WinForm登录模块设计开发
  4. [你必须知道的.NET]第十七回:貌合神离:覆写和重载
  5. Pycharm - 创建python 文件模版
  6. day32,尚硅谷视频学习中
  7. 【拆书】9000字总结,一文掌握737页程序员圣经《深入理解计算机系统》(第三版)重点
  8. 校园网免认证登录连接
  9. 康诺特酒吧摘得2021全球50家最佳酒吧桂冠;华住与京能集团达成战略合作 | 全球旅报...
  10. Windows 10 资源管理器使用深色主题
  11. c语言编程存款问题,c程序问题输入存款金额money存期yea...
  12. Excel数据行高参差不齐,如何一键设置固定行高
  13. HDU-1028题解
  14. 现在有很多第三方的SDK来做直播,那么我们改选择哪一种?
  15. 网络串流_串流免费音乐的最佳网站
  16. 编译linux源码报错,记录一次Linux内核源码编译实验
  17. [转载]软件常见的各种版本英文缩写
  18. 聊天机器人 2020
  19. 恢复时间目标(RTO)和恢复点目标(RPO)的差异
  20. APPSO 视频号-空白昵称(全系统通用)

热门文章

  1. 远离烈日 盘点中国10大避暑胜地
  2. c语言程序设计教程龚尚福,C语言程序设计教程
  3. 今年的12306竟然没有崩溃!铁总请了哪位神仙?
  4. 【定量分析、量化金融与统计学】统计推断基础(5)---一类错误与二类错误
  5. 进程池 python_Python进程池
  6. 自动化专业毕业设计选题推荐
  7. 特立独行的幸福 (25分)
  8. win7安装sql2000安装界面不能弹出
  9. QeePHP中上传多个文件的基础写法
  10. 能否在BroadcastReceiver里创建AlertDialog并显示?