# 聚合链路

## 聚合链路是什么

聚合链路也常叫 **链路聚合**，是指把多条物理链路在逻辑上捆绑成一条链路来使用。

它的核心作用是：
- 提高链路带宽
- 提高链路可靠性
- 在一定程度上实现负载分担

可以简单理解为：

原来一条链路承担业务，现在把多条物理链路组合成一个逻辑接口，对上层看来就像一条更大的链路。

## 为什么要用聚合链路

如果只有一条上联链路，可能会遇到两个问题：
- 带宽不够
- 单链路故障后业务中断

使用聚合链路后：
- 多条链路可以一起承载流量
- 某一条成员链路故障时，其余链路仍可继续工作
- 网络可用性更高

## 基本特点

- 聚合链路由多条物理接口组成
- 对外表现为一个逻辑接口
- 成员接口需要满足一定的一致性要求
- 流量通常不会对单个会话做逐包乱序转发，而是按照一定规则分担到不同成员链路

## 聚合链路的常见方式

### 1. 手工聚合

手工把多个接口加入同一个聚合组，适合简单场景。

### 2. LACP

LACP 是链路聚合控制协议，用于动态协商链路聚合。

它的特点是：
- 自动协商成员链路
- 有助于提高配置一致性和稳定性
- 在实际网络中很常见

## 聚合链路的作用

### 1. 增大带宽

多条物理链路共同承载流量，整体可用带宽提升。

### 2. 提高可靠性

某条物理链路故障时，只要还有其他成员链路正常，逻辑链路一般还能继续工作。

### 3. 简化管理

多条物理链路对外看成一个逻辑接口，配置和管理更统一。

## 常见理解误区

### 1. 聚合后单个会话带宽一定翻倍

不一定。

链路聚合通常是基于源 MAC、目的 MAC、源 IP、目的 IP、端口号等字段做负载分担。多个会话整体吞吐量可能增加，但单个会话未必能把所有成员链路带宽都用满。

### 2. 任意接口都能直接聚合

不行。

成员接口通常要满足一些基本一致性要求，例如：
- 接口速率一致
- 双工模式一致
- 二层属性一致
- 允许通过的 VLAN 等配置一致

### 3. 聚合链路能完全替代生成树

不能这么理解。

聚合链路可以减少并行链路带来的管理复杂度，但二层冗余网络里仍可能需要生成树参与整体防环。

## 聚合链路与 VLAN、STP 的关系

### 与 VLAN 的关系

聚合链路本身可以作为 Access、Trunk 或其他类型逻辑接口使用，常见于承载多个 VLAN 的上联链路。

### 与 STP 的关系

如果多条物理链路已经成功加入同一个聚合组，那么生成树通常把这组链路当作一个逻辑链路来看待，而不是把每条成员链路单独看待。

## 一句话理解

- **链路聚合就是“多条物理链路合成一条逻辑链路”**
- **主要目的是提带宽、保可靠**
- **LACP 是常见的动态聚合方式**

## 常见厂商命令

### 华为

创建 Eth-Trunk：

```bash
interface Eth-Trunk 1
```

把物理接口加入聚合组：

```bash
interface GigabitEthernet 0/0/1
eth-trunk 1
```

查看聚合链路信息：

```bash
display eth-trunk 1
```

查看聚合摘要：

```bash
display trunkmembership eth-trunk 1
```

配置 LACP 模式：

```bash
interface Eth-Trunk 1
mode lacp-static
```

### 思科 Cisco

创建聚合口：

```bash
interface port-channel 1
```

把接口加入聚合组：

```bash
interface range gigabitEthernet 0/1 - 2
channel-group 1 mode active
```

查看 EtherChannel 摘要：

```bash
show etherchannel summary
```

查看聚合口信息：

```bash
show interfaces port-channel 1
```

常见模式：

```bash
channel-group 1 mode on
channel-group 1 mode active
channel-group 1 mode passive
```

其中常见理解：
- `on`：手工聚合
- `active/passive`：LACP

## 复习时容易写错的点

- 聚合链路不只是“带宽不够时才用”，它还有提高可靠性的作用
- 聚合后看到的是逻辑接口，不是多条链路各自独立工作
- 单流量不一定能跑满所有成员链路
- 成员接口配置必须匹配，否则可能无法成功聚合
