链路聚合定义
以太网链路聚合Eth-Trunk简称链路聚合,它通过将多条以太网物理链路捆绑在一起成为一条逻辑链路,从而实现增加链路带宽的目的。同时,这些捆绑在一起的链路通过相互间的动态备份,可以有效地提高链路的可靠性。
链路聚合目的
- 增加带宽
链路聚合接口的最大带宽可以达到各成员接口带宽之和。 - 提高可靠性
当某条活动链路出现故障时,流量可以切换到其他可用的成员链路上,从而提高链路聚合接口的可靠性。 - 负载分担
在一个链路聚合组内,可以实现在各成员活动链路上的负载分担。
基本概念
- 链路聚合、链路聚合组和链路聚合接口
链路聚合是指将若干条物理接口捆绑在一起作为一个逻辑接口来增加带宽及可靠性的技术。
链路聚合组LAG(Link Aggregation Group)是指将若干条以太网链路捆绑在一起所形成的逻辑链路,每个聚合组唯一对应着一个逻辑接口,这个逻辑接口称之为聚合接口或Eth-Trunk接口。 - 成员接口和成员链路
组成Eth-Trunk接口的各个物理接口称为成员接口, 成员接口对应的链路称为成员链路。 - 活动接口和非活动接口、活动链路和非活动链路
链路聚合组的成员接口存在活动接口和非活动接口两种,转发数据的接口称为活动接口,不转发数据的接口称为非活动接口。
活动接口对应的链路称为活动链路,非活动接口对应的链路称为非活动链路。
- 活动接口数上限阈值
设置活动接口数上限阈值的目的是在保证带宽的情况下提高网络的可靠性。当前活动接口数目达到上限阈值时,再向Eth-Trunk中添加成员接口,不会增加Eth-Trunk活动接口的数目,超过上限阈值的接口状态将被置为Down,作为备份链路。
例如,有8条无故障链路在一个Eth-Trunk内,每条链路都能提供1G的带宽,现在最多需要5G的带宽,那么上限阈值就可以设为5或者更大的值。其他的链路就自动进入备份状态以提高网络的可靠性。 - 活动接口数下限阈值
设置活动接口数下限阈值是为了保证最小带宽,当前活动链路数目小于下限阈值时,Eth-Trunk接口的状态转为Down。
例如,每条物理链路能提供1G的带宽,现在最小需要2G的带宽,那么活动接口数下限阈值必须要大于等于2。
分类
根据是否启用链路聚合控制协议LACP,链路聚合分为手工负载分担模式和LACP模式;
手工负载分担模式
描述
手工负载分担模式下,Eth-Trunk的建立、成员接口的加入由手工配置,没有链路聚合控制协议的参与。该模式下所有活动链路都参与数据的转发,平均分担流量,因此称为负载分担模式。如果某条活动链路故障,链路聚合组自动在剩余的活动链路中平均分担流量。
缺点
手工负载分担模式Eth-Trunk可以完成多个物理接口聚合成一个Eth-Trunk口来提高带宽,同时能够检测到同一聚合组内的成员链路有断路等有限故障,但是无法检测到链路层故障、链路错连等故障;
LACP模式链路聚合
描述
LACP-链路聚合控制协议,为交换数据的设备提供一种标准的协商方式,以供设备根据自身配置自动形成聚合链路并启动聚合链路收发数据。聚合链路形成以后,LACP负责维护链路状态,在聚合条件发生变化时,自动调整或解散链路聚合;
LACP 解决链路错连
DeviceA与DeviceB之间创建Eth-Trunk,需要将DeviceA上的四个接口与DeviceB捆绑成一个Eth-Trunk。由于错将DeviceA上的一个接口与DeviceC相连,这将会导致DeviceA向DeviceB传输数据时可能会将本应该发到DeviceB的数据发送到DeviceC上。而手工负载分担模式的Eth-Trunk不能及时检测到此故障;
如果在DeviceA和DeviceB上都启用LACP协议,经过协商后,Eth-Trunk就会选择正确连接的链路作为活动链路来转发数据,从而DeviceA发送的数据能够正确到达DeviceB。
LACP协议实现原理
- 建立eth-trunk后,SwitchA和SwitchB两端互发LACP,声明自己的系统,接口优先级以及对端的系统,接口优先级,实验中配置SwitchA 的系统优先级为100,接口优先级为80;
- 当两端设备收到LACP报文后,记录并对比本地系统优先级字段,选取SwitchA为主动端(优先级字段值越小,则选取为LACP主动端,如果优先级相同情况下,则比较MAC地址,值越小则选取为LACP主动端);
- 选出了主动端后,两端都会以主动端的接口优先级来选择活动接口,当前SwitchA的接口1和接口2优先级分别配置了100,活动接口的上限阀值为2,所以,通过比较端口优先级,这里选择出了SwitchA 的接口1和接口2作为活动接口,接口3为备份接口;
- 假设现在SwitchA接口1down掉情况下(接口1下配置shutdown),此时备份接口3会被补充进来,成为活动接口;
- 如果我们配置了LACP抢占功能(eth-trunk 视图下配置lacp preempt enable),当SwitchA 接口1恢复时(接口1视图下配置no shutdown),由于接口1 的优先级比较高,所以接口1 会再次恢复成活动接口;
LACP协议与手动配置转发区别
- 手动配置情况下,当活动链路出现故障时,流量只能在剩余的活动链路中转发;而LACP协议配置情况下,当活动链路出现故障时,自动在备份链路中选择优先级较高的接口成为活动接口,提高了链路的可靠性和冗余备份机制;
- LACP 协议可以感知到链路错连从而选择正确的活动链路转发数据;