Eth-Trunk(链路聚合)
- 以太网链路聚合Eth-Trunk简称链路聚合,它通过将多条以太网物理链路捆绑在一起成为一条逻辑链路,从而实现增加链路带宽的目的。同时,这些捆绑在一起的链路通过相互间的动态备份,可以有效地提高链路的可靠性。
- Trunk接口连接的链路可以看成是一条点到点的直连链路 ,在一个Trunk内 ,可以实现流量负载分担,同时也提供了更高的连接可靠性和更大的带宽。用户通过对逻辑口进行配置,实现各种路由协议以及其它业务部署。
三个优势
- 增加带宽: 链路聚合接口的最大带宽可以达到各成员接口带宽之和。
- **提高可靠性:**当某条活动链路出现故障时,流量可以切换到其他可用的成员链路上,从而提高链路聚合接口的可靠性。
- **负载分担:**在一个链路聚合组内,可以实现在各成员活动链路上的负载分担。
链路聚合接口相关内容
1.链路聚合组和成员接口
链路聚合组LAG(Link Aggregation Group)是指将若干条以太链路捆绑在一起所形成的逻辑链路。
每个聚合组唯一对应着一个逻辑接口,这个逻辑接口称之为链路聚合接口或Eth-Trunk接口。链路聚合接口可以作为普通的以太网接口来使用,与普通以太网接口的差别在于:转发的时候链路聚合组需要从成员接口中选择一个或多个接口来进行数据转发。
2.活动接口和非活动接口、活动链路和非活动链路
链路聚合组的成员接口存在活动接口和非活动接口两种。转发数据的接口称为活动接口,不转发数据的接口称为非活动接口。
活动接口对应的链路称为活动链路,非活动接口对应的链路称为非活动链路。
3.活动接口数上限阈值
设置活动接口数上限阈值的目的是在保证带宽的情况下提高网络的可靠性。当前活动链路数目达到上限阈值时,再向Eth-Trunk中添加成员接口,不会增加Eth-Trunk活动接口的数目,超过上限阈值的链路状态将被置为Down,作为备份链路。
例如,有8条无故障链路在一个Eth-Trunk内,每条链路都能提供1G的带宽,现在最多需要5G的带宽,那么上限阈值就可以设为5或者更大的值。其他的链路就自动进入备份状态以提高网络的可靠性。
注:手工负载分担模式链路聚合不支持活动接口数上限阈值的配置。
4.活动接口数下限阈值
设置活动接口数下限阈值是为了保证最小带宽,当前活动链路数目小于下限阈值时,Eth-Trunk接口的状态转为Down。
例如,每条物理链路能提供1G的带宽,现在最小需要2G的带宽,那么活动接口数下限阈值必须要大于等于2。
5.设备支持的链路聚合方式
- 同板∶是指链路聚合时,同一聚合组的成员接口分布在同一单板上。
- 跨板∶是指链路聚合时,同一聚合组的成员接口分布在不同的单板上。
- 跨框∶是指在集群场景下,成员接口分布在集群的各个成员设备上。
- 跨设备∶是指E-Trunk基于LACP进行了扩展,能够实现多台设备间的链路聚合。
转发原理
Eth-Trunk位于MAC与LLC子层之间,属于数据链路层。
Eth-Trunk模块内部维护一张转发表,这张表由以下两项组成。
-
HASH-KEY值
HASH-KEY值是根据数据包的MAC地址或IP地址等,经HASH算法计算得出。
-
接口号
Eth-Trunk转发表表项分布和设备每个Eth-Trunk支持加入的成员接口数量相关,不同的HASH-KEY值对应不同的出接口。
Eth-Trunk模块根据转发表转发数据帧的过程如下:
- Eth-Trunk模块从MAC子层接收到一个数据帧后,根据负载分担方式提取数据帧的源MAC地址/IP地址或目的MAC地址/IP地址。
- 根据HASH算法进行计算,得到HASH-KEY值。
- Eth-Trunk模块根据HASH-KEY值在转发表中查找对应的接口,把数据帧从该接口发送出去。
负载分担方式
为了避免数据包乱序情况的发生,Eth-Trunk采用逐流负载分担的机制,其中如何转发数据则由于选择不同的负载分担