链路聚合(Link Aggregation)技术简言之就是将多条物理链路聚合成一条带宽更高的逻辑链路,该逻辑链路的带宽等于被聚合在一起的多条物理链路的带宽之和。聚合在一起的物理链路的条数可以根据业务的带宽需求来配置。因此链路聚合具有成本低,配置灵活的优点,此外,链路聚合还具有链路冗余备份的功能,聚合在一起的链路彼此动态备份,提高了网络的稳定性。早期链路聚合技术的实现没有统一的标准,各厂商都有自己私有的解决方案,功能不完全相同,也互不兼容。因此,IEEE专门制定了链路聚合的标准,目前链路聚合技术的正式标准为 IEEE Standard 802.3ad,而链路汇聚控制协议(Link Aggregation Control Protocol , LACP )是该标准的主要内容之一,是一种实现链路动态聚合的协议。1
概述启用某端口的LACP协议后,该端口将通过发送LACPDU向对端通告自己的系统优先级、系统MAC地址、端口优先级、端口号和操作Key。对端接收到这些信息后,将这些信息与其它端口所保存的信息比较以选择能够汇聚的端口,从而双方可以对端口加入或退出某个动态汇聚组达成一致。
操作Key是在端口汇聚时,LACP协议根据端口的配置(即速率、双工、基本配置、管理Key)生成的一个配置组合。
动态汇聚端口在启用LACP协议后,其管理Key缺省为零。静态汇聚端口在启用LACP后,端口的管理Key与汇聚组ID相同。
对于动态汇聚组而言,同组成员一定有相同的操作Key,而手工和静态汇聚组中,处于Active的端口具有相同的操作Key。
端口汇聚是将多个端口汇聚在一起形成一个汇聚组,以实现出/入负荷在汇聚组中各个成员端口中的分担,同时也提供了更高的连接可靠性。2
报文格式基于IEEE802.3ad标准的LACP,链路汇聚控制协议是一种实现链路动态聚合与解聚合的协议。LACP协议通过LACPDU(Link Aggregation Control Protocol Data Unit)与对端交互信息。
LACPDU报文为慢协议(平均每秒发送的协议报文不超过5个),如果接口板收到报文的DMAC是特殊的组播地址 0x01-80-c2-00-00-02,二层协议类型字段为0x8809,协议子类型为0x01,则说明此数据报文为LACPDU报文。
报文中各个字段长度及含义如下表所示:2
|| || 表1 LACPDU报文
静态汇聚静态lacp汇聚概述静态lacp汇聚由用户手工配置,不允许系统自动添加或删除汇聚组中的端口。汇聚组中必须至少包含一个端口。当汇聚组只有一个端口时,只能通过删除汇聚组的方式将该端口从汇聚组中删除。
静态汇聚端口的lacp协议为激活状态,当一个静态汇聚组被删除时,其成员端口将形成一个或多个动态lacp汇聚,并保持lacp的被激活。禁止用户关闭静态汇聚端口的lacp协议。3
静态汇聚组中的端口状态在静态汇聚组中,端口可能处于两种状态:selected或standby。selected端口和standby端口都能收发lacp协议,但standby端口不能转发用户报文。
在静态汇聚组中,系统按照以下原则设置端口处于selected或者standby状态:
系统按照端口全双工/高速率、全双工/低速率、半双工/高速率、半双工/低速率的优先次序,选择优先次序最高的端口处于selected状态,其他端口则处于standby状态。
与处于selected状态的最小端口所连接的对端设备不同,或者连接的是同一个对端设备但端口在不同的汇聚组内的端口将处于standby状态。
端口因存在硬件限制(如不能跨板汇聚)无法汇聚在一起,而无法与处于selected状态的最小端口汇聚的端口将处于standby状态。
与处于selected状态的最小端口的基本配置不同的端口将处于standby状态。
由于设备所能支持的汇聚组中的selected端口数有限制,如果当前的成员端口数超过了设备所能支持的最大selected端口数,系统将按照端口号从小到大的顺序选择一些端口为selected端口,其他则为standby端口。3
动态汇聚动态lacp汇聚概述动态lacp汇聚是一种系统自动创建/删除的汇聚,不允许用户增加或删除动态lacp汇聚中的成员端口。只有速率和双工属性相同、连接到同一个设备、有相同基本配置的端口才能被动态汇聚在一起。即使只有一个端口也可以创建动态汇聚,此时为单端口汇聚。动态汇聚中,端口的lacp协议处于使能状态。3
动态汇聚组中的端口状态在动态汇聚组中,端口可能处于两种状态:selected或standby。selected端口和standby端口都能收发lacp协议,但standby端口不能转发用户报文。
由于设备所能支持的汇聚组中的最大端口数有限制,如果当前的成员端口数量超过了最大端口数的限制,则本端系统和对端系统会进行协商,根据设备id优的一端的端口id的大小,来决定端口的状态。具体协商步骤如下:
比较设备id(系统优先级+系统mac地址)。先比较系统优先级,如果相同再比较系统mac地址。设备id小的一端被认为优。
比较端口id(端口优先级+端口号)。对于设备id优的一端的各个端口,首先比较端口优先级,如果优先级相同再比较端口号。端口id小的端口为selected端口,剩余端口为standby端口。
在一个汇聚组中,处于selected状态且端口号最小的端口为汇聚组的主端口,其他处于selected状态的端口为汇聚组的成员端口。4
工作模式启动LACP的端口可以有两种工作模式,passive,和active。
passive为被动模式,该模式下端口不会主动发送LACPDU报文,在接收到对端发送的LACP报文后,该端口进入协议计算状态。
Active为主动模式,该模式下端口会主动向对端发送LACPDU报文,进行LACP协议的计算。5
使用场合1) 在带宽比较紧张的情况下,可以通过逻辑聚合扩展带宽到原链路的N倍
2) 在需要对链路进行动态备份的情况下,可以通过配置链路聚合实现同一聚合组各个成员端口之间彼此动态备份5
本词条内容贡献者为:
徐恒山 - 讲师 - 西北农林科技大学