# 2.链路聚合

## 1 以太网链路聚合

#### 1.1 以太网链路聚合简介

以太网链路聚合简称链路聚合，它通过将多条以太网物理链路捆绑在一起成为一条逻辑链路，从而实现增加链路带宽的目的。同时，这些捆绑在一起的链路通过相互间的动态备份，可以有效地提高链路的可靠性。

如图1-1所示，Device A与Device B之间通过三条以太网物理链路相连，将这三条链路捆绑在一起，就成为了一条逻辑链路Link aggregation 1，这条逻辑链路的带宽等于原先三条以太网物理链路的带宽总和，从而达到了增加链路带宽的目的；同时，这三条以太网物理链路相互备份，有效地提高了链路的可靠性。

![图1-1](https://typore-img.oss-cn-beijing.aliyuncs.com/Typecho/img/2022/20220519150005.png)

​ 图1-1 链路聚合示意图

### 1. 聚合组、成员端口和聚合接口

将多个以太网端口捆绑在一起所形成的组合称为聚合组，而这些被捆绑在一起的以太网端口就称为该聚合组的成员端口。每个聚合组唯一对应着一个逻辑接口，我们称之为聚合接口。聚合组/聚合接口可以分为以下两种类型：

· 二层聚合组/二层聚合接口：二层聚合组的成员端口全部为二层以太网端口，其对应的聚合接口称为二层聚合（Bridge-aggregation，BAGG）接口。

· 三层聚合组/三层聚合接口：三层聚合组的成员端口全部为三层以太网端口，其对应的聚合接口称为三层聚合（Route-aggregation，RAGG）接口。

说明：

```
聚合组与聚合接口的编号是一一对应的，譬如聚合组1对应于聚合接口1。
聚合接口的速率和双工模式取决于对应聚合组内的选中端口，聚合接口的速率等于所有选中端口的速率之和，聚合接口的双工模式则与选中端口的双工模式相同。
```

### 2. 成员端口的状态

聚合组内的成员端口具有以下两种状态：

· 选中（Selected）状态：此状态下的成员端口可以参与用户数据的转发，处于此状态的成员端口简称为“选中端口”。

· 非选中（Unselected）状态：此状态下的成员端口不能参与用户数据的转发，处于此状态的成员端口简称为“非选中端口”。

在选中端口失效后，其它非选中端口可能成为选中端口，参与用户数据的转发。

### 3. 操作Key

操作Key是系统在进行链路聚合时用来表征成员端口聚合能力的一个数值，它是根据成员端口上的一些信息（包括该端口的速率、双工模式等）的组合自动计算生成的，这个信息组合中任何一项的变化都会引起操作Key的重新计算。在同一聚合组中，所有的选中端口都必须具有相同的操作Key。

### 4. 配置分类

根据对成员端口状态的影响不同，我们可以将成员端口上的配置分为以下三类：

(1) 端口属性类配置：包含速率、双工模式和链路状态（up/down）这三项配置内容，是成员端口上最基础的配置内容。

(2) 第二类配置：包含的配置内容如\[表1-1]所示。在聚合组中，只有与对应聚合接口的第二类配置完全相同的成员端口才能够成为选中端口。

表1-1 第二类配置的内容

| 配置项       | 内容                                                                                                    |
| --------- | ----------------------------------------------------------------------------------------------------- |
| 端口隔离      | 端口是否加入隔离组、端口所属的端口隔离组                                                                                  |
| QinQ配置    | 端口的QinQ功能开启/关闭状态、VLAN Tag的TPID值、添加的外层VLAN Tag、内外层VLAN优先级映射关系、不同内层VLAN ID添加外层VLAN Tag的策略、内层VLAN ID替换关系 |
| VLAN配置    | 端口上允许通过的VLAN、端口缺省VLAN、端口的链路类型（即Trunk、Hybrid、Access类型）、基于IP子网的VLAN配置、基于协议的VLAN配置、VLAN报文是否带Tag配置        |
| MAC地址学习配置 | 是否具有MAC地址学习功能                                                                                         |

说明

```
·   在聚合接口上所作的第二类配置，将被自动同步到对应聚合组内的所有成员端口上。当聚合接口被删除后，这些配置仍将保留在这些成员端口上。
·   由于成员端口上第二类配置的改变可能导致其选中/非选中状态发生变化，进而对业务产生影响，因此当在成员端口上进行此类配置时，系统将给出提示信息，由用户来决定是否继续执行该配置。
```

(3) 第一类配置：是相对于第二类配置而言的，包含的配置内容有GVRP、生成树等。在聚合组中，即使某成员端口与对应聚合接口的第一类配置存在不同，也不会影响该成员端口成为选中端口。

说明：

```
在成员端口上所作的第一类配置，只有当该成员端口退出聚合组后才能生效。
```

### 5. 参考端口

参考端口从成员端口中选出，其端口属性类配置和第二类配置将作为同一聚合组内的其它成员端口的参照，以确定这些成员端口的状态。

### 6. 聚合模式

根据成员端口上是否启用了LACP协议，可以将链路聚合分为静态聚合和动态聚合两种模式，它们各自的特点如表1-2所示。

表1-2 不同聚合模式的特点

| 聚合模式   | 成员端口是否开启LACP协议 | 优点                                 | 缺点                          |
| ------ | -------------- | ---------------------------------- | --------------------------- |
| 静态聚合模式 | 否              | 一旦配置好后，端口的选中/非选中状态就不会受网络环境的影响，比较稳定 | 不能根据对端的状态调整端口的选中/非选中状态，不够灵活 |
| 动态聚合模式 | 是              | 能够根据对端和本端的信息调整端口的选中/非选中状态，比较灵活     | 端口的选中/非选中状态容易受网络环境的影响，不够稳定  |

处于静态聚合模式和动态聚合模式下的聚合组分别称为静态聚合组和动态聚合组，动态聚合组内的选中端口以及处于up状态、与对应聚合接口的第二类配置相同的非选中端口均可以收发LACPDU（Link Aggregation Control Protocol Data Unit，链路聚合控制协议数据单元）。

## 2 配置举例

### 2.1 二层静态聚合配置举例

**1. 组网需求**

· Device A与Device B通过各自的二层以太网端口GigabitEthernet 1/0/1～GigabitEthernet 1/0/3相互连接。

· 在Device A和Device B上分别配置二层静态链路聚合组，并使两端的VLAN 10和VLAN 20之间分别互通。

· 通过按照报文的源MAC地址和目的MAC地址进行聚合负载分担的方式，来实现数据流量在各成员端口间的负载分担。

**2. 组网图**

图1-5 二层静态聚合配置组网图

![img](https://typore-img.oss-cn-beijing.aliyuncs.com/Typecho/img/2022/%E4%BA%8C%E5%B1%82%E9%9D%99%E6%80%81%E8%81%9A%E5%90%88%E9%85%8D%E7%BD%AE%E7%BB%84%E7%BD%91%E5%9B%BE.png)

**3. 配置步骤**

(1) 配置Device A

\# 创建VLAN 10，并将端口GigabitEthernet 1/0/4加入到该VLAN中。

```
<DeviceA> system-view
[DeviceA] vlan 10
[DeviceA-vlan10] port gigabitethernet 1/0/4
[DeviceA-vlan10] quit
```

\# 创建VLAN 20，并将端口GigabitEthernet 1/0/5加入到该VLAN中。

```
[DeviceA] vlan 20
[DeviceA-vlan20] port gigabitethernet 1/0/5
[DeviceA-vlan20] quit
```

\# 创建二层聚合接口1。

```
[DeviceA] interface bridge-aggregation 1
[DeviceA-Bridge-Aggregation1] quit
```

\# 分别将端口GigabitEthernet 1/0/1至GigabitEthernet 1/0/3加入到聚合组1中。

```
[DeviceA] interface gigabitethernet 1/0/1
[DeviceA-GigabitEthernet 1/0/1] port link-aggregation group 1
[DeviceA-GigabitEthernet 1/0/1] quit
[DeviceA] interface gigabitethernet 1/0/2
[DeviceA-GigabitEthernet 1/0/2] port link-aggregation group 1
[DeviceA-GigabitEthernet 1/0/2] quit
[DeviceA] interface gigabitethernet 1/0/3
[DeviceA-GigabitEthernet 1/0/3] port link-aggregation group 1
[DeviceA-GigabitEthernet 1/0/3] quit
```

\# 配置二层聚合接口1为Trunk端口，并允许VLAN 10和20的报文通过。

```
[DeviceA] interface bridge-aggregation 1
[DeviceA-Bridge-Aggregation1] port link-type trunk
[DeviceA-Bridge-Aggregation1] port trunk permit vlan 10 20
 Please wait... Done.
 Configuring GigabitEthernet 1/0/1... Done.
 Configuring GigabitEthernet 1/0/2... Done.
 Configuring GigabitEthernet 1/0/3... Done.
[DeviceA-Bridge-Aggregation1] quit
```

\# 配置全局按照报文的源MAC地址和目的MAC地址进行聚合负载分担。

```
[DeviceA] link-aggregation load-sharing mode source-mac destination-mac
```

(2) 配置Device B

Device B的配置与Device A相似，配置过程略。

(3) 检验配置效果

\# 查看Device A上所有聚合组的摘要信息。

```
[DeviceA] display link-aggregation summary
Aggregation Interface Type:
BAGG -- Bridge-Aggregation, RAGG -- Route-Aggregation
Aggregation Mode: S -- Static, D -- Dynamic
Loadsharing Type: Shar -- Loadsharing, NonS -- Non-Loadsharing
Actor System ID: 0x8000, 000f-e2ff-0001
AGG     AGG    Partner ID        Select Unselect  Share
Interface  Mode                Ports Ports   Type
\-------------------------------------------------------------------------------
BAGG1    S     none           3   0     Shar
```

以上信息表明，聚合组1为负载分担类型的二层静态聚合组，包含有三个选中端口。

\# 查看Device A上全局采用的聚合负载分担类型。

```
[DeviceA] display link-aggregation load-sharing mode
Link-Aggregation Load-Sharing Mode:
destination-mac address, source-mac address
```

以上信息表明，所有聚合组都按照报文的源MAC地址和目的MAC地址进行聚合负载分担。

### 2.2 二层动态聚合配置举例

\# 其他配置和静态一样，只是在聚合口下配置一条命令

\# 创建二层聚合接口1，并配置该接口为动态聚合模式。其他配置和静态一样

```
[DeviceA] interface bridge-aggregation 1
[DeviceA-Bridge-Aggregation1] link-aggregation mode dynamic
```

### 2.3 三层静态聚合配置举例

\# 创建三层聚合接口1，并为该接口配置IP地址和子网掩码。其他和二层配置一样

```
<DeviceA> system-view
[DeviceA] interface route-aggregation 1
[DeviceA-Route-Aggregation1] ip address 192.168.1.1 24
[DeviceA-Route-Aggregation1] quit
```

## 3 其他配置说明

### 3.1限制聚合组内选中端口的数量

聚合链路的带宽取决于聚合组内选中端口的数量，用户通过配置聚合组中的最小选中端口数，可以避免由于选中端口太少而造成聚合链路上的流量拥塞。当聚合组内选中端口的数量达不到配置值时，对应的聚合接口将不会up，从而使流量可以切换到备份链路上。具体实现如下：

· 如果聚合组内能够被选中的成员端口数小于配置值，这些成员端口都将变为非选中状态，对应聚合接口的链路状态也将变为down。

* 当聚合组内能够被选中的成员端口数增加至不小于配置值时，这些成员端口都将变为选中状态，对应聚合接口的链路状态也将变为up。
* 缺省情况下，聚合组中的最小选中端口数不受限制

配置举例：

\# 创建二层聚合(三层聚合)接口1，并配置该接口限制聚合组的数量最小为2

```
[DeviceA] interface bridge-aggregation 1
[DeviceA-Bridge-Aggregation1] link-aggregation selected-port minimum 2
```

### 3.2设置链路聚合的负载分担方式

`link-aggregation load-sharing mode`命令用来配置聚合组内采用的聚合负载分担类型。

`undo link-aggregation load-sharing mode`命令用来恢复缺省情况。

【命令】

```
link-aggregation load-sharing mode { destination-ip | destination-mac| source-ip| source-mac } 
```

【缺省情况】

缺省情况与设备的型号相关，请以设备的实际情况为准。

【参数】

**destination-ip**：表示按报文的目的IP地址进行聚合负载分担。

**destination-mac**：表示按报文的目的MAC地址进行聚合负载分担。

**source-ip**：表示按报文的源IP地址进行聚合负载分担。

**source-mac**：表示按报文的源MAC地址进行聚合负载分担。

【使用指导】

* 如果多次执行本命令，新的配置将覆盖旧的配置。
* 对于设备不支持的聚合负载分担类型，系统将提示用户不支持。

【举例】

配置二层聚合接口1对应的聚合组内按照报文目的MAC地址进行聚合负载分担。

```
<Sysname> system-view

[Sysname] interface bridge-aggregation 1

[Sysname-Bridge-Aggregation1] link-aggregation load-sharing mode destination-mac
```

配置二层聚合接口1对应的聚合组内按照源目地址进行聚合负载分担。

```
<Sysname> system-view

[Sysname] interface bridge-aggregation 1

[Sysname-Bridge-Aggregation1] link-aggregation load-sharing mode destination-ip source-ip 
```

**其他交换机配置**

华三

```
link-aggregation load-sharing mode destination-ip source-ip 
```

\#基于源IP和目的IP进行负载分担

华为

```
load-balance src-dst-ip
```

\#配置Eth-Trunk负载分担方式。缺省情况下，交换机上Eth-Trunk接口的负载分担模式为src-dst-ip

锐捷

```
aggregateport load-balance src-dst-ip
```

\#更改流量平衡算法为源目ip模式，默认为源MAC+目的MAC模式


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.chjina.com/it-zhi-shi-ku/lu-you-jiao-huan/hua-san/2.-lian-lu-ju-he.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
