第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 协商成功的条件

LACP 协商成功的条件 - 图示

协商成功的条件: 1. 两端端口都支持 LACP 2. 两端 LACP 参数匹配(系统 ID、端口 Key 等) 3. 物理链路状态正常 4. 端口配置一致(速率、双工、VLAN 等)

3.2 LACP 端口选择逻辑

当成员端口多于最大活跃成员数时,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 查看配置

思考

  1. 如果两台设备的 LACP 系统优先级相同,对端如何选择活跃端口?
  2. LACP 快速模式和慢速模式分别适合什么场景?
  3. 为什么两端不能同时设置为 LACP Passive 模式?

下篇预告:第23篇:端口镜像——用镜像抓包排障实战