第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 保持协商)

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 看各口流量

九、思考

  1. LACP 主动端是谁决定的?用哪两个参数比较?
  2. 端口优先级的作用是什么?什么情况下触发端口优先级的比较?
  3. 热备端口(Standby)会转发数据吗?它与普通端口有什么不同?
  4. 系统优先级设为 0 会发生什么?设为 65535 呢?
  5. 短超时和长超时的区别是什么?生产环境推荐用哪个?
  6. 如果一台交换机故障重启,LACP Eth-Trunk 需要多少时间恢复?

下篇预告:第23篇《端口镜像_用镜像抓包排查故障》——学习端口镜像技术,掌握用镜像抓包排查网络故障的方法。