以太捆绑/链路聚合/Eth-Trunk/port-channel=以太信道组
前言
随着网络中部署的业务量不断增长,对于全双工点对点链路,单条物理链路的带宽已不能满足正常的业务流量需求。如果将当前接口板替换为具备更高带宽的接口板,则会浪费现有的设备资源,而且升级代价较大。如果增加设备间的链路数量,则在作为三层口使用时需要在每个接口上配置IP地址,从而导致浪费IP地址资源。
一、Eth-Trunk的技术背景
1、在园区网中,时常会遇到带宽不够的问题,链路瓶颈如何解决?
2、STP/MSTP:调节流量,STP太多造成难以维护——不推荐。
3、升级链路带宽 万兆光模块成本高——不推荐。
二、链路聚合的概念
以太网链路聚合Eth-Trunk简称链路聚合,作为一种捆绑技术,它通过将多条以太网物理链路捆绑在一起成为一条大带宽的逻辑链路接口使用,从而实现增加链路带宽的目的。同时,这些捆绑在一起的链路通过相互间的动态备份,可以有效地提高链路的可靠性。
三、Eth-Trunk 如何实现
将两条或多条物理链路,从逻辑上合并成一条 链路来维护,使用手动或lacp协议来实现。
3.1-以太信道组的建立
手动模式和LACP(802.3AD)
3.1.1-手工模式
1、手工模式下,不支持链路聚合控制协议,使用手工的方式来添加,Eth-Trunk的建立、成员接口的加入由手工配置,没有链路聚合控制协议LACP的参与。
2、当需要在两个直连设备之间提供一个较大的链路带宽而设备不支持LACP协议时,可以使用手工模式。
3、手工模式可以实现增加带宽、提高可靠性和负载分担的目的。
4、手工强制指定,Eth-trunk内的所有接口都要进行流量转发,并且每条链路的流量负载均衡。
3.1.2-LACP模式
LACP模式也称为M:N模式,其中M条链路处于活动状态转发数据,N条链路处于非活动状态作为备份链路。
四、Eth-Trunk 技术(工作)原理
4.1-数据流控制-负载分担
1、Ether-Trunk支持在同一个以太信道组的链路中执行负载均衡。
2、负载均衡动作可以基于MAC、端口、IP(源IP、目的IP或两者)。
3、默认的行为:源目的IP地址对(src-dst-ip)。
4、Ether-Trunk接口进行负载分担时,可以选择IP地址或者包作为负载分担的散列依据,同时还可以设置成员接口的负载分担权重。
5、Ether-Trunk接口中,某成员接口的权重值所占所有成员接口负载分担权重之和的比例越大,该成员接口承担的负载就越大。
4.2-负载分担的分类
对于负载分担,可以分为逐包的负载分担和逐流的负载分担。
1、逐包的负载分担:(不推荐的配置)
在使用Ether-Trunk转发数据时,由于聚合组两端设备之间有多条物理链路,就会产生同一数据流的第一个数据帧在一条物理链路上传输,而第二个数据帧在另外一条物理链路上传输的情况。这样一来同一数据流的第二个数据帧就有可能比第一个数据帧先到达对端设备,从而产生接收数据包乱序的情况。
2、逐流的负载分担:
这种机制把数据帧中的地址通过HASH算法生成HASH-KEY值,然后根据这个数值在Ether-Trunk转发表中寻找对应的出接口,不同的MAC或IP地址HASH得出的HASH-KEY值不同,从而出接口也就不同,这样既保证了同一数据流的帧在同一条物理链路转发,又实现了流量在聚合组内各物理链路上的负载分担。逐流负载分担能保证包的顺序,但不能保证带宽利用率。
4.3-负载分担方式
为了避免数据包乱序情况的发生,Eth-trunk采用逐流负载分担的机制,其中如何转发数据则由于选择不同的负载分担方式而有所差别。
负载分担的方式主要包括:(用户可以根据具体应用选择不同的负载分担方式)
1、根据报文的源MAC地址进行负载分担;
2、根据报文的目的MAC地址进行负载分担;
3、根据报文的源IP地址进行负载分担;
4、根据报文的目的IP地址进行负载分担;
5、根据报文的源MAC地址和目的MAC地址进行负载分担;
6、根据报文的源IP地址和目的IP地址进行负载分担。
五、链路聚合的优势
1、增加带宽;(链路聚合接口的最大带宽可以达到各成员接口带宽之和)
2、提高可靠性;(当某条活动链路出现故障时,流量可以切换到其他可用的成员链路上,从而提高链路聚合接口的可靠性,互为备份)
3、负载分担。(在一个链路聚合组内,可以实现在各成员活动链路上的负载分担)
六、Eth-Trunk的配置
6.1-Eth-Trunk接口配置流程
6.2-配置手工负载分担模式步骤
1、创建Eth-Trunk; #interface Eth-Trunk1
2、配置Eth-Trunk的工作模式; #undo portsitch
3、Eth-Trunk中加入成员接口。 #interface GigabitEtherner0/0/0 eth-trunk1
6.3-配置LACP模式步骤
1、创建Eth-Trunk;
2、配置Eth-Trunk的工作模式;
3、Eth-Trunk中加入成员接口;
4、(可选)配置系统LACP优先级;
5、(可选)配置活动接口数上限阈值;
6、(可选)配置接口LACP优先级;
7、(可选)使能LACP抢占并配置抢占延时时间。
七、Eth-trunk的抢占
以下两种情况需要使能LACP的抢占功能:
1、Port1接口出现故障而后又恢复了正常。
当接口Port1出现故障时被Port3所取代,如果在Eth-Trunk接口下未使用LACP抢占功能,则故障恢复时Port1将处于备份状态;
如果使用了LACP抢占功能,当Port1故障恢复时,由于接口优先级比Port3高,将重新成为活动接口,Port3再次成为备份接口。
如果希望Port3接口替换Port1、Port2中的一个接口成为活动接口,可以使用了LACP抢占功能,并配置Port3的接口LACP优先级较高。
如果没有使用LACP抢占功能,即使将备份接口的优先级调整为高于当前活动接口的优先级,系统也不会进行重新选择活动接口的过程,不切换活动接口。
2、LACP抢占延时:
抢占延时是LACP抢占发生时,处于备用状态的链路将会等待一段时间后再切换到转发状态。配置抢占延时是为了避免由于某些链路状态频繁变化而导致Eth-Trunk数据传输不稳定的情况。
如果觉得《链路聚合(高可用性构建)》对你有帮助,请点赞、收藏,并留下你的观点哦!