一、基本概念

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

说明:Eth-Trunk 链路两端相连的物理接口的数量、速率、双工方式、jumbo、流控方式必须一致。

链路聚合接口可以作为普通的以太网接口来使用,实现各种路由协议以及其它业务。与普通以太网接口的差别在于:转发的时候链路聚合组需要从成员接口中选择一个或多个接口来进行数据转发。

以下是链路聚合的一些基本概念:

  • ·链路聚合、链路聚合组和链路聚合接口

  • 链路聚合是指将若干条物理接口捆绑在一起作为一个逻辑接口来增加带宽及可靠性的技术。

  • 链路聚合组 LAG(LinkAggregation Group)是指将若干条以太链路捆绑在一起所形成的逻辑链路,简写为 Eth-Trunk。

每个聚合组唯一对应着一个逻辑接口,这个逻辑接口称之为聚合接口或 Eth-Trunk 接口。

  • ·成员接口和成员链路

组成Eth-Trunk 接口的各个物理接口称为成员接口。成员接口对应的链路称为成员链路。

  • ·活动接口和非活动接口、活动链路和非活动链路链路

聚合组的成员接口存在活动接口和非活动接口两种。转发数据的接口称为活动接口,不转发数据的接口称为非活动接口。

活动接口对应的链路称为活动链路,非活动接口对应的链路称为非活动链路。

  • ·活动接口数上限阈值

设置活动接口数上限阈值的目的是在保证带宽的情况下提高网络的可靠性。当前活动链路数目达到上限阈值时,再向Eth-Trunk 中添加成员接口,不会增加 Eth-Trunk活动接口的数目,超过上限阈值的链路状态将被置为 Down,作为备份链路。

例如,有 8 条无故障链路在一个Eth-Trunk 内,每条链路都能提供 1G的带宽,现在最多需要5G 的带宽,那么上限阈值就可以设为5 或者更大的值。其他的链路就自动进入备份状态以提高网络的可靠性。

说明:手工负载分担模式链路聚合不支持活动接口数上限阈值的配置。关于手工负载分担模式,请参见手工负载分担模式链路聚合。

  • ·活动接口数下限阈值

设置活动接口数下限阈值是为了保证最小带宽,当前活动链路数目小于下限阈值时,Eth-Trunk接口的状态转为 Down。

例如,每条物理链路能提供 1G的带宽,现在最小需要 2G 的带宽,那么活动接口数下限阈值必须要大于等于2。

二、转发原理

如图所示, Eth-Trunk 位于MAC 子层与物理层之间,属于数据链路层。

对于 MAC 子层来说,Eth-Trunk 接口可以认为是一个物理接口。因此, MAC子层在传输数据的时候,仅需要把数据提交给 Eth-Trunk 模块即可。Eth-Trunk 模块内部维护一张转发表,这张表由以下两项组成。

  • ·HASH-KEY 值

HASH-KEY 值是根据数据包的MAC 地址或 IP地址等,经 HASH 算法计算得出。

  • ·接口号

Eth-Trunk 转发表表项分布和设备每个Eth-Trunk 支持加入的成员接口数量相关,不同的HASH-KEY值对应不同的出接口。

例如,某设备每 Eth-Trunk 支持最大加入接口数为8 个,将接口 1、2、3、4捆绑为一个 Eth-Trunk接口,此时生成的转发表如图2 所示。其中 HASH-KEY值为 0、1、 2、3、 4、5、 6、7,对应的出接口号分别为 1、2、 3、4、 1、2、 3、4。

Eth-Trunk 转发表示例

Eth-Trunk 模块根据转发表转发数据帧的过程如下:

  1. Eth-Trunk 模块从MAC 子层接收到一个数据帧后,根据负载分担方式提取数据帧的源MAC地址/IP 地址或目的MAC 地址/IP地址。

  2. 根据 HASH算法进行计算,得到 HASH-KEY 值。

  3. Eth-Trunk 模块根据HASH-KEY 值在转发表中查找对应的接口,把数据帧从该接口发送出去。