相关名词

链路聚合,是将多个物理二层链路绑为一个逻辑二层链路的技术。
不同的厂商有不同的叫法:

  • ZTE: Smart Group, SG

  • Cisco: Ether Channel, EC

  • Brocade: Brocade LAG, LAG

  • 华为、华三: Link Aggregation Group,LAG,或Trunk,如果这些接口都是以太网接口,则称为Eth-Trunk

不能把已有的Eth-Trunk成员接口再捆绑成为其它Eth-Trunk的成员。

  • 活动接口(Selected)和非活动接口(Standby):链路聚合存在活动接口和非活动接口两种。转发数据的接口称为活动接口,而不转发数据的接口称为非活动接口。活动接口对应的链路称为活动链路,非活动接口对应的链路称为非活动链路。

  • 活动接口数上限阈值:在Eth-Trunk中,如果配置了活动接口数上限阈值,当活动接口数达到这个值后,再向Eth-Trunk中添加成员接口,不会增加Eth-Trunk活动接口的数目。

  • 活动接口数下限阈值: 设置活动接口数下限阈值主要目的是保证Eth-Trunk链路的带宽。防止由于活动接口数目过少而使这些链路负载过大,出现传输数据丢包的情况。在Eth-Trunk中,如果配置了活动接口数下限阈值,当活动接口数目低于该值时,Eth-Trunk接口状态将变为Down,此时所有Eth-Trunk中的成员接口不再转发数据。

  • 备份链路:在链路聚合中为了提高链路的可靠性,引入了备份链路的机制。而这些备份链路对应的接口通常情况下担当了非活动接口的角色,只有当前活动接口出现故障时,备份的接口才可以由非活动接口转变为活动接口。

  • 成员端口间M:N备份:静态LACP模式链路聚合是一种利用LACP协议进行参数协商选取活动链路的聚合模式。该模式由LACP协议确定聚合组中的活动和非活动链路,又称为M:N模式,即M条活动链路与N条备份链路的模式。这种模式提供了更高的链路可靠性,并且可以在M条链路中实现不同方式的负载均衡。如图所示,两台设备间有M+N条属性相同的链路,在聚合链路上发送流量时在M条链路上负载分担,即主链路。不在另外的N条链路发送流量,这N条链路提供备份功能,即备份链路。此时链路的实际带宽为M条链路的总和,但是能提供的最大带宽为M+N的总和。
    当M条链路中有一条链路故障时,LACP会从N条备份链路中找出一条正常链路替换有故障的链路,形成M:N备份。此时链路的实际带宽还是M条链路的总和,但是能提供的最大带宽就变为M+N-1条链路的总和。

设计目的

  • 增加链路带宽:基于流的负载分担

  • 增加链路可靠性: 通过冗余的多链路,一个物理链路出问题,不影响整个逻辑链路

链路聚合成员接口管理的三种形式

  • 手工聚合:管理员手工将多个链路配置为一个聚合链路,这种方式可能出现本端配置了汇聚,对端没有配置,从而流量导致环路等问题。

  • 静态LACP聚合:与手工聚合类似,管理员指定哪些接口加入汇聚链路,但同时启用LACP协议。

静态 LACP模式下,汇聚组的创建、成员接口的加入,都是由手工配置完成的。但与手工负载分担模式链路聚合不同的是,该模式下LACP协议报文参与活动接口的选择。也就是说,当把一组接口加入汇聚组,这些成员接口中哪些接口作为活动接口,哪些接口作为非活动接口还需要经过LACP 协议报文的协商确定。

静态LACP由协议确定聚合组中的活动和非活动链路,又称为M:N模式,即M条活动链路与N条备份链路的模式。这种模式提供了更高的链路可靠性,并且可以在M 条链路中实现不同方式的负载均衡。M:N模式的聚合组中M和N的值可以通过配置活动接口数上限阈值来确定。

  • 动态LACP聚合:通过LACP协议决定将那些链路聚合。端口使能动态LACP协议只需要在端口上使能LACP就可以了,不必为端口指定汇聚组,使能动态LACP协议的端口需要自己寻找动态汇聚组,如果找到了与自己信息(包括自己的对端信息)一致的汇聚组,直接加入;如果没有找到与自己信息一致的汇聚组,创建一个新的汇聚组。

链路聚合的接口要求

由于最终的汇聚链路表现为一个逻辑上的二层链路,所以整个逻辑链路需要有相同的二层配置,否则聚合链路的工作可能会出现混乱。这些配置包括:

  • STP配置

  • QOS配置

  • VLAN配置

  • 链路类型:Access,Trunk,Hybrid

  • 端口速率,全双工模式

链路聚合的控制面协议(LACP)

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

LACP工作的基本流程如下。

邻居发现

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

确定主动端

两端设备均会收到对端发来的LACP报文。以SwitchB为例,当SwitchB收到SwitchA发送的LACP报文时,SwitchB会查看并记录对端信息,并且比较系统优先级字段,如果对端设备SwitchA的系统优先级高于本端设备SwitchB的系统优先级,则确定SwitchA为LACP主动端,SwitchB将按照SwitchA的接口优先级选择活动接口,从而两端设备对于活动接口的选择达成一致。

确定活动端口

两端设备选出主动端后,两端都会以主动端的接口优先级来选择活动接口。两端设备选择了一致的活动接口,活动链路组便可以建立起来,从这些活动链路中以负载分担的方式转发数据。

链路的保护与切换

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

  • 链路Down事件。

  • ETH-OAM检测到链路失效。LACP协议发现链路故障。接口不可用。

  • 在使能了LACP抢占前提下,更改备份接口的优先级高于当前活动接口的优先级后,会发生切换的过程。

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

  • 关闭故障链路。

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

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

  • 链路抢占:使能LACP抢占后,聚合组会始终保持高优先级的接口作为活动接口的状态。如下图所示,GE1/0/1、GE1/0/2和GE1/0/3为Eth-Trunk 1的成员接口,活动接口数最大上限阈值为2,配置GE1/0/1和GE1/0/2接口的LACP优先级分别为9和10,GE1/0/3保持缺省接口LACP优先级。当通过LACP协议协商完毕后,GE1/0/1、GE1/0/2接口因为优先级较高被选作活动接口,GE1/0/3接口成为备份接口

参考