精华内容
下载资源
问答
  • Lacp

    2021-05-19 21:18:48
    链路汇聚控制协议-LACP 以太网链路聚合Eth-Trunk简称链路聚合,通过将多个物理接口捆绑为一个逻辑接口,可以在不进行硬件升级的条件下,达到增加链路带宽的目的。 链路聚合技术主要有以下三个优势: 1.增加带宽 链路...

    链路汇聚控制协议-LACP

    以太网链路聚合Eth-Trunk简称链路聚合,通过将多个物理接口捆绑为一个逻辑接口,可以在不进行硬件升级的条件下,达到增加链路带宽的目的。

    链路聚合技术主要有以下三个优势:

    1.增加带宽

    链路聚合接口的最大带宽可以达到各成员接口带宽之和。

    2.提高可靠性

    当某条活动链路出现故障时,流量可以切换到其他可用的成员链路上,从而提高链路聚合接口的可靠性。

    3.负载分担

    在一个链路聚合组内,可以实现在各成员活动链路上的负载分担。

    链路聚合组和链路聚合接口

    链路聚合组LAG(Link Aggregation Group)是指将若干条以太链路捆绑在一起所形成的逻辑链路。

    每个聚合组唯一对应着一个逻辑接口,这个逻辑接口称之为链路聚合接口或Eth-Trunk接口。链路聚合接口可以作为普通的以太网接口来使用,与普通以太网接口的差别在于:转发的时候链路聚合组需要从成员接口中选择一个或多个接口来进行数据转发。

    成员接口和成员链路

    组成Eth-Trunk接口的各个物理接口称为成员接口。成员接口对应的链路称为成员链路。

    活动接口和非活动接口、活动链路和非活动链路

    链路聚合组的成员接口存在活动接口和非活动接口两种。转发数据的接口称为活动接口,不转发数据的接口称为非活动接口。

    活动接口对应的链路称为活动链路,非活动接口对应的链路称为非活动链路。

    活动接口数上限阈值

    设置活动接口数上限阈值的目的是在保证带宽的情况下提高网络的可靠性。当前活动接口数目达到上限阈值时,再向Eth-Trunk中添加成员接口,不会增加Eth-Trunk活动接口的数目,超过上限阈值的链路状态将被置为Down,作为备份链路。

    例如,有8条无故障链路在一个Eth-Trunk内,每条链路都能提供1G的带宽,现在最多需要5G的带宽,那么上限阈值就可以设为5或者更大的值。其他的链路就自动进入备份状态以提高网络的可靠性。

    活动接口下限阈值

    设置活动接口数下限阈值是为了保证最小带宽,当前活动链路数目小于下限阈值时,Eth-Trunk接口的状态转为Down。

    例如,每条物理链路能提供1G的带宽,现在最小需要2G的带宽,那么活动接口数下限阈值必须要大于等于2。

    链路聚合模式

    根据是否启用链路聚合控制协议LACP(Link Aggregation Control Protocol),链路聚合分为手工模式和LACP模式。

    链路聚合方式

    同板:是指链路聚合时,同一聚合组的成员接口分布在同一单板上。

    跨板:是指链路聚合时,同一聚合组的成员接口分布在不同的单板上。

    跨框:是指在集群场景下,成员接口分布在集群的各个成员设备上。具体请参见集群环境下的链路聚合。

    跨设备:是指E-Trunk基于LACP(单台设备链路聚合的标准)进行了扩展,能够实现多台设备间的链路聚合。

    手工模式链路聚合

    手工模式下,Eth-Trunk的建立、成员接口的加入由手工配置,没有链路聚合控制协议LACP的参与。该模式下所有活动链路都参与数据的转发,平均分担流量。如果某条活动链路故障,链路聚合组自动在剩余的活动链路中平均分担流量。

    当需要在两个直连设备之间提供一个较大的链路带宽,而其中一端或两端设备都不支持LACP协议时,可以配置手工模式链路聚合。

    LACP模式链路聚合

    链路聚合控制协议LACP(Link Aggregation Control Protocol),是基于IEEE802.3ad标准的一种实现链路动态聚合与解聚合的协议,以供设备根据自身配置自动形成聚合链路并启动聚合链路收发数据,LACP模式就是采用LACP的一种链路聚合模式。聚合链路形成以后,LACP负责维护链路状态,在聚合条件发生变化时,自动调整链路聚合。

    对比手工模式和LACP模式:

    Eth-Trunk的建立方式
    手工模式:Eth-Trunk的建立、成员接口的加入由手工配置,没有链路聚合控制协议的参与。

    LACP模式:Eth-Trunk的建立是基于LACP协议的,LACP为交换数据的设备提供一种标准的协商方式,以供系统根据自身配置自动形成聚合链路并启动聚合链路收发数据。聚合链路形成以后,负责维护链路状态。在聚合条件发生变化时,自动调整或解散链路聚合。

    设备是否需要支持LACP协议
    手工模式:不需要

    LACP模式:需要

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

    LACP模式:正常情况下,部分链路是活动链路。所有活动链路均参与数据转发。如果某条活动链路故障,链路聚合组自动在非活动链路中选择一条链路作为活动链路,参与数据转发的链路数目不变。

    是否支持跨设备的链路聚合
    手工模式:不支持

    LACP模式:支持

    检测故障
    手工模式:只能检测到同一聚合组内的成员链路有断路等有限故障,但是无法检测到链路断连、错连等故障。

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

    LACP模式链路聚合

    系统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条链路的总和。

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

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

    LACP模式实现原理

    LACP通过链路聚合控制协议数据单元LACPDU(Link Aggregation Control Protocol Data Unit)与对端交互信息,LACPDU报文中包含设备的系统优先级、MAC地址、接口优先级、接口号和操作Key等信息。

    LACP交互过程:

    1.在LACP模式的Eth-Trunk中加入成员接口后,两端互相发送LACPDU报文。

    2.确定主动端和活动链路。

    端口状态协商(selected、standby)

    在动态汇聚组中,端口可能处于两种状态:Selected 或Standby。Selected 端口和Standby 端口都能收发LACP 协议,但Standby 端口不能转发用户报文。由于设备所能支持的汇聚组中的最大端口数有限制,如果当前的成员端口数量超过了最大端口数的限制,则本端系统和对端系统会进行协商,根据设备ID 优的一端的端口ID 的大小,来决定端口的状态。具体协商步骤如下:

    比较设备ID(系统优先级+系统MAC 地址)。先比较系统优先级,如果相同再比较系统MAC 地址。设备ID 小的一端被认为优。

    比较端口ID(端口优先级+端口号)。对于设备ID 优的一端的各个端口,首先比较端口优先级,如果优先级相同再比较端口号。端口ID 小的端口为Selected 端口,剩余端口为Standby 端口。在一个汇聚组中,处于Selected 状态且端口号最小的端口为汇聚组的主端口,其他处于Selected 状态的端口为汇聚组的成员端口。

    动态LACP:

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

    LACP报文格式(推荐华为的报文查询工具):

    https://support.huawei.com/hedex/pages/EDOC1000105967AZI0130X/07/EDOC1000105967AZI0130X/07/resources/message/cd_feature_lacp_message_format.html?ft=99&id=

    目的地址是组播地址:01-80-C2-00-00-02

    协议类型:0x8809

    报文子类型:0x01(LACP)

    Actor tlv

    Partner tlv

    链路聚合控制的相关参数

    1.LACP协议如何唯一的标识聚合组:

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

    2.端口ID(Port ID):

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

    3.聚合ID:

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

    端口Key

    聚合端口中有两种key:一种是操作key,一种是管理key。

    操作key是为形成聚合当前使用的key,管理key是允许管理者对key值进行操作的key。

    操作Key

    在动态LACP聚合中,只有操作KEY相同的端口才能属于同一个聚合组,你可以认为操作KEY相同的端口,其属性相同。

    在手工聚合和静态LACP聚合中,虽然同一个聚合组中的端口的操作KEY不一定相同(因端口由管理员手工加入),但是Selected端口的操作KEY一定相同。

    操作Key 是在端口汇聚时,系统根据端口的配置(即速率、双工、基本配置、管理Key)生成的一个配置组合。

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

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

    3.动态汇聚端口在使能LACP 协议后,其管理Key 预设为零。

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

    六要素

    1.四个要素:

    一个聚合组来说,如果需要进行唯一标识的话,需要包含四个元素:本端系统ID、本端操作KEY、对端系统ID、对端操作KEY

    2.两个要素:

    系统中并不是所有聚合组都包含多个链路,为了区分只包含单个链路的聚合组的情况,还需要额外加上两个元素:本端端口ID和对端端口ID。

    3.结论:

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

    端口类型:

    1.Selectet 和未选中:

    参与流量转发的端口称为Selected端口,否则称为Unselected端口

    2.主端口(master端口)

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

    3.补充:

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

    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)

    端口离开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不匹配,从而离开聚合组。

    Active模式和Passive模式

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

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

    LACP其他功能:

    LACP抢占:

    使能LACP抢占功能后,聚合组会始终保持高优先级的接口作为活动接口的状态。以下两种情况需要使能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模式链路聚合组两端设备中任何一端检测到以下事件,都会触发聚合组的链路切换:

    链路Down事件。

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

    LACP协议发现链路故障。

    接口不可用。

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

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

    关闭故障链路。

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

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

    链路聚合负载分担模式:

    在使用Eth-Trunk转发数据时,由于聚合组两端设备之间有多条物理链路,可能会产生同一数据流的第一个数据帧在一条物理链路上传输,而第二个数据帧在另外一条物理链路上传输的情况。这样一来同一数据流的第二个数据帧就有可能比第一个数据帧先到达对端设备,从而产生接收数据包乱序的情况。

    为了避免这种情况的发生,Eth-Trunk采用逐流负载分担的机制,把数据帧中的地址通过HASH算法生成HASH-KEY值,然后根据这个数值在Eth-Trunk转发表中寻找对应的出接口,不同的MAC或IP地址HASH得出的HASH-KEY值不同,从而出接口也就不同,这样既保证了同一数据流的帧在同一条物理链路转发,又实现了流量在聚合组内各物理链路上的负载分担。逐流负载分担能保证包的顺序,但不能保证带宽利用率。

    转发原理:

    Eth-Trunk位于MAC与LLC子层之间,属于数据链路层。

    Eth-Trunk模块内部维护一张转发表,这张表由以下两项组成。

    HASH-KEY值

    HASH-KEY值是根据数据包的MAC地址或IP地址等,经HASH算法计算得出。

    接口号

    Eth-Trunk转发表表项分布和设备每个Eth-Trunk支持加入的成员接口数量相关,不同的HASH-KEY值对应不同的出接口。

    Eth-Trunk模块根据转发表转发数据帧的过程如下:

    Eth-Trunk模块从MAC子层接收到一个数据帧后,根据负载分担方式提取数据帧的源MAC地址/IP地址或目的MAC地址/IP地址。

    根据HASH算法进行计算,得到HASH-KEY值。

    Eth-Trunk模块根据HASH-KEY值在转发表中查找对应的接口,把数据帧从该接口发送出去。

    用户可以根据流量模型设置不同的负载分担方式,流量中某个参数变化越频繁,选择对应负载分担方式的流量就越均衡。例如,在网络中,如果报文的IP地址变化较频繁,那么选择基于目的IP地址、源IP地址或源IP和目的IP地址的负载分担模式更有利于流量在各物理链路间合理的负载分担;如果报文的MAC地址变化较频繁,IP地址比较固定,那么选择基于目的MAC地址、源MAC地址或源MAC和目的MAC地址的负载分担模式更有利于流量在各物理链路间合理的负载分担。

    配置负载分担方式时,请注意:

    负载分担方式只在流量的出接口上生效,如果发现各入接口的流量不均衡,请修改上行出接口的负载分担方式。

    尽量将数据流通过负载分担在所有活动链路上传输,避免数据流仅在一条链路上传输,造成流量拥堵,影响业务正常运行。

    例如,数据报文的目的MAC和IP地址只有一个,则应选择根据报文的源MAC和IP地址进行负载分担,如果选择根据报文的目的MAC和IP地址进行负载分担则会造成流量只在一条链路上传输,造成流量拥堵。

    展开全文
  • Synopsis: 为保证万兆交换机不出现单点故障,可以选择两台 H3C S6300 配置堆叠,这样就算一台交换机宕机了,网络服务不会被中断。配置动态链路聚合 LACP 可以实现网络高可用,且带宽加倍 20Gb/s
  • 华为交换机LACP配置手册
  • LACP

    千次阅读 2017-02-10 17:11:52
    LACP协议的作用 LACP的作用是根据系统本地信息以及与对端系统动态交换的信息,自动形成链路的汇聚或解汇聚,并控制链路的报文收发状态。 没有运行LACP的聚合,称之为手工聚合,由管理员指定聚合成员,并根据...

    1         LACP协议的作用

    LACP的作用是根据系统本地信息以及与对端系统动态交换的信息,自动形成链路的汇聚或解汇聚,并控制链路的报文收发状态。

    没有运行LACP的聚合,称之为手工聚合,由管理员指定聚合成员,并根据端口的up/down状态来确定是否聚合。但是链路两端缺少交互,因此这种聚合可能会引起问题,例如,如果用户错误地将物理链路连接到不同的设备上或者同一设备的不能形成聚合的端口上,则系统无法发现。

    聚合控制包括以下活动:

    1)         检查候选链路是否能真正被聚合

    2)         控制聚合组链路的增加,甚至是聚合组的创建

    3)         监测链路状态,保证聚合的可用性

    4)         聚合成员不可用时删除相应的聚合组链路 ,如果没有任何成员了则删除聚合组。

    2         术语

    只有速率和双工属性相同、端口基本配置相同、连接到同一个设备、并且对端端口也满足以上条件时,才能被动态聚合在一起。因此LACP的计算需要如下参数:

    l  系统标识

    参与聚合的每个系统有全局唯一标识,其值为:

    系统优先级(高2字节)+MAC地址(低6字节)

    l  聚合组标识

    聚合组有一个全局的MAC标识,一般为聚合组中某个端口的MAC。聚合组也有一个唯一的整数标识,用来识别系统内的聚合组

    l  端口标识

    LAC使用的端口标识由端口优先级和端口号组成。高两位是端口优化级,低两位是端口号

    l  能力集标识

    标识端口和聚合组能力集(速率、双工等)。一个端口的聚合能力集由一个整数表示,也就是Key. 这有利于设备聚合能力的通信和比较,其值取决于以下几个因素:

    a) 端口物理特征,如速率、双工、点对点或共享介质。

    b) 网络管理员设置的配置约束

    c) 高层协议使能的端口号(如网络层分配的)

    d) 端口自己的特征或约束

    每个端口有一个运行Key和管理key。运行key是当前活动聚合的参数组成的key,管理key是管理员配置的key值。

    系统需要可以指定某条链路不能和其它链路聚合,称之为独立链路(individual link)。

    聚合组同样也有管理key和运行key。key组的成员都必须有同样的运行key值。

    所有的key都是16bit。非0值都为有效值

    初始化时有两种可选方案

    1. 所有端口都分配不同的key,这样默认都是独立的链路

    2. 所有端口都分配相同的key,随时准备聚合

    3         端口聚合过程

    3.1         选择聚合组

    端口对聚合组的选择有两种,一是由管理员指定,二是由端口自动选择。选择算法可自行实现。一般是根据端口的运行key来选择,具体算法在后面的Selection Logic中描述。

    3.2         两端达成一致

    本地和对端系统都同意加入聚合组后才可开始数据帧的转发。

    3.3         添加到聚合组

    对可以聚合的端口下发到硬件

    3.4         使能收发

    在双方准备好聚合之前,端口都是不转发数据报文的。端口从一个聚合组切到另一个聚合组时,需要确定之前的聚合组上没有数据发送。在新的聚合组上发送数据之前也需要通知对端。只在双方都协商好后,才开始收发数据报文。

    3.5         聚合成员监测

    实时监测每条链路以确保每个链路的两端仍然对链路的聚合达成一致。

    3.6         解汇聚

    链路事件等原因引起的端口运行key变化可能引起一个端需要从聚合组中删除。这时,先要disable数据报文的收发,然后通知对端系统,再重新选择聚合组。

    4         LACP帧格式

    开 启LACP协议的端口会定期发送LACPDU。发送端称为Actor, 接收端称为Partner。支持主从模式(Active/Passive),处于Active的一端可主动发送LACPDU, Passive只在对端为Active时才发送。

    发送周期分为快发送和慢发送,可由管理配置。

    除了周期发送,可会由事件触发发送, 如定时器超时、端口状态变化、管理员下发配置、协议报文收发等。

    LACP帧格式如下:

     

     

     

     

     

    Octets

    Destination Address

    6

    Source Address

    6

    Length/Type

    2

    Subtype = LACP

    1

    Version Number

    1

    TLV_type = Actor Information

    1

    Actor_Information_Length = 20

    1

    Actor_System_Priority

    2

    Actor_System

    6

    Actor_Key

    2

    Actor_Port_Priority

    2

    Actor_Port

    2

    Actor_State

    1

    3 Reserved

    3

    TLV_type = Partner Information

    1

    Partner_Information_Length = 20

    1

    Partner_System_Priority

    2

    Partner_System

    6

    Partner_Key

    2

    Partner_Port_Priority

    2

    Partner_Port

    2

    Partner_State

    1

    3 Reserved

    3

    TLV_type = Collector Information

    1

    Collector_Information_Length = 16

    1

    CollectorMaxDelay

    2

    Reserved

    12

    TLV_type = Terminator

    1

    Terminator_Length = 0

    1

    Reserved

    50

    FCS

    4

     

    a)         Destination Address(DA): 使用的是慢协议组播地址01:80:c2:00:00:02

    b)         Source Address(SA): 发送LACP协议报文的端口MAC地址

    c)         Length/Type: 慢协议类型值0x8809

    d)         Subtype: LACP协议子类型为0x01

    e)         Version Number: 标识LACP协议的版本号,目前为0x01

    f)          TLV_Type = Actor Information. 值为0x01

    g)         Actor_Information_Length: Actor的信息TLV长度,固定为0x14

    h)         Actor_System_Priority: Actor管理员配置的系统优化级

    i)           Actor_System: Actor的系统MAC地址

    j)           Actor_Key: Actor的运行key

    k)         Actor_Port_Priority:  发出此PDU的端口优先级

    l)           Actor_Port: 发出此PDU的端口编号

    m)       Actor_State: Actor的端口状态,为8bit的bit位图,编码见Figure  4.1

    0

    1

    2

    3

    4

    5

    6

    7

    LACP_Activity

    LACP_Timeout

    Aggregation

    Synchronization

    Collecting

    Distributing

    Expired

    Defaulted

    Figure  4.1 Actor_State和Partner_State字段的比特编码

     

    1)         LACP_Activity: 端口在链路控制中的主从状态,0表示Passive, 1表示Active。

    2)         LACP_Timeout: 超时时间,0表示长超时,1表示短超时

    3)         Aggregation: 表示端口的聚合能力。 TRUE(1)表示链路是可聚合的,FALSE(0)表示链路是独立链路,不可聚合

    4)         Synchronization: 表示端口当前聚合是否完成。TRUE(1)表示发送的链路处于IN_SYNC状态,即端口已被分配到正确的聚合组中, FALSE(0)表示链路为OUT_OF_SYNC状态,即端口还没有选择正确的聚合组

    5)         Collecting: TRUE(1)表示当前链路收包enable, 否则为FALSE(0)

    6)         Distributing: TRUE(1)表示当前链路发包enable, 否则为FALSE(0)

    7)         Defaulted: TRUE(1)表示Actor使用的Partner信息来自管理员配置的默认值。FALSE(0)表示Actor使用的Partner信息来自接收的LACPDU

    8)         Expired: TRUE(1)表示Actor RX状态机处于超时状态,否则不在超时状态。

    说明: Defaulted和Expired是作调试用.

    n)         Reserved: 保留

    o)         TLV_Type = Partner Information. 值为0x02

    p)         Partner _Information_Length: Partner的信息TLV长度,固定为0x14

    q)         Partner _System_Priority: Partner管理员配置的系统优化级

    r)          Partner _System: Partner的系统MAC地址

    s)         Partner _Key: Partner的运行key

    t)          Partner _Port_Priority: Partner的端口优先级

    u)         Partner _Port: Partner的端口编号

    v)         Partner _State: Actor认为的Partner状态,编码见Figure  4.1

    w)       Reserved: 保留

    x)         TLV_Type = Collector Information. 值为0x03

    y)         Collector_Information_Length: 端口Collector信息TLV长度,固定为0x10

    z)         CollectorMaxDelay: 发送端的帧从聚合解析层到MAC客户端的发送延迟,单位为10ms

    aa)     Reserved: 保留

    bb)     TLV_Type = Terminator. end of message值为0x00

    cc)      Terminator_Length: 使用固定值0x00

    dd)     Reserved: 保留

    ee)     FCS: 帧校验序列

    5         LACP状态机

    LACP由6个状态机组成,包括Receive machine, Periodic Transmission machine, Selection Logic, Mux machine, Transmit machine, Actor Churn Detection. 这6个状态机都是基于端口的,维护各个端口及其对端端口的信息,计算每个端口的聚合状态,与其它交换机交换LACP协议报文,调用聚合接口进行聚合组以及聚合成员管理。

    状态机由事件驱动进行状态迁移,事件包括定时器超时、端口事件、报文收发、用户下发配置等。

    状态机简要描述如下:

    a)         Receive machine:处理接收到的LACP协议报文,解析报文,记录对端的聚合相关信息,如果本端的状态有改变,则触发TX发送LACPDU.如果对端状态有改变则置端口为UNSELECT状态.如果接收超时,则启用默认Partner配置。

    b)         Periodic Transmission machine:周期发送LACPDU。根据LACP_Activity、LACP_Enable、port_enable几个值决定是否周期发送,如果双方的LACP_Activity都为FALSE则不需要发送,如果有一方的LACP_Enable或者port_enable为FALSE则不需要发送,其它情况需要发送。发送时间取决于对端的LACP_Timeout,分快速发送和慢速发送两个定时器,当Parterner要求长时间超时时,就进入慢发送状态,反之,进入快发送状态。

    c)      Selection Logic:作用是将处于DETACHED状态的端口选择加入一个聚合组。

    d)         MUX machine:根据本端端口和对端端口的SELECT状态将端口绑定或剥离聚合组(下底层驱动),根据双方的同步状态控制端口接收和发送数据功能的开启和关闭(设置端口的STP状态为Forward/Block)。

    e)         Transmit machine:根据其它状态机的要求,周期地处理LACPDU的发送,当LACP enable且NTT为TRUE时才发送报文,发送次数不大于3次。每次LACPDU发送完毕后,状态变量NTT应该置为FALSE

    f)          Actor Churn Detection:抖动检测状态机,若链路在抖动检测时间内仍不能同步则认为出现抖动。这种情况可能是设备故障或设备不支持配置。

     

    Figure 5.1 状态机之间的关系

    5.1         Receive machine

     

    5.1.1CURRENT状态

    收到LACP报文后进行CURRENT状态。

    update_Selected函数判断接收的LACP报文里的以下字段(Actor_Port, Actor_Port_Priority, Actor_System, Actor_System_Priority, Actor_Key, Actor_State.Aggregation), 如果与本端口的(Partner_Oper_Port_Number, Partner_Oper_Port_Priority,Partner_Oper_System, Partner_Oper_System_Priority, Partner_Oper_Key, Partner_Oper_State.Aggregation)值不一致,则认为对端信息发生了变化,就会设置本端口为UNSELECT状态。否则,SELECT状态不变。Receive machine只能设置端口选择状态为UNSELECTED,只有Selection Logic才可以设置端口选择状态为SELECTED和STANDBY.

    updateNTT函数判断是否需要发送协议报文, 根据LACP报文里的以下字段(Partner_Port, Partner _Port_Priority, Partner _System, Partner _System_Priority, Partner _Key, Partner _State.LACP_Activity, Partner_State.LACP_Timeout, Partner_State.Synchronization, Partner_State.Aggregation), 如果与本端口的(Actor_Port_Number, Actor_Port_Priority, Actor_System, Actor_System_Priority, Actor_Oper_Key, Actor_Oper_State.LACP_Activity, Actor_Oper_State.LACP_Timeout, Actor_Oper_State..Synchronization, Actor_Oper_State.Aggregation)值不一致,则认为对端所知信息已过时,需要重新告知对方,置NTT为TRUE。否则NTT值不变。

    recordPDU函数记录LACPDU中的信息到本端口的Partner信息。将报文中的Actor信息(Actor_Port, Actor_Port_Priority, Actor_System, Actor_System_Priority, Actor_Key, Actor_State)作为当前的Partner运行信息(Partner_Oper_Port_Number, Partner_Oper_Port_Priority,Partner_Oper_System, Partner_Oper_System_Priority, Partner_Oper_Key, Partner_Oper_State), 除了Synchronization字段, Partner_Oper_State. Synchronization的值计算需要判断报文中的Partner信息与本地的Actor信息是否一致,即比较LACP报文里的以下字段(Partner_Port, Partner _Port_Priority, Partner _System, Partner _System_Priority, Partner _Key, Partner _State.LACP_Activity, Partner_State.LACP_Timeout, Partner_State.Synchronization, Partner_State.Aggregation), 与本端口的(Actor_Port_Number, Actor_Port_Priority, Actor_System, Actor_System_Priority, Actor_Oper_Key, Actor_Oper_State.LACP_Activity, Actor_Oper_State.LACP_Timeout, Actor_Oper_State..Synchronization, Actor_Oper_State.Aggregation)值比较,如果全部匹配且报文中的Actor_State.Synchronization为True且任何一方的LACP_Activity为True,则置Partner_Oper_State. Synchronization为TRUE, 否则置为False。对方是独立链路时(即报文中Actor_State.Aggregation为False)时认为其两者信息一致. 记录这些信息后将Actor_oper_Port_State.Defaulted置为False, 表示本端口所得的Partner信息来自协议报文,而不是管理配置的。.

    启动current_while_timer定时器,超时时间取决于本端Actor_Oper_State.LACP_Timeout的值, 其为0表示长超时,超时时间为Long_Timeout_Time, 默认为20s.其值为1表示短超时,超时时间为Short_Timeout_Time,默认为1s, 此值管理员可配。

    5.1.2EXPIRED状态

    如果current_while_timer时间内没有收到LACPDU, 则状态机迁至EXPIRED状态。

    超时后与对端同步状态置为不同步(Partner_Oper_Port_State.Synchronization=FALSE)。

    为了快速地与对端取得联系,因此设置超时为短时间,即快发送(Partner_State.LACP_Timeout=Short_Timeout_Time)。

    启动current_while_timer定时器,超时时间为Short_Timeout_Time。

    5.1.3DEFAULTED状态

    如果current_while_timer超时后仍没有收到LACPDU则进入DEFAULTED状态。

    update_Default_Selected函数判断默认的Partner参数与当前Partner运行参数是否一致,不一致则设置端口为UNSELECTED。

    recordDefault函数用配置管理下发的数据作为当前Partner的运行参数。这保证了即使没有协议对端存在时,聚合仍可继续运行。

    由于Partner运行参数使用了管理值,因此不存在与对端不一致的情况,所以置Partner同步状态置为同步(Partner_Oper_Port_State.Synchronization=TRUE)

    5.1.4PORT_DISABLED状态

    如果端口的管理状态为DISABLE且BEGIN事件没有发生过,则进入PORT_DISABLED状态。

    置Partner同步状态置为不同步(Partner_Oper_Port_State.Synchronization=FALSE)。

    设置这个状态的原因是,当端口的物理连接不变,但操作状态变可ENABLE时,当前的选择状态保持不变,高层也不用重新计算。

    如果从另外一个端口收到了同样的Actor系统ID和端口ID, 则表示物理连接发生了改变,此时要进入INITIALIZE状态。

    5.1.5INITIALIZE状态

    BEGIN事件发生或PORT_DISABLED状态时检查到端口物理连接发生改变,则进入INITIALIZE状态。

    置端口选择状态为UNSELECTED,这样MUX状态机就会将此端口从聚合组中删除。

    recordDefault函数用默认的Partner管理参数作为当前Partner运行参数。

    port_moved置为FALSE。这样端口可以快速地进入PORT_DISABLE状态。

    5.1.6LACP_DISABLE状态

    如果端口在半双工状态下,则LACP为关闭状态,状态机迁移至LACP_DISABLE状态。此时端口为作一个独立链路参与LACP运行。

    5.2         Periodic Transmission machine

     

     

    5.2.1 NO_PERIODIC

    初始化时,周期性发送是disabled的。当双方的LACP_Activity为Passive时,进入此状态。

    5.2.2FAST_PERIODIC

    快发送状态

    5.2.3SLOW_PERIODIC

    慢发送状态

    5.2.4PERIODIC_TX

    暂态。置NTT为TRUE,然后根据Partner的LACP_Timeout(Partner_Oper_Port_State.LACP_Timeout), 决定迁移至FAST_PERIODIC或者SLOW_PERIODIC。

    5.3         Selection Logic

    选择逻辑可以自行实现。目前应用较多的是管理员手工添加端口到聚合组。

    标准推荐了一种端口自动选择聚合组的算法:

     

    初始化时,每个端口对应一个聚合组,这样系统中的聚合组数与端口数相等。如果端口是独立链路,则端口总是选择自己的聚合器,否则,端口从可以选择的所有聚合组中选择优先级最高的,优先级最高意味着以下值最小

    1)         Actor的系统ID

    2)         Actor的操作key

    3)         Partner的系统ID

    4)         Partner的操作key

    5)         链路能力集支持可聚合

    然后置端口状态为SELECTED或者STANDBY。

    5.4         Mux machine

    以收发绑定的系统为例。

     

    5.4.1 DETACHED状态

    初始化时为此状态,此时端口不属于任何聚合组(有必要的话将其所在的端口组删除),端口收发处于禁止状态。

    5.4.2 WAITING状态

    如果Selection Logic设置端口状态为SELECTED或者STANDBY,则从DETACHEd状态迁移至WAITING状态。在此状态会启动wait_while_timer定时器。

    WAITING状态存在的意义:

    1) 如果选择状态为SELECTED, wait_while_timer会强制延时一会,以以其它端口的重配置同时进行。wait_while_timer超时且其它汇聚到此聚合组的所有端口都超时后,端口汇聚到此聚合组的处理就可以开始进行了。状态机迁移到ATTACHED状态.

    2) 如果选择状态为STANDBY, 则端口在端口选择参数变化时,会保持在WAITING状态一段时间,以使端口选择状态重新评估。如果选择状态变成了UNSELECTED,则端口重新进入DETACHED状态。如果端口状态变成了SELECTED,则执行1)描述的操作。这样做的好处是可以让端口选择状态变成SELECTED时经过最小的延迟。

    5.4.3ATTACHED状态

    将端口加到聚合组中,完成此操作后,置Actor同步状态为TRUE,此时仍禁止端口收发数据报文。

    5.4.4COLLECTING_DISTRIBUTING状态

    在ATTACHED状态时,如果Partner的Sync也为TRUE,则会进入到COLLECTING_DISTRIBUTING状态,此状态端口收发数据报文变为enable。

    在此状态期间,如果端口选择状态变为UNSELECTED或者STANDBY,或者Partner的Sync变为FALSE,则选择至ATTACHED状态。

    5.5         Transmit machine

    当LACP_Enable为TRUE, 且NTT为TRUE时Transmit状态机构造正确的LACPDU并且发送出去。发送后NTT置为FALSE。一个快发送周期内发送的报文数不能超过3.如果超过了,则要等到此限制被解除的时候再发送,且发送时的报文是根据实时状态来构造的,而不是首次置NTT时候的状态。也就是说,非队列式的发送,而是根据发送时机的发送。

    LACP_Enable为FALSE时,不发送协议报文。

    5.6         Churn Detection machine

     此状态机是作为诊断功能用的。当两端长时间达不到一致时,意味着设置故障或设备未按照标准协议运行或配置错误。还有可能是系统一端或两端的聚合限制导致的,Churn Detection machine就是用来检测这种情况的,用来提示管理员用来诊断和纠正错误。

    展开全文
  • 华为、思科交换机链路聚合配置(lacp
  • 手工聚合、静态lacp、动态lacp差异
  • 华为交换机LACP配置
  • 802.3ad 链路汇聚 LACP 知识总结, 完全是自己的经验总结
  • LACP学习笔记

    2020-12-22 15:03:46
    LACP学习笔记来源:https://blog.csdn.net/zhengmx100/article/details/53893902参考文档:download.h3c.com.cn/download.do?id=1420936https://read01.com/5MK6eo.html一、LACP简介1、LACP协议简介基于IEEE802.3ad ...

    LACP学习笔记

    来源: https://blog.csdn.net/zhengmx100/article/details/53893902

    参考文档:download.h3c.com.cn/download.do?id=1420936

    https://read01.com/5MK6eo.html

    一、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。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 协议为关闭状态,禁止用户使能手工聚合端口的 LACP 协议。静态聚合端口 的 LACP 协议为使能状态,当一个静态聚合组被删除时,其成员端口将形成一个或 多个动态 LACP 聚合,并保持 LACP 使能。禁止用户关闭静态聚合端口的 LACP 协 议。

    三、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 )聚合ID:

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

    2、端口key

    聚合端口中有两种key:一种是操作key,一种是管理key。

    操作key是为形成聚合当前使用的key,管理key是允许管理者对key值进行操作的key。

    3,操作键

    在动态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、对端操作KEY

    b )两个要素:

    系统中并不是所有聚合组都包含多个链路,为了区分只包含单个链路的聚合组的情况,还需要额外加上两个元素:本端端口ID和对端端口ID。

    c )结论:

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

    5 、端口类型:

    一)Selectet 和未选中:

    参与流量转发的端口称为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基础

    千次阅读 2020-12-20 14:29:48
    文档简介:以华为LACP协议在交换机的应用为主,横向对比其他厂家配置,以及与其他厂家lacp对接的实现。一、维基百科解释链路聚合(英语: Link Aggregation )是一个计算机网络术语,指将多个物理端口汇聚在一起,形成...

    文档简介:

    以华为LACP协议在交换机的应用为主,横向对比其他厂家配置,以及与其他厂家lacp对接的实现。

    一、维基百科解释

    链路聚合(英语: Link Aggregation )是一个计算机网络术语,指将多个物理端口汇聚在一起,形成一个逻辑端口,以实现出/入流量吞吐量在各成员端口的负荷分担,交换机根据用户配置的端口负荷分担策略决定网络封包从哪个成员端口发送到对端的交换机。当交换机检测到其中一个成员端口的链路发生故障时,就停止在此端口上发送封包,并根据负荷分担策略在剩下的链路中重新计算报文的发送端口,故障端口恢复后再次担任收发端口。链路聚合在增加链路带宽、实现链路传输弹性和工程冗余等方面是一项很重要的技术。

    二、Eth-Trunk基本配置

    system-view

    [~HUAWEI] interface eth-trunk 1

    [*HUAWEI-Eth-Trunk1] mode lacp-static

    [*HUAWEI-Eth-Trunk1] trunkport 10ge 1/0/1 to 1/0/3

    [*HUAWEI-Eth-Trunk1] commit

    [~HUAWEI-Eth-Trunk1] quit

    华为的设备支持 两种Eth-trunk工作模式:手工负载分担模式

    LACP模式:静态和动态

    手工负载分担(Manual

    load-balance)模式下,Eth-Trunk的建立、成员接口的加入由手工配置,没有LACP(link Aggregation

    Control

    Protocol)协议报文的参与。该模式下所有活动链路都参与数据的转发,平均分担流量,因此称为负载分担模式。如果某条活动链路故障,链路聚合组自动在剩余的活动链路中平均分担流量,当需要在两个直连设备间提供一个较大的链路带宽而设备又不支持LACP协议时,可以使用手工负载分担模式。

    静态LACP(Static LACP)模式是一种利用LACP协议进行聚合参数协商、确定活动接口和非活动接口的链路聚合方式。

    该模式下,需手工创建Eth-Trunk,手工加入Eth-Trunk成员接口,由LACP协议协商确定活动接口和非活动接口。

    静态LACP模式也称为M∶N模式。这种方式同时可以实现链路负载分担和链路冗余备份的双重功能。在链路聚合组中M条链路处于活动状态,这些链路负责转发数据并进行负载分担,另外N条链路处于非活动状态作为备份链路,不转发数据。当M条链路中有链路出现故障时,系统会从N条备份链路中选择优先级最高的接替出现故障的链路,同时这条替换故障链路的备份链路状态变为活动状态开始转发数据。

    和静态LACP模式相对应的还包括动态LACP模式。动态LACP模式的链路聚合,从Eth-Trunk的创建到加入成员接口都不需要人工的干预,由LACP协议自动协商完成。一般用在跟服务器对接。

    三、LACP 报文格式

    四、华为跟其他厂家lacp模式对接表Cisco 工作模式Huawei 工作模式

    onmanual(缺省模式)

    active(LACP)lacp-static

    passive(LACP)lacp-static

    atuo(PAgP)不支持对接

    desirable(PAgP)不支持对接

    备注:

    其他厂家如H3C、ZTE类似主要的区别就在于huawei LACP-STATIC对应的是其他厂家dynamic模式。

    案例:

    摘录自华为CE12800文档组网图

    图1 华为设备对接(或替换)CISCO设备

    操作步骤

    创建链路聚合组,配置LACP模式并将接口加入Eth-Trunk。

    # 配置华为设备。 system-view

    [~HUAWEI] interface eth-trunk 1

    [*HUAWEI-Eth-Trunk1] mode lacp-static

    [*HUAWEI-Eth-Trunk1] trunkport 10ge 1/0/1 to 1/0/3

    [*HUAWEI-Eth-Trunk1] commit

    [~HUAWEI-Eth-Trunk1] quit

    # 配置CISCO设备。CISCO#configure terminal

    CISCO(config)#interface port-channel 1

    CISCO(config-if)#exit

    CISCO(config)#interface range gigabitEthernet 0/1, gigabitEthernet 0/2, gigabitEthernet 0/3

    CISCO(config-if-range)#channel-protocol lacp

    CISCO(config-if-range)#channel-group 1 mode active

    CISCO(config-if-range)#exit

    CISCO(config)#exit

    # 查看华为设备。[~HUAWEI] display eth-trunk 1Eth-Trunk1's state information is:

    Local:

    LAG ID: 1                       Working Mode: Static

    System Priority: 32768          System ID: 0025-9e95-7c31

    Operating Status: up            Number Of Up Ports In Trunk: 3

    Timeout Period: Slow

    --------------------------------------------------------------------------------

    ActorPortName          Status   PortType PortPri PortNo PortKey PortState Weight

    10GE1/0/1              Selected 1GE      32768   1      20289   10111100  1

    10GE1/0/2              Selected 1GE      32768   2      20289   10111100  1

    10GE1/0/3              Selected 1GE      32768   3      20289   10100000  1

    Partner:

    ActorPortName          SysPri   SystemID        PortPri PortNo PortKey PortState

    10GE1/0/1              32768    0025-9e95-7c11  32768   0      20289   10111100

    10GE1/0/2              32768    0025-9e95-7c11  32768   0      20289   10111100

    10GE1/0/3              32768    0025-9e95-7c11  32768   0      20289   10100000

    # 查看CISCO设备。CISCO#show etherchannel 1 port-channel

    Port-channels in the group:

    ---------------------------

    Port-channel: Po1     (Primary Aggregator)

    ------------

    Age of the Port-channel   = 0d:05h:03m:48s

    Logical slot/port   = 2/1           Number of ports = 3

    HotStandBy port  =null

    Port state          = Port-channel Ag-Inuse

    Protocol            =   LACP

    Port security       = Disabled

    Ports in the Port-channel:

    Index    Load    Port    EC state      No of bits

    ------+-------------+-----------+-----------------------------------------------

    0     00      Gi0/1   Active            0

    0     00      Gi0/2   Active            0

    0     00      Gi0/3   Active            0

    Time since last port bundled:     0d:00h:44m:09s      Gi0/3

    Time since last port Un-bundled:  0d:00h:44m:13s      Gi0/3

    展开全文
  • 链路聚合 ——LACP报文详解

    千次阅读 2020-12-22 15:03:43
    一、 LACP简介1、LACP协议简介基于 IEEE802.3ad 标准的LACP(Link Aggregation Control Protocol,链路汇聚控制协议)是一种实现链路动态汇聚与解汇聚的协议。LACP 协议通过LACPDU(Link Aggregation Control Protocol ...
  • lacp链路聚会标准协议翻译,根据IEEE标准稳定翻译过来
  • 灵活QinQ在实际实现的时候,利用EPON线卡端口TLS属性功能,线卡统一在用 户上来的报文前加上外层VLAN(对应tls vlan,也称为LLID-SVLAN),主控板 收到双层报文后,根据配置的规则进行匹配,如果匹配上,则将外层...
  • 匿名用户1级2016-10-24 回答1、用户权限不同动态lacp汇聚是一种系统自动创建/删除的汇聚,不允许用户增加或删除动态lacp汇聚中的成员端口。只有速率和双工属性相同、连接到同一个设备、有相同基本配置的端口才能被...
  • LACP简介

    2021-01-01 22:12:40
    静态LACP一、LACP二、聚合方式分类三、静态LACP实例总结 一、LACP LACP(链路汇聚控制协议)是一种实现链路动态汇聚的协议。LACP协议通过LACPDU(链路汇聚控制协议数据单元)与对端交互信息。启用某端口的LACP协议后...
  • 当本段配置timeout fast时: interface Eth-Trunk1 mode lacp-static lacp timeout fast 本段会1秒钟发送1次lacp pdu报文检测链路,timeout fast超时时间默认是3秒。也可以自己定位超时时间为其他时间(其他时间...
  • HCNA配置静态LACP模式链路聚合

    千次阅读 2021-01-27 04:14:16
    1、静态LACP模式静态LACP模式是一种利用LACP协议进行聚合参数协商、确定活动接口和非活动接口的链路聚合方式。该模式下,需手工创建Eth-Trunk,手工加入Eth-Trunk成员接口,由LACP协议协商确定活动接口和非活动接口...
  • IEEE 802.3ad 链路聚合与 LACP 的简单知识 & EtherChannel 总结IEEE 802.3ad 链路聚合与 LACP 的简单知识内容提要: 本文主要介绍了链路聚合的概念以及链路聚合与 EtherChannel(以太通道)的区别说明:IEEE 802.3ad...
  • 动态LACP配置案例

    2021-07-03 09:33:40
    网络拓扑 各配置 R1配置: <Huawei> u t m <Huawei>system-view ...[Huawei]int eth-trunk 1 ...[R1-Eth-Trunk1]mode lacp-static [R1-Eth-Trunk1]ip add 192.168.12.1 24 [R1-Eth-Trunk1]trunkport g0/0..
  • LACP实现原理1、手工汇聚原理手工负载分担模式链路聚合是应用比较广泛的一种链路聚合,大多数运营级网络设备均支持该特性,当需要在两个直连设备间提供一个较大的链路带宽而对端设备又不支持LACP 协议时,可以使用...
  • 华为交换机LACP模式(动态)链路聚合配置示例猫先生•2019 年 06 月 15 日LACP 模式链路聚合简介以太网链路聚合是指将多条以太网物理链路捆绑在一起成为一条逻辑链路,从而实现增加链路带宽的目的。链路聚合分为手工...
  • LACP配置

    千次阅读 2020-12-21 04:50:35
    2.端口链路处于Up状态,并经过LACP协商后,端口被置于聚合状态(端口被作为一个聚合组的一个成员参与聚合组的数据报文转发),显示为“bndl”状态。3.当端口链路处于UP状态,但是由于对端没有启用LACP,或者因为端口...
  • 链路聚合的手工与LACP配置

    千次阅读 2021-03-11 15:59:34
    链路聚合的配置手工模式和LACP模式 文章目录链路聚合的配置手工模式和LACP模式1、实验环境2、实验思路3、具体实施1.手动配置2.LACP配置个人总结 1、实验环境 配置手工模式 配置LACP模式 2、实验思路 配置...
  • 华为LACP模式

    2021-09-09 09:15:59
    [Huawei-Eth-Trunk1]mode lacp-static [Huawei-Eth-Trunk1]trunkport GigabitEthernet 0/0/1 to 0/0/4 SW2: <Huawei>sys [Huawei]undo info en [Huawei]int Eth-Trunk 1 [Huawei-Eth...
  • LACP及VLAN配置介绍

    2012-09-17 09:57:47
    VLAN规划、LACP、QINQ介绍及配置
  • LACP链路聚合

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

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,215
精华内容 2,086
关键字:

lacp