第22篇:LACP 协商过程及优先级机制
关键词:LACP、LACPDU、系统优先级、端口优先级、Active/Passive、聚合协商
一、引言
LACP(Link Aggregation Control Protocol,链路聚合控制协议)是 IEEE 802.3ad 标准定义的链路聚合协议。通过 LACP,两台设备可以自动协商哪些端口可以聚合在一起,哪些是活跃成员,哪些是备份。掌握 LACP 的协商过程和优先级机制,是精确控制聚合行为的前提。
二、核心概念
2.1 LACP 工作原理
LACP 通过两台设备之间定期发送 LACPDU(LACP Data Unit)来协商聚合状态。
| LACPDU 携带的关键信息 | 说明 |
|---|---|
| 系统优先级 | 本设备的聚合优先级 |
| 系统 ID | 系统优先级 + 设备 MAC 地址 |
| 端口优先级 | 本端口的聚合优先级 |
| 端口号 | 本端端口编号 |
| 端口聚合 Key | 端口的聚合组标识 |
| 状态信息 | 用于同步状态变化 |
2.2 LACP 两种活动模式
| 模式 | 说明 | 适用场景 |
|---|---|---|
| Active(主动模式) | 主动发起 LACPDU 协商 | 推荐设置,确保参与协商 |
| Passive(被动模式) | 仅响应 LACPDU,不主动发起 | 配合对端 Active 使用 |
注意:两端不能同时配置为 Passive 模式,否则无法发起协商。
2.3 优先级体系
LACP 的优先级数值越小,优先级越高。
| 优先级类型 | 默认值 | 取值范围 | 影响范围 |
|---|---|---|---|
| 系统优先级 | 32768 | 0~65535 | 两端以谁的端口优先级为准 |
| 端口优先级 | 32768 | 0~65535 | 本端选择哪些端口为活跃成员 |
注意: LACP 优先级取值越小优先级越高。系统优先级取值 0~65535(默认 32768),端口优先级取值 0~65535(默认 32768,随设备型号/版本略有差异);两者均不要求必须是 4096 的倍数,因此下文示例中的 100、200 等取值都可用。 如果Eth-Trunk两端设备都没有配置系统优先级,两端系统优先级都是缺省值32768,此时需要按照系统MAC来选择主动端,系统MAC小的优先。 如果同一设备不同接口没有配置优先级,则接口优先级都是缺省值32768,此时需要按照接口的编号大小来选择活动接口,接口编号小的优先。
三、技术细节
3.1 LACP 协商成功的条件

协商成功的条件: 1. 两端端口都支持 LACP 2. 两端 LACP 参数匹配(系统 ID、端口 Key 等) 3. 物理链路状态正常 4. 端口配置一致(速率、双工、VLAN 等)
3.2 LACP 端口选择逻辑
当成员端口多于最大活跃成员数时,LACP 根据优先级选择活跃端口:

3.3 系统优先级的作用
系统优先级影响对端选择哪些链路进入聚合组:
| 场景 | 说明 |
|---|---|
| 设备 A 系统优先级 < 设备 B | 设备 B 选举设备 A 的端口为活跃(以 A 的优先级为准) |
| 设备 A 系统优先级 > 设备 B | 设备 A 选举设备 B 的端口为活跃(以 B 的优先级为准) |
系统优先级小的一端"主导"本端上联端口的选择——对端会以系统优先级小的一端的端口优先级为参考决定哪些端口为活跃。
3.4 LACP 定时器
| 定时器 | 快速模式 | 慢速模式 | 说明 |
|---|---|---|---|
| 发送间隔 | 1 秒 | 30 秒 | 固定时间内发包检测链路 |
| 超时时间 | 3 × 发送间隔 | 3 × 发送间隔 | 超时未收到 LACPDU 即判断链路故障 |
# 切换 LACP 定时器模式
[HUAWEI-Eth-Trunk1] lacp timeout fast
[HUAWEI-Eth-Trunk1] lacp timeout slow
四、实战配置/案例分析
4.1 案例一:LACP 优先级配置
# 交换机 A
[SW-A] lacp priority 4096 # 系统优先级设为 4096(较高)
[SW-A] interface Eth-Trunk 1
[SW-A-Eth-Trunk1] mode lacp-static
[SW-A-Eth-Trunk1] trunkport GigabitEthernet 0/0/1
[SW-A-Eth-Trunk1] trunkport GigabitEthernet 0/0/2
# 配置端口优先级
[SW-A] interface GigabitEthernet 0/0/1
[SW-A-GigabitEthernet0/0/1] lacp priority 100
[SW-A] interface GigabitEthernet 0/0/2
[SW-A-GigabitEthernet0/0/2] lacp priority 200
# 交换机 B(对端)
[SW-B] lacp priority 32768 # 默认优先级为32768(较低)
[SW-B] interface Eth-Trunk 1
[SW-B-Eth-Trunk1] mode lacp-static
[SW-B-Eth-Trunk1] trunkport GigabitEthernet 0/0/1
[SW-B-Eth-Trunk1] trunkport GigabitEthernet 0/0/2
[SW-B-Eth-Trunk1] quit
4.2 案例二:指定特定端口为活跃成员
需求:3 条链路中,GE0/0/1 和 GE0/0/2 为活跃,GE0/0/3 为备份。
# 通过最大活跃成员数限制
[SW-A] interface Eth-Trunk 1
[SW-A-Eth-Trunk1] mode lacp-static
[SW-A-Eth-Trunk1] max active-linknumber 2 # 最大活跃成员 = 2
[SW-A-Eth-Trunk1] quit
# GE0/0/1 优先级最高(100)
[SW-A] interface GigabitEthernet 0/0/1
[SW-A-GigabitEthernet0/0/1] lacp priority 100
# GE0/0/2 优先级次之(200)
[SW-A] interface GigabitEthernet 0/0/2
[SW-A-GigabitEthernet0/0/2] lacp priority 200
# GE0/0/3 优先级最低(默认 32768)→ 自动成为备份
# 验证
<SW-A> display eth-trunk 1
Select Port: GigabitEthernet0/0/1 GigabitEthernet0/0/2
Unselect Port: GigabitEthernet0/0/3 ← 备份
4.3 案例三:LACP 协商失败排查
故障现象:Eth-Trunk 状态为 Down,端口无法加入聚合组。
# 检查 Eth-Trunk 状态
<SW-A> display eth-trunk 1
Eth-Trunk1 is down
# 检查 Eth-Trunk 状态和详细信息
<SW-A> display eth-trunk 1
Eth-Trunk1's state information is:
(h): high priority
(r): reference port
Local:
LAG ID: 1 Working Mode: Static
Preempt Delay: Disabled Hash Arithmetic: src-dst-ip
System Priority: 32768 System ID: fa78-207c-0ff1
Least Active-linknumber: 1 Max Active-linknumber: 128
Operating Status: down Number Of Up Ports In Trunk: 0
Timeout Period: Slow
PortKeyMode: Auto
------------------------------------------------------------------------------------
ActorPortName Status PortType PortPri PortNo PortKey PortState Weight
GigabitEthernet0/0/1 Unselect 1GE 100 1 305 10100010 1
GigabitEthernet0/0/2 Unselect 1GE 200 2 305 10100010 1
GigabitEthernet0/0/3 Unselect 1GE 32768 3 305 10100010 1
Partner:
------------------------------------------------------------------------------------
ActorPortName SysPri SystemID PortPri PortNo PortKey PortState
GigabitEthernet0/0/1 0 0000-0000-0000 0 0 0 10100011
GigabitEthernet0/0/2 0 0000-0000-0000 0 0 0 10100011
GigabitEthernet0/0/3 0 0000-0000-0000 0 0 0 10100011
# 排查方向
# 1. 对端是否配置了 LACP 模式
# 2. 两端端口速率和双工是否一致
# 3. 端口 VLAN 配置是否一致
# 4. LACP 活动模式是否兼容(不能两端都是 Passive)
常见 LACP 故障原因:
| 故障原因 | 排查方法 | 解决 |
|---|---|---|
| 聚合模式不匹配 | 查看两端 mode | 统一为 lacp-static |
| 端口配置不一致 | 查看速率/双工/VLAN | 统一配置 |
| 两端都为 Passive | 检查 LACP 活动模式 | 一端设置为 Active(默认) |
| 物理链路故障 | 检查端口物理状态 | 修复链路 |
五、总结
| LACP 优先级 | 默认值 | 修改命令 | 影响 |
|---|---|---|---|
| 系统优先级 | 32768 | lacp priority X |
决定两端以谁的端口优先级为准 |
| 端口优先级 | 32768 | lacp priority X |
决定本端哪些端口成为活跃成员 |
| 排错命令 | 用途 |
|---|---|
display eth-trunk X |
查看聚合组状态、成员和协商详情 |
display eth-trunk X verbose |
显示指定Eth-Trunk接口的详细配置信息,包括接口流量统计信息。 |
display current-configuration interface Eth-Trunk X |
查看配置 |
思考
- 如果两台设备的 LACP 系统优先级相同,对端如何选择活跃端口?
- LACP 快速模式和慢速模式分别适合什么场景?
- 为什么两端不能同时设置为 LACP Passive 模式?
下篇预告:第23篇:端口镜像——用镜像抓包排障实战