华为链路聚合原理

第一部分:链路聚合基本原理

1. 定义与目的

链路聚合(Link Aggregation)又称Eth-Trunk,是将多个物理以太网接口捆绑成一个逻辑接口的技术。

  • 目的

    • 增加带宽:聚合后的带宽是所有成员接口带宽的总和。

    • 提高可靠性:当某个成员链路故障时,流量会自动切换到其他正常链路上,实现备份冗余。

    • 负载分担:流量在多条成员链路上分担,有效利用网络资源。

2. 核心概念

  • 聚合组/逻辑接口 (Eth-Trunk):由多个物理接口捆绑而成的逻辑接口。所有配置在Eth-Trunk上,而不是物理接口上。

  • 成员接口/成员链路:组成Eth-Trunk的物理接口。

  • 活动接口/链路:实际转发数据的成员接口。

  • 非活动接口/链路:处于备份状态的成员接口(仅在活动接口故障时接管)。

  • 哈希算法 :决定数据流如何在不同成员链路上分担的算法。基于源/目的MAC、IP、端口号等进行计算,确保同一条数据流在同一条物理链路上传输,避免乱序。


第二部分:LACP协议与包解析

LACP(Link Aggregation Control Protocol,链路聚合控制协议)是IEEE 802.3ad(后并入802.1ax)标准的一部分,用于自动管理聚合组的建立和维护

1. LACP作用

  • 自动发现:自动发现对端支持LACP的接口。

  • 协商参数:协商双方的接口速度、双工模式、聚合能力等。

  • 动态维护:检测链路故障,动态调整活动接口。

2. LACP PDU格式解析

LACP报文是以太网帧,协议类型为Slow Protocols (0x8809) ,子类型为LACP (0x01)

字段 长度 说明
子类型 1字节 0x01 表示LACP
版本号 1字节 通常为 0x01
Actor TLV 20字节 本端系统信息
Partner TLV 20字节 对端系统信息(学习自对端的Actor信息)
Collector TLV 16字节 收集器信息(通常为默认值)
终止符TLV 2字节 0x00 表示结束

核心TLV(Actor/Partner)详解:

每个20字节的TLV包含:

字段 长度 说明
系统优先级 2字节 标识系统的优先级,用于选举主动端。值越小优先级越高。
系统ID 6字节 通常为设备的MAC地址。与系统优先级共同唯一标识一个系统。
密钥 2字节 关键字段 。标识一个潜在的聚合组 。设备根据接口的物理特性、配置的聚合组ID等计算得出。Key值相同的接口才能被聚合到同一个组中。
端口优先级 2字节 标识接口在系统内的优先级,用于选举活动接口。值越小优先级越高。
端口号 2字节 接口的唯一标识符。
状态 1字节 核心状态位 ,每个bit代表一种状态: • 0x01: LACP使能 • 0x02: 接口处于活动状态(短超时) • 0x04: 接口聚合能力(1=可聚合) • 0x08: 接口同步状态(1=已同步到正确的聚合组) • 0x10: 接口收集状态(1=正在收集帧) • 0x20: 接口分发状态(1=正在分发帧) • 0x40: 默认状态 • 0x80: 过期状态

3. LACP协商关键过程

  1. 选举主动端 :比较双方的系统优先级 + 系统ID,值小者获胜。

  2. 确定活动接口

    • 主动端根据本端的接口优先级和数量,选择活动接口。

    • 主动端的选择结果通过LACP报文通知给对端(被动端)。

    • 被动端遵从主动端的选择结果,保持对应的接口为活动状态。

  3. 状态同步 :当接口的同步状态位(0x08)置位,表明该接口已成功加入聚合组,可以转发数据。


第三部分:配置模式详解

华为设备链路聚合主要有三种模式:

模式 命令关键字 特点 协商协议 适用场景
手工负载分担模式 mode manual load-balance 默认模式 。需要手动 创建聚合组,手动 添加成员接口。不发送LACP报文 。对端必须进行完全相同的配置才能成功聚合。 两端设备均不支持LACP协议时。配置简单,但无法检测链路层故障(如单通)。
静态LACP模式 mode lacp-static 最常用、推荐模式 。需要手动创建聚合组和添加成员,但启用LACP协议进行协商。设备间通过LACP报文交互信息。 LACP 两端设备均支持LACP时。提供了链路检测和活动接口备份(M:N)能力,可靠性高。
动态LACP模式 华为交换机通常不支持纯动态模式。一些厂商(如思博的PAGP)有类似模式,但华为主要使用静态LACP。 - - -

关键区别与选择

  • 手工 vs LACP静态 :最大的区别在于是否使用LACP协议进行链路检测和动态维护。

  • 活动接口上限 :在静态LACP模式下,可以配置lacp max active-linknumber来设置活动接口的最大数量,实现M:N备份(例如8条链路中,最多5条活动,3条备份)。


第四部分:配置示例与解读(静态LACP模式)

假设SwitchA和SwitchB之间用G0/0/1, G0/0/2, G0/0/3三条链路进行聚合。

SwitchA 配置:

bash

复制

下载

复制代码
# 1. 创建Eth-Trunk接口(逻辑聚合口)
system-view
interface Eth-Trunk 1           # 创建ID为1的Eth-Trunk
mode lacp-static                # 配置为静态LACP模式

# 2. 配置Eth-Trunk为三层路由口或二层接入/干道口(以三层口为例)
ip address 10.1.1.1 24          # 配置IP地址(如果是三层聚合)

# 3. 将物理接口加入Eth-Trunk
interface gigabitethernet 0/0/1
eth-trunk 1                     # 将物理口加入Trunk 1
interface gigabitethernet 0/0/2
eth-trunk 1
interface gigabitethernet 0/0/3
eth-trunk 1

# 4. (可选)配置LACP系统优先级,值越小优先级越高,用于选举主动端
lacp priority 100               # 默认为32768

# 5. (可选)在Eth-Trunk接口下配置活动接口上限和接口优先级
interface Eth-Trunk 1
lacp max active-linknumber 2    # 只允许2条活动链路,实现1:1备份
#
interface gigabitethernet 0/0/1
lacp priority 100               # 配置接口优先级,值小优先成为活动接口,默认32768

SwitchB 配置:

bash

复制

下载

复制代码
# 配置与SwitchA对称,Eth-Trunk ID可以不同,但建议相同方便管理
system-view
interface Eth-Trunk 1
mode lacp-static
ip address 10.1.1.2 24          # 同一网段的不同IP

interface range gigabitethernet 0/0/1 to 0/0/3
eth-trunk 1

配置验证命令:

bash

复制

下载

复制代码
# 查看Eth-Trunk摘要信息
display eth-trunk 1

# 查看详细的LACP协议状态
display lacp statistics eth-trunk 1
display lacp brief eth-trunk 1

# 查看成员接口状态
display interface eth-trunk 1

display eth-trunk 1 输出关键信息解读:

  • WorkingMode: LACP 表示模式。

  • State: Up 逻辑接口状态。

  • NumberOfPorts: 3 总成员数。

  • Operate status: up 操作状态。

  • ActivePort: 2 活动接口数量 (如果配置了max active-linknumber 2)。

  • 成员列表会显示每个接口的StatusFlagS表示Selected(活动)U表示Unselected(备份)D表示Down


第五部分:重要注意事项

  1. 负载分担算法 :通过 load-balance 命令调整,需确保两端设备算法一致或兼容,否则可能导致流量分布不均。

  2. 成员接口一致性 :加入同一聚合组的成员接口必须具有相同的速率、双工模式、类型(均为二层或三层)和VLAN配置

  3. 与STP的交互 :链路聚合优先于生成树协议(STP)。STP将整个Eth-Trunk视为一条逻辑链路,不会对其中的成员端口进行阻塞,从而避免环路并充分利用带宽。

  4. 三层路由聚合:如果Eth-Trunk作为三层接口使用,IP地址配置在Eth-Trunk上,物理接口不能有IP地址。

  5. 故障切换时间 :LACP模式的收敛速度通常快于手工模式,并且可以通过调整LACP报文发送的短超时(1秒) 来进一步加快故障检测。

总结

华为链路聚合是一个将多物理链路虚拟为单逻辑链路的核心技术。静态LACP模式 因其自动检测和备份能力成为生产网络的首选。理解LACP协议包的交互机制,尤其是系统优先级、Key值和状态位 ,是进行高级故障排查的基础。配置时需重点关注模式一致性、活动接口数、负载分担算法等关键参数,以确保聚合组稳定高效运行。

相关推荐
cyyt1 小时前
深度学习周报(12.1~12.7)
人工智能·深度学习
围炉聊科技1 小时前
Orchestrator-8B:近期HuggingFace上火热的小型模型
人工智能
shayudiandian1 小时前
Keras深度学习框架入门教程
人工智能·深度学习·keras
小王毕业啦1 小时前
2008-2023年 全国统一大市场发展水平
大数据·人工智能·数据挖掘·数据分析·数据统计·社科数据·实证数据
lally.1 小时前
Kaggle Binary Classification with a Bank Dataset逻辑回归实现(准确率0.94539)
人工智能·算法·机器学习·逻辑回归
500佰1 小时前
AI 财务案例 普通财务人的AI in ALL
前端·人工智能
桂花饼1 小时前
GPT-5.1-Codex-Max:原生“记忆压缩”重塑编程范式,让 AI 连续写代码 24 小时不再是梦
人工智能·gpt·ai绘图·nano banana 2·图像生成api·openai兼容接口·gpt-5.1-codex
Mintopia1 小时前
🌍 全球 AIGC 技术竞争格局下:Web 应用的技术自主可控思考
人工智能·aigc·trae
Mintopia2 小时前
🏗️ 系统架构之:大模型 Token 计费方案
人工智能·架构·全栈