Skip to content

链路聚合(Eth-Trunk)原理与华为交换机配置实操 ​

一、为什么需要链路聚合 ​

链路聚合(Link Aggregation) 把交换机之间的多条物理以太网链路捆绑成一条逻辑链路,华为设备上的逻辑接口称为 Eth-Trunk。聚合后带宽成倍增加、成员链路互为备份、流量自动分担——并且聚合组内部不会形成二层环路(成员链路之间无需 STP 阻塞,备份链路不再闲置)。

不使用链路聚合时扩容与冗余的痛点:

  1. 带宽瓶颈:交换机间流量超过单口速率(如 1G 不够用),更换 10G 端口与线缆成本高;
  2. 冗余链路闲置:两条直连链路只靠 STP 做冗余时,一条转发、另一条完全阻塞;
  3. 切换速度慢:普通链路故障后依赖 STP 重新收敛,业务秒级中断;
  4. 并联即成环:为提速把多条链路直���并联会立即形成二层环路,引发广播风暴。

链路聚合的四大收益:

  • 带宽叠加:N 条 1G 链路聚合后逻辑带宽可达 N Gbps;
  • 负载分担:流量按"流"分散到各成员链路并行传输;
  • 冗余备份:成员链路故障时流量毫秒级切换到其余链路,业务几乎无感知;
  • 天然防环:聚合组对外是一个逻辑端口,组内成员间不运行 STP、不构成环路。

工业标准为 IEEE 802.3ad(LACP)。各厂商叫法:华为 Eth-Trunk、思科 EtherChannel(Port-Channel)、H3C 链路聚合组。

二、两种工作模式 ​

模式配置命令是否协商转发行为适用场景
手工负载分担mode manual load-balance否,两端静态配置所有成员链路同时转发并分担流量对端设备不支持 LACP
LACP 模式mode lacp-static是,交互 LACPDUM 条活动链路转发,其余 N 条备份待命两端均支持 LACP(推荐)

部分老版本 VRP 中 LACP 模式命令为 mode lacp,含义相同。

优先选择 LACP 模式的原因:它通过 LACPDU 双向协商,能检测出"物理口 Up 但链路不通"的异常(如两端速率双工不匹配、光纤收发接反、中间串接传输设备的单向故障),并把这些成员口置为 Unselect,避免流量黑洞;手工模式只能依赖物理 Up/Down 感知故障。

三、LACP 模式工作原理 ​

3.1 LACPDU 报文 ​

LACP 模式下,两端在成员端口上周期性交互 LACPDU,报文携带:系统 LACP 优先级、系统 MAC、端口 LACP 优先级、端口号、活动端口数等。超时未收到对端 LACPDU 即判定该链路异常,将其置为非活动状态。

3.2 主动端选举 ​

两端都会发送报文,但活动端口由主动端决定。主动端选举规则(越小越优):

  1. 系统 LACP 优先级(lacp priority system,默认 32768);
  2. 优先级相同 → 比系统 MAC 地址,越小越优。

3.3 活动端口选举(M:N 主备模型) ​

在主动端上对聚合组所有成员端口排序(越小越优):

  1. 端口 LACP 优先级(接口视图 lacp priority,默认 32768);
  2. 优先级相同 → 比端口号,越小越优。

排序后前 M 条(max active linknumber)成为活动链路转发流量,其余 N 条为备份链路。活动链路故障时备份链路立即顶替,转发不中断。

3.4 抢占机制 ​

  • 默认抢占关闭:活动链路恢复后保持备份状态,避免链路反复震荡(时好时坏)导致流量反复切换;
  • lacp preempt enable:开启后,优先级更高的端口恢复时会抢回活动角色;
  • lacp preempt delay:抢占延时,等待链路稳定后再回切。

四、负载分担原理 ​

  • 逐流负载分担(默认):以"流"为单位 Hash 到成员链路,同一条流的报文始终走同一条链路,保证报文不乱序;
  • Hash 因子:源/目的 MAC、源/目的 IP、TCP/UDP 端口号等,可按业务类型用 load-balance 命令调整;
  • 单流带宽上限:两台主机之间的单个大流量只会命中一条成员链路,聚合带宽的提升体现在多流并发场景。
负载分担粒度说明优缺点
逐流(默认)同一条流走同一条链路不乱序;流量分布可能不均
逐包每个包轮流走不同链路分布均匀;接收端乱序、重组开销大,基本不用

五、二层与三层 Eth-Trunk ​

  • 二层 Eth-Trunk:作为交换机间的聚合 Trunk/Access 口使用,承担 VLAN 内流量转发(最常见);
  • 三层 Eth-Trunk:undo portswitch 切换为三层口后可直接配置 IP 地址,用于路由器间或三层互联,带宽与可靠性同步提升。

六、华为交换机配置实操 ​

6.1 实验拓扑 ​

text
SW1 GE0/0/1 ↔ GE0/0/1 SW2   ─┐
SW1 GE0/0/2 ↔ GE0/0/2 SW2    ├── 三条链路捆绑为 Eth-Trunk 1(LACP 模式)
SW1 GE0/0/3 ↔ GE0/0/3 SW2   ─┘

SW1(汇聚层)══ Eth-Trunk 1 ══ SW2(接入层)
活动链路:2 条转发(2 Gbps);备份链路:1 条待命

PC1(VLAN10,192.168.10.11/24)接 SW2 GE0/0/10
PC2(VLAN10,192.168.10.12/24)接 SW1 GE0/0/10

目标:
- SW1 为 LACP 主动端,GE0/0/1、GE0/0/2 为活动链路,GE0/0/3 备份;
- 断开任一活动链路后,备份链路秒级顶替,PC 间 ping 仅丢 1~2 个包。

6.2 SW1 完整配置 ​

text
<HTSw> system-view
[HTSw] sysname SW1
[SW1] vlan batch 10 20

# 创建 Eth-Trunk 并指定 LACP 模式(先配模式,再加成员口)
[SW1] interface Eth-Trunk 1
[SW1-Eth-Trunk1] mode lacp-static
[SW1-Eth-Trunk1] trunkport GigabitEthernet 0/0/1 to 0/0/3    # 批量加入 3 个成员口
[SW1-Eth-Trunk1] max active linknumber 2                     # 活动链路上限 2(两端需一致)
[SW1-Eth-Trunk1] least active-linknumber 2                   # 活动链路不足 2 条时整体 down
[SW1-Eth-Trunk1] quit

# 设置本端为主动端(系统 LACP 优先级越小越优,默认 32768)
[SW1] lacp priority system 100

# Eth-Trunk 配置为 Trunk 并放行 VLAN(在逻辑口上配,自动同步到成员口)
[SW1] interface Eth-Trunk 1
[SW1-Eth-Trunk1] port link-type trunk
[SW1-Eth-Trunk1] port trunk allow-pass vlan 10 20
[SW1-Eth-Trunk1] quit

# 终端接入
[SW1] interface GigabitEthernet 0/0/10
[SW1-GigabitEthernet0/0/10] port link-type access
[SW1-GigabitEthernet0/0/10] port default vlan 10
[SW1-GigabitEthernet0/0/10] quit

6.3 SW2 完整配置 ​

text
<HTSw> system-view
[HTSw] sysname SW2
[SW2] vlan batch 10 20

[SW2] interface Eth-Trunk 1
[SW2-Eth-Trunk1] mode lacp-static
[SW2-Eth-Trunk1] trunkport GigabitEthernet 0/0/1 to 0/0/3
[SW2-Eth-Trunk1] max active linknumber 2                     # 与 SW1 保持一致
[SW2-Eth-Trunk1] least active-linknumber 2
[SW2-Eth-Trunk1] quit

# SW2 不配置系统优先级(保持默认 32768),主动端让给 SW1

[SW2] interface Eth-Trunk 1
[SW2-Eth-Trunk1] port link-type trunk
[SW2-Eth-Trunk1] port trunk allow-pass vlan 10 20
[SW2-Eth-Trunk1] quit

[SW2] interface GigabitEthernet 0/0/10
[SW2-GigabitEthernet0/0/10] port link-type access
[SW2-GigabitEthernet0/0/10] port default vlan 10
[SW2-GigabitEthernet0/0/10] quit

6.4 手工负载分担模式配置(对比参考) ​

text
[SW1] interface Eth-Trunk 2
[SW1-Eth-Trunk2] mode manual load-balance
[SW1-Eth-Trunk2] trunkport GigabitEthernet 0/0/22 to 0/0/23
[SW1-Eth-Trunk2] quit

# 也可在成员口视图下单独加入聚合组
[SW1] interface GigabitEthernet 0/0/23
[SW1-GigabitEthernet0/0/23] eth-trunk 2

6.5 三层 Eth-Trunk(路由互联场景) ​

text
[SW1] interface Eth-Trunk 3
[SW1-Eth-Trunk3] undo portswitch          # 切换为三层口
[SW1-Eth-Trunk3] ip address 10.1.1.1 30

6.6 验证 ​

text
[SW1] display eth-trunk 1                          # 聚合口模式、成员口、活动链路数速览
[SW1] display eth-trunk 1 verbose                  # 详细:LACP 优先级、系统 ID、端口选中状态
[SW1] display interface Eth-Trunk 1                # 逻辑口状态、速率、收发包统计
[SW1] display lacp statistics eth-trunk 1          # LACPDU 收发统计

预期结果(display eth-trunk 1 关键输出):

  • Eth-Trunk1 工作模式 STATIC(lacp-static),活动链路数 2/3;
  • SW1 的 GE0/0/1、GE0/0/2 状态 Selected(活动转发),GE0/0/3 状态 Unselect(standby 备份);
  • 逻辑接口速率约 2 Gbps(活动成员链路速率之和)。

业务连通性验证:

text
PC1> ping 192.168.10.12            # 通:流量经 Eth-Trunk 1 转发

故障切换验证:

text
# 断开一条活动链路(关闭 SW1 GE0/0/1 模拟)
[SW1] interface GigabitEthernet 0/0/1
[SW1-GigabitEthernet0/0/1] shutdown
[SW1-GigabitEthernet0/0/1] quit

[SW1] display eth-trunk 1
# 预期:备份链路 GE0/0/3 秒级切换为 Selected 转发,活动链路数恢复为 2
# 切换期间 PC1 ping PC2 仅丢 1~2 个包后恢复

# 链路恢复(未开抢占时 GE0/0/3 保持活动,流量不回切)
[SW1] interface GigabitEthernet 0/0/1
[SW1-GigabitEthernet0/0/1] undo shutdown

# 若开启了 lacp preempt enable,GE0/0/1 恢复后按优先级抢回活动角色

需要指定优先活动的链路时,在成员口视图用 lacp priority 调小端口优先级(越小越优先成为活动链路)。

七、注意事项与常见错误 ​

  1. 两端模式必须一致:一端 manual、一端 lacp-static 时无法协商,LACP 侧成员口全部 Unselect、流量不通;
  2. max active linknumber 两端一致:不一致时两端选出的活动端口集合可能不同,出现部分链路单通;
  3. 成员口属性四一致:速率、双工、链路类型(trunk/access)、放行 VLAN 必须一致,不一致的端口被置 Unselect;
  4. 成员口先清干净再加入:接口残留 VLAN、IP 等配置时加入聚合组失败,需先清除缺省外的配置;
  5. 业务属性在 Eth-Trunk 逻辑口上配置:VLAN、链路类型等在逻辑口配置会自动同步成员口,直接改成员口可能与逻辑口配置冲突;
  6. least active-linknumber 兜底:活动链路数低于阈值时将 Eth-Trunk 整体置 down,让上层协议(STP/路由)切换到备份路径,避免带宽骤降到不可用;
  7. 测速跑不满聚合带宽属正常:逐流分担下单一流只占一条成员链路,需多主机并发流量才能逼近聚合总带宽;
  8. 配置保存:save 持久化,否则重启丢失。

八、面试问答 ​

  1. 链路聚合的作用? 把多条物理链路捆绑成一条逻辑链路:带宽叠加、逐流负载分担、成员链路互为备份毫秒级切换,且聚合组内部天然无环,备份链路不再被 STP 闲置。
  2. 手工模式与 LACP 模式的区别? 手工模式两端静态配置、所有成员链路转发,无协议协商,只能感知物理 Down;LACP 模式通过 LACPDU 协商出 M 条活动 + N 条备份,能检测单向故障、错接等异常,推荐使用。
  3. 为什么逐流而不是逐包负载分担? 逐包会使同一条流的报文经不同路径到达而乱序,接收端需重排序甚至触发重传;逐流保证流内有序,代价是流量分布可能不均。
  4. LACP 如何确定活动链路? 先比系统 LACP 优先级(再比 MAC)选出主动端,主动端再按端口优先级(再比端口号)从成员口中选出 max active linknumber 条活动链路,其余为备份。
  5. max active linknumber 与 least active linknumber 的区别? 前者限制同时转发的活动链路上限(其余进备份);后者是活动链路数下限,低于该值时 Eth-Trunk 整体 down,触发上层路径切换。
  6. Eth-Trunk 与 STP 如何配合? 聚合组整体作为一个逻辑端口参与生成树计算;组内成员间不跑 STP、不成环,多条链路聚合后都能转发,冗余与提速兼得。
  7. 两台独立交换机可以聚合吗? 普通 Eth-Trunk 的成员口必须在同一台设备上;跨设备聚合需堆叠/集群(CSS)或 M-LAG 技术,使两台设备对外呈现为一个逻辑节点。

九、记忆技巧 ​

  • 三大收益:带宽叠加、负载分担、冗余备份(外加天然防环);
  • 两种模式:手工静态配、LACP 协商转(M 主 N 备);
  • 两个"越小越优":主动端看系统优先级 → MAC;活动端口看端口优先级 → 端口号;
  • 两条保险丝:max 控上限(多余进备份)、least 保下限(不足就整体 down);
  • 成员口四一致:速率、双工、链路类型、放行 VLAN。