链路聚合详解 (LACP):捆绑链路,带宽翻倍,冗余加倍

在网络设计中,我们经常会遇到两个核心设备(如交换机之间或服务器与交换机之间)连接的场景。如果只使用一根网线连接,不仅带宽受限于单条链路的速率,更严重的是,一旦这根线缆或端口出现故障,两者之间的通信就会完全中断。链路聚合 (Link Aggregation) 技术就是为了解决这一问题而设计的。

它通过将多条物理链路捆绑成一条逻辑上的、更大带宽的链路,从而在不升级硬件的情况下实现带宽增加和链路冗余。


一、链路聚合的核心原理

链路聚合的核心思想是将多个物理端口“打包”成一个逻辑上的聚合组,这个组在网络中被视为单一的端口(通常称为 Port-ChannelEtherChannelEth-Trunk)。

为了让两端设备能够正确地管理这个聚合组,需要一个控制协议来协商和维护链路状态。目前主要有两种协议:

LACPIEEE 802.3ad 中定义的公有标准协议,也是目前应用最广泛的链路聚合协议。它具有很强的通用性,不同厂商的设备只要都支持 LACP,就可以进行聚合。

LACP 通过发送 LACPDU (LACP Data Units) 报文来进行协商,其工作模式分为两种:

  • Active (主动模式):该模式下的端口会主动向对端发送 LACPDU 报文,尝试与对端建立聚合链路。无论对端是 Active 还是 Passive 模式,只要配置匹配,都能成功建立聚合。
  • Passive (被动模式):该模式下的端口不会主动发起协商,而是静静地“聆听”,只有在收到对端的 LACPDU 报文后,才会响应并建立聚合。因此,如果两端都配置为 Passive 模式,聚合是无法建立的。

常见组合:

  • ActiveActive (√)
  • ActivePassive (√)
  • PassivePassive (×)

2. PAgP (Port Aggregation Protocol)

PAgP 是思科的私有协议,工作原理与 LACP 类似,但只能在思科设备之间使用。它的模式分为 desirable(类似 LACP 的 Active)和 auto(类似 LACP 的 Passive)。由于其私有性,现在已较少使用。

3. 静态模式 (On)

除了协议协商,还可以强制将端口捆绑在一起,这就是静态模式(或称为 On 模式)。它不发送协商报文,强制认为链路是聚合的。这种方式配置简单,但缺点是无法检测到对端链路的故障(如对端端口被关闭或配置错误),容易导致环路或通信中断,因此在生产环境中不推荐使用。

负载均衡机制

一个常见的误解是,一个 4Gbps 的聚合链路可以传输单个 4Gbps 的数据流。实际上,链路聚合的负载均衡是基于流 (Flow) 的,而不是基于包 (Packet) 的。

交换机会根据数据包的某些特征(如源/目的 MAC 地址、源/目的 IP 地址、源/目的端口号)进行哈希计算,然后根据计算结果决定这个“流”走哪一条物理链路。这样做可以保证同一个会话的所有数据包都通过同一条物理链路传输,避免了数据包乱序的问题。


二、LACP 配置命令教程

以下我们以两台交换机 (Switch A 和 Switch B) 之间通过两根线缆 (GigabitEthernet 1/0/1 和 1/0/2) 建立 LACP 聚合为例进行演示。

网络拓扑:

  • Switch A (SWA) <–> Switch B (SWB)
  • SWA G1/0/1 <–> SWB G1/0/1
  • SWA G1/0/2 <–> SWB G1/0/2
  • 聚合组 ID: 1

步骤 1:在 SWA 和 SWB 上创建逻辑聚合接口

在 Switch A 上:

1
2
3
4
5
system-view
# 创建逻辑接口 Eth-Trunk 1
interface Eth-Trunk1
# (可选)添加描述
description Link-to-SWB

在 Switch B 上:

1
2
3
4
system-view
# 创建逻辑接口 Eth-Trunk 1
interface Eth-Trunk1
description Link-to-SWA

步骤 2:将物理端口加入聚合组

在 Switch A 上:

1
2
3
4
5
6
7
8
9
# 进入物理接口 G1/0/1
interface GigabitEthernet1/0/1
# 将其加入 Eth-Trunk 1
eth-trunk 1

# 进入物理接口 G1/0/2
interface GigabitEthernet1/0/2
# 将其加入 Eth-Trunk 1
eth-trunk 1

在 Switch B 上: (操作相同)

1
2
3
4
interface GigabitEthernet1/0/1
eth-trunk 1
interface GigabitEthernet1/0/2
eth-trunk 1

步骤 3:配置聚合模式和网络属性

现在,所有网络相关的配置(如 Trunk、VLAN 等)都应该在逻辑接口 Eth-Trunk 上进行,而不是在物理接口上。

在 Switch A 和 Switch B 上:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 进入逻辑接口视图
interface Eth-Trunk1

# 将模式设置为 LACP 静态模式(等同于 Active)
# 注意:不同厂商命令不同,Cisco 为 channel-group 1 mode active
mode lacp-static

# 将聚合链路配置为 Trunk 模式
port link-type trunk

# 允许所有 VLAN 通过
port trunk allow-pass vlan all

# (可选)配置负载均衡模式,例如基于源和目的 IP
load-balance src-dst-ip

步骤 4:验证配置

1
2
3
4
5
# 显示 Eth-Trunk 的简要信息
display eth-trunk 1

# 查看 LACP 协商状态
display lacp statistics eth-trunk 1

在输出中,您应该能看到 Eth-Trunk1 的状态是 Up,并且其成员端口 GigabitEthernet1/0/1GigabitEthernet1/0/2 的状态都是 SelectedUp,这表示 LACP 协商成功,链路聚合已正常工作。

总结

链路聚合是现代网络中一项基础且至关重要的技术。它以低成本的方式有效地解决了链路带宽瓶颈和单点故障问题,是构建高可用、高弹性网络架构的基石。无论是连接核心设备,还是连接重要的服务器,链路聚合都应该是您的首选方案。