LACP
IEEE 802.1AX 链路聚合控制协议(Link Aggregation Control Protocol)
802.1AX前身是802.3ad,后来并入802.1标准族。
LACP概述
LACP协议,是IEEE对链路聚合功能的标准实现,华为思科等厂商还有其私有协议,如思科的PAgP。
链路聚合功能还有各厂商的不同实现,如华为的Eth-Trunk,但这不是私有协议,而是其实现方式。
-
带宽聚合:通过将多个物理以太网链路,捆绑成一个逻辑链路组(LAG),提升链路带宽,提供链路冗余。聚合组的理论带宽容量是其成员链路带宽之和。
-
链路冗余:LAG中的任一成员链路发生故障时,流量会自动重分布到其他健康链路上。
-
对于上层协议,整个LAG被视为单一逻辑链路。降低拓扑复杂性。
LACP工作模式
802.1AX主要支持两种工作模式:
- 静态聚合 Static LAG
需要管理员在交换机和终端设备上,手动配置匹配的聚合参数。
- 动态聚合 Dynamic
基于LACP,支持LACP的设备,通过交换协议数据单元,自动发现对端,协商参数,动态管理端口的活动,备用
LACP也有两种模式
- Active:端口主动发送LACPDU,发起协商
- PAssive:端口仅在收到对端LACPDU后才回复,被动模式。
A-A,A-P都可以建立聚合,两端至少有一端处于主动模式。
P-P无法建立聚合。
LACP 聚合条件
链路聚合端口,必须有相同速率,双工模式
端口属于相同VLAN,或者Trunk模式下允许通过的VLAN一致
STP配置一致,端口优先级,路径开销一致。
LACP模式兼容。主动对主动,主动对被动。
LACP 报文结构
LACPDU(链路聚合控制协议数据单元)是LACP协议进行协商和状态维护的核心报文,其结构遵循IEEE 802.3ad/802.1AX标准,采用TLV(类型-长度-值)格式封装在慢协议帧中。
一、LACPDU整体结构
一个完整的LACPDU报文由以下部分组成:
| 字段名称 | 长度(字节) | 说明与取值 |
|---|---|---|
| 以太网头部 | ||
| Destination Address | 6 | 目的MAC地址,固定为慢协议组播地址 01-80-C2-00-00-02 |
| Source Address | 6 | 源MAC地址,即发送端口的物理MAC地址 |
| Length/Type | 2 | 协议类型,固定为 0x8809,标识为慢协议 |
| LACP协议头部 | ||
| Subtype | 1 | 报文子类型,固定为 0x01,标识为LACP报文 |
| Version Number | 1 | 协议版本号,固定为 0x01 |
| TLV信息单元 | 采用TLV格式,按顺序排列 | |
| Actor TLV | 20 | 本端(发送方)的详细信息 |
| Partner TLV | 20 | 对端(上次接收到的)信息副本,用于状态校验 |
| Collector TLV | 12 | 收集器信息(通常为保留字段,默认为0) |
| Terminator TLV | 3 | 结束标记,TLV类型为0x00 |
二、核心TLV字段详解
Actor TLV 与 Partner TLV 结构完全相同,均包含以下关键信息:
| 字段 | 长度 | 说明 |
|---|---|---|
| TLV_type | 1字节 | 0x01代表Actor,0x02代表Partner |
| Information Length | 1字节 | 信息长度,固定为20(0x14) |
| System Priority | 2字节 | 系统优先级,默认32768(0x8000),用于选举主动端 |
| System | 6字节 | 系统ID,即交换机的MAC地址 |
| Key | 2字节 | 操作Key,由端口配置(如速率、双工、VLAN)生成,Key值相同的端口才能聚合 |
| Port Priority | 2字节 | 端口优先级,默认32768(0x8000),用于选举活动接口 |
| Port | 2字节 | 端口号,由设备根据槽位、子卡、端口号算法生成 |
| State | 1字节 | 端口状态字节,包含8个关键状态比特位(详见下文) |
三、端口状态字节(State)比特位详解
状态字节的每一个比特位都承载着关键的协商与运行信息:
| 比特位 | 名称 | 含义(1 = True, 0 = False) |
|---|---|---|
| 0 | LACP_Activity | 端口LACP模式:1=Active(主动发送报文),0=Passive(被动响应) |
| 1 | LACP_Timeout | 超时周期:1=短超时(1秒),0=长超时(30秒) |
| 2 | Aggregation | 聚合能力:1=链路可聚合,0=链路独立(不可聚合) |
| 3 | Synchronization | 同步状态:1=端口已分配到正确的聚合组(IN_SYNC),0=未分配(OUT_OF_SYNC) |
| 4 | Collecting | 接收使能:1=允许从该链路接收数据帧 |
| 5 | Distributing | 发送使能:1=允许通过该链路发送数据帧(活动链路的标志) |
| 6 | Defaulted | 伙伴信息源:1=使用管理员配置的默认Partner信息,0=使用从LACPDU中学到的信息 |
| 7 | Expired | 超时状态:1=接收状态机处于超时状态(未收到对端报文) |
关键状态组合:一个端口要成为活动链路并转发数据,通常需要
Aggregation=1、Synchronization=1、Collecting=1且Distributing=1。
四、报文交互与协商逻辑
- 信息交换:启用LACP的端口会周期性地向对端发送LACPDU,其中不仅包含自身的Actor信息,还包含上次从对端接收到的Partner信息副本,用于双向校验一致性。
- 协商依据:设备通过比较收到的对端系统优先级、系统MAC、操作Key和端口优先级,来选举主动端(LACP Actor),并最终确定哪些端口可以成为活动接口(Selected)。
- 状态同步:当两端的端口在系统ID、操作Key、活动状态上达成一致,且状态字节中的
Synchronization比特位被置为1时,链路聚合逻辑通道便正式建立。

浙公网安备 33010602011771号