第22篇:LACP 协商过程与优先级配置
一、写在前面
上一篇文章我们学了 Eth-Trunk 的两种模式,其中 LACP 模式是现网推荐方案。但 LACP 到底是怎么协商的?主动端和被动端有什么区别?系统优先级和端口优先级怎么影响链路选择?
本文深入 LACP 协议的协商细节,帮你理解 Eth-Trunk 背后到底发生了什么。
二、LACP 协议基础
2.1 什么是 LACP
LACP(Link Aggregation Control Protocol)是 IEEE 802.3ad 标准定义的链路聚合控制协议。
- 目的:自动协商链路聚合的建立和维护
- 报文:LACPDU(Link Aggregation Control Protocol Data Unit)
- 发送频率:每 1 秒(短超时)或每 30 秒(长超时)
2.2 LACP 的角色
| 角色 | 描述 |
|---|---|
| 主动端(Active) | 发送 LACPDU,发起协商 |
| 被动端(Passive) | 响应 LACPDU,但不主动发送 |
华为交换机 LACP 模式下的端口默认都是 Active,也就是说两端都会主动发送 LACPDU。
三、LACP 协商三要素
3.1 系统优先级
决定 "谁说了算"——优先级高的交换机(数值小)成为主动端,由它决定哪些端口加入聚合、哪些作为热备。
SW1: System Priority = 100 ← 更优
SW2: System Priority = 32768 ← 默认
→ SW1 成为主动端,决定成员端口选择
相关命令:
[SW1] lacp priority 100 ← 系统级配置,越小越优
3.2 端口优先级
当总物理链路数超过允许的最大活跃链路数时,端口优先级决定哪些链路活跃、哪些进入 Standby。
Eth-Trunk 1:Max Active = 3
成员口:GE0/0/1~4
SW1 端口配置:
GE0/0/1 lacp priority 100 ← 优先成为活跃
GE0/0/2 lacp priority 100 ← 优先成为活跃
GE0/0/3 lacp priority 100 ← 优先成为活跃
GE0/0/4 lacp priority 65535 ← 优先级低,成为 Standby
相关命令:
[SW1-GigabitEthernet0/0/1] lacp priority 100
3.3 主动端选择完整流程
两端都发送 LACPDU
│
▼
比较 系统优先级 → 数值小者成为主动端
│
├── 相同 → 比较 系统 MAC 地址 → 数值小者成为主动端
│
▼
主动端决定:
1. 哪些端口加入 Eth-Trunk
2. 哪些端口为活跃(Active),哪些为热备(Standby)
四、LACP 协商完整流程
步骤 1:LACPDU 交换
SW1 (Priority=100, MAC=A) SW2 (Priority=32768, MAC=B)
│ │
│ ── LACPDU [Sys_Pri=100, ...] ──>│
│ <── LACPDU [Sys_Pri=32768, ...] ─│
│ │
│ 比较系统优先级:100 < 32768 │
│ → SW1 成为主动端 │
│ → SW2 成为被动端 │
步骤 2:主动端决定端口状态
SW1(主动端)分析两端端口列表:
物理端口:GE0/0/1~GE0/0/4
Max Active = 3
比较端口优先级:
GE0/0/1 (Pri=100) → Active
GE0/0/2 (Pri=100) → Active
GE0/0/3 (Pri=100) → Active
GE0/0/4 (Pri=65535) → Standby
步骤 3:通知被动端
SW1 通过 LACPDU 将决策通知 SW2
SW2 根据该决策配置自己的端口状态
步骤 4:Eth-Trunk 建立
双方达成一致 → Eth-Trunk Up
Active 链路:GE0/0/1~3(转发数据)
Standby 链路:GE0/0/4(不转发,但持续交换 LACPDU 保持协商)
五、热备端口(Standby Link)
5.1 工作方式
4 条物理链路
| A A A S A=Active, S=Standby | ||
|---|---|---|
| 3G 活跃带宽 ← 1 条热备 |
如果 GE0/0/2 物理 Down: | A ✗ A A ← Standby 自动激活 | | | --- | --- | | | | 3G 带宽不变! ← 替换完成
5.2 配置示例
[SW1] interface eth-trunk 1
[SW1-Eth-Trunk1] mode lacp
[SW1-Eth-Trunk1] max active-linknumber 2 ← 只保持 2 条活跃
[SW1-Eth-Trunk1] trunkport gigabitethernet 0/0/1 to 0/0/4 ← 4 条物理口
[SW1] interface gigabitethernet 0/0/1
[SW1-GigabitEthernet0/0/1] lacp priority 100
[SW1] interface gigabitethernet 0/0/2
[SW1-GigabitEthernet0/0/2] lacp priority 100
[SW1] interface gigabitethernet 0/0/3
[SW1-GigabitEthernet0/0/3] lacp priority 65535
[SW1] interface gigabitethernet 0/0/4
[SW1-GigabitEthernet0/0/4] lacp priority 65535
结果:GE0/0/1~2 活跃,GE0/0/3~4 热备。
六、LACP 超时与快速检测
6.1 两种超时模式
| 模式 | 发送间隔 | 超时时间 | 故障检测速度 |
|---|---|---|---|
| Short(短超时) | 1 秒 | 3 秒 | 快(3 秒) |
| Long(长超时) | 30 秒 | 90 秒 | 慢(90 秒) |
6.2 配置
[SW1] interface eth-trunk 1
[SW1-Eth-Trunk1] lacp timeout fast ← 设短超时(1s)
快速检测场景下,链路故障后约 3 秒 就能切换到热备端口。
七、查看 LACP 协商状态
7.1 核心命令
# 查看 Eth-Trunk 整体状态
[SW1] display eth-trunk 1
Eth-Trunk1's state information:
WorkingMode: LACP
Max Active-linknumber: 3
Operate status: up Number Of Up Port In Trunk: 3
---------------------------------------------------------------------
PortName Status Port Priority
GigabitEthernet0/0/1 Selected 100 ← Selected = 活跃
GigabitEthernet0/0/2 Selected 100
GigabitEthernet0/0/3 Selected 100
GigabitEthernet0/0/4 Standby 65535 ← 热备
7.2 查看 LACP 详细信息
[SW1] display lacp interface eth-trunk 1
---------------------------------------------------------------------
Port Priority OperKey System-ID
GigabitEthernet0/0/1 100 0x0001 0x8000-00e0-fc00-0001
GigabitEthernet0/0/2 100 0x0001 0x8000-00e0-fc00-0001
GigabitEthernet0/0/3 100 0x0001 0x8000-00e0-fc00-0001
GigabitEthernet0/0/4 65535 0x0001 0x8000-00e0-fc00-0001
---------------------------------------------------------------------
Partner Information:
Port Partner-Priority OperKey Partner-System-ID
GigabitEthernet0/0/1 32768 0x0001 0x8000-00e0-fc00-0002
GigabitEthernet0/0/2 32768 0x0001 0x8000-00e0-fc00-0002
GigabitEthernet0/0/3 32768 0x0001 0x8000-00e0-fc00-0002
GigabitEthernet0/0/4 32768 0x0001 0x8000-00e0-fc00-0002
八、LACP 故障排查
| 问题 | 可能原因 | 排查命令 |
|---|---|---|
| 所有端口都是 Standby | System ID 冲突,两端系统优先级相同但 MAC 也相同 | display lacp sys-id |
| 只有一条链路 Active | 成员口速率/双工不一致 | display interface 检查 |
| 链路频繁震荡 | 两端超时模式不一致 | 两端都配 lacp timeout fast |
| 协商失败 | 一端是手工模式一端是 LACP | display eth-trunk 检查模式 |
| 带宽不叠加 | Hash 不均 | display interface 看各口流量 |
九、思考
- LACP 主动端是谁决定的?用哪两个参数比较?
- 端口优先级的作用是什么?什么情况下触发端口优先级的比较?
- 热备端口(Standby)会转发数据吗?它与普通端口有什么不同?
- 系统优先级设为 0 会发生什么?设为 65535 呢?
- 短超时和长超时的区别是什么?生产环境推荐用哪个?
- 如果一台交换机故障重启,LACP Eth-Trunk 需要多少时间恢复?
下篇预告:第23篇《端口镜像_用镜像抓包排查故障》——学习端口镜像技术,掌握用镜像抓包排查网络故障的方法。