1.链路聚合概念
链路聚合:又称为端口汇聚,是指两台交换机之间在物理上将两个或多个端口连接起来,将多条链路聚合成一条逻辑链路,从而增大链路带宽,多条物理链路之间能够相互冗余。
作用:增加链路带宽,同时提供链路冗余。
链路聚合两种模式:
- 手工负载分担模式:强制模式,没有协商机制,有几条链路用几条链路,(默认模式)
- LACP模式:可以自定义备份链路,"灵活",有协商报文。(推荐)
两种模式区别:
手工负载分担模式可以完成多个物理接口聚合成一个Eth-Trunk口来提高带宽,同时能够检测到同一聚合组内的成员链路有断路等有限故障,但是无法检测到链路层故障、链路错连等故障。
为了提高Eth-Trunk的容错性,并且能提供备份功能,保证成员链路的高可靠性,出现了链路聚合控制协议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。
链路聚合的一些基本概念:
链路聚合组的成员接口存在活动接口和非活动接口两种。转发数据的接口称为活动接口,不转发数据的接口称为非活动接口。
活动接口数上限阈值
设置活动接口数上限阈值的目的是在保证带宽的情况下提高网络的可靠性。当前活动链路数目达到上限阈值时,再向Eth-Trunk中添加成员接口,不会增加Eth-Trunk活动接口的数目,超过上限阈值的链路状态将被置为Down,作为备份链路。
例如,有8条无故障链路在一个Eth-Trunk内,每条链路都能提供1G的带宽,现在最多需要5G的带宽,那么上限阈值就可以设为5或者更大的值。其他的链路就自动进入备份状态以提高网络的可靠性。如果业务流量高于5G是会重新启用备份的链路,一些系统或配置需要手动重启激活。
活动接口数下限阈值
例如,每条物理链路能提供1G的带宽,现在最小需要2G的带宽,那么活动接口数下限阈值必须要大于等于2。当活动链路的数量小于这个下限阈值时,Eth-Trunk接口的状态会转为Down,这是一种安全机制,用来防止在链路聚合中因为链路数量不足而导致的潜在问题。
Down后的链路如何恢复
自动恢复:如果链路聚合配置了动态LACP模式,当链路故障的接口恢复后,LACP协议会尝试重新协商,如果满足活动接口的下限阈值,Eth-Trunk接口会自动恢复到活动状态。
手动恢复:如果需要手动干预,网络管理员可以检查链路状态,并重新配置或启用之前故障的接口,使其重新加入到Eth-Trunk中。
链路检测:某些设备可能支持链路检测功能,当检测到链路恢复时,可以自动将接口重新加入到Eth-Trunk中。
系统LACP优先级
定义:系统LACP优先级是指整个设备在链路聚合中的优先级。它决定了在链路聚合协商过程中,哪个设备将成为控制端/主动端(即LACP发送端)。
作用:系统LACP优先级较低的设备更有可能成为控制端/主动端,从而主导链路聚合的协商过程。如果两个设备的系统LACP优先级相同,则通常会根据设备的MAC地址来决定哪个设备成为控制端,MAC地址较小的设备会获得控制权。
接口LACP优先级
定义:接口LACP优先级是指在链路聚合中,各个接口的优先级。它决定了在链路聚合协商完成后,哪些接口将被选为活动接口,从而参与数据传输。
作用:在系统LACP优先级相同的情况下,接口LACP优先级较高的接口更有可能被选为活动接口。如果多个接口的LACP优先级相同,则会根据接口的MAC地址来决定哪些接口成为活动接口。
LACP抢占
使能LACP抢占功能后,聚合组会始终保持高优先级的接口作为活动接口的状态。
如图所示,接口Port1、Port2和Port3为Eth-Trunk的成员接口,DeviceA为主动端,活动接口数上限阈值为2,三个接口的LACP优先级分别为10、20、30。当通过LACP协议协商完毕后,接口Port1和Port2因为优先级较高被选作活动接口,Port3成为备份接口。
LACP抢占延时
配置抢占延时是为了避免由于某些链路状态频繁变化而导致Eth-Trunk数据传输不稳定的情况。抢占延时是LACP抢占发生时,处于备用状态的链路将会等待一段时间后再切换到转发状态。活动链路与非活动链路切换
LACP报文超时时间
如果对端链路聚合组的某个成员接口发生自环或其它故障,而本端Eth-Trunk不能及时感知对端成员口状态的变化,就会导致本端转发数据时仍按照本端链路组中活动接口进行负载分担,造成发生故障链路上数据流量的丢失。
配置接口接收LACP报文的超时时间后,如果本端成员口在设置的超时时间内未收到对端发送的LACP协议报文,则认为对端不可达,本端成员口状态立即变为Down,不再转发数据。
LACP分为静态LACP模式和动态LACP模式
静态LACP模式
静态LACP模式是一种利用LACP协议报文进行聚合参数协商,从而确定活动接口和非活动接口的链路聚合方式。
静态LACP模式下,Eth-Trunk的建立,成员接口的加入,都是由手工配置完成的。但与手工负载分担模式链路聚合不同的是,该模式下活动接口的选择由LACP协议报文负责。也就是说,当把一组接口加入Eth-Trunk接口后,这些成员接口中哪些接口作为活动接口,哪些接口作为非活动接口还需要经过LACP协议报文的协商确定。
动态LACP模式
静态LACP模式和动态LACP模式在LACP协议交互方面没有区别,区别在于两种模式在LACP协商失败后的处理不一致:
静态LACP模式下,LACP协商失败后Eth-Trunk变为Down,不能转发数据。
动态LACP模式,LACP协商失败后Eth-Trunk变为Down,但其成员口继承Eth-Trunk的VLAN属性状态变为Indep,可独立进行二层数据转发。
链路聚合应用场景
随着用户规模的不断扩大,用户之间的互访更为频繁,SwitchA和SwitchB、SwitchA和SwitchC之间的链路要有足够的带宽来承载不同用户的互访,并且链路要具备一定的可靠性。为保证SwitchA和SwitchB、SwitchA和SwitchC之间的链路带宽及可靠性,可以在它们之间分别建立Eth-Trunk1和Eth-Trunk2。
Eth-Trunk的工作模式根据以下两种情况选择:
1.如果两端设备均支持LACP协议,推荐使用LACP模式链路聚合。
2.如果对端设备不支持LACP协议,必须使用手工负载分担模式链路聚合。
链路聚合前需要了解的注意事项 :
1.接口中的成员接口必须是支持速率相同的接口。
例如:GE接口和10GE接口不能加入同一个Eth-Trunk接口,而GE电接口和GE光接口可以加入同一个Eth-Trunk接口。
2.成员接口不能配置某些业务(如成员接口加入Eth-Trunk时,必须为缺省的接口类型)和静态MAC地址。
3.如果本端设备接口加入了Eth-Trunk,与该接口直连的对端接口也必须加入Eth-Trunk,两端才能正常通信。
4.Eth-Trunk链路两端相连的物理接口的数量、速率、双工方式、jumbo、流控配置必须一致。
5.两台设备对接时需要保证两端设备上链路聚合的模式一致。
链路聚合后需要了解的注意事项 :
1.一个以太网接口只能加入到一个Eth-Trunk接口,如果需要加入其它Eth-Trunk接口,必须先退出原来的Eth-Trunk接口。
2.当成员接口加入Eth-Trunk后,学习MAC地址或ARP地址时是按照Eth-Trunk来学习的,而不是按照成员接口来学习。
3.删除聚合组时需要先删除聚合组中的成员接口。
2.手工模式
<HUAWEI> sys
[HUAWEI] vlan batch 2 3
[HUAWEI] quit
[HUAWEI] interface eth-trunk 1 # 创建Eth-Trunk接口,编号假设为1
[HUAWEI-Eth-Trunk1]mode manual #模式为手工模式
[HUAWEI-Eth-Trunk1] trunkport gigabitethernet 0/0/1
[HUAWEI-Eth-Trunk1] trunkport gigabitethernet 0/0/2
手工模式不需要额外配置LACP模式(因为不启用LACP)添加成员接口到Eth-Trunk,例如G 0/0/1和G 0/0/2
[Huawei-Eth-Trunk1]trunkport GigabitEthernet 0/0/1 to 0/0/2
#也可批量加入端口
[HUAWEI-Eth-Trunk1] port link-type trunk
[HUAWEI-Eth-Trunk1] port trunk allow-pass vlan 2 3
配置Eth-Trunk接口的VLAN(如果需要)
[HUAWEI-Eth-Trunk1] quit
[HUAWEI] save
3.手工模式负载分担
<Huawei> sys
[Huawei] interface eth-trunk 1
[Huawei-Eth-Trunk1] mode manual load-balance
设置链路聚合模式为手工负载分担模式
[Huawei-Eth-Trunk1] load-balance src-mac
选择负载分担模式(例如,基于源MAC地址)
[Huawei-Eth-Trunk1] load-balance dst-mac
或者,如果需要基于目的MAC地址
[Huawei-Eth-Trunk1] load-balance src-dst-mac
或者,基于源和目的MAC地址
[Huawei-Eth-Trunk1] trunkport gigabitethernet 0/0/1
[Huawei-Eth-Trunk1] trunkport gigabitethernet 0/0/2
将物理接口添加到Eth-Trunk,如G 0/0/1和G 0/0/2
[Huawei] save
LACP也支持负载分担
注意:
源和目的MAC地址结合(src-dst-mac):
这种方式综合考虑数据包的源MAC地址和目的MAC地址来决定流量通过哪个链路聚合成员接口传输。它通常用于确保在两个方向上的通信(即发送和接收)都经过相同的接口,从而避免在同一通信对之间产生不对称路由问题。
仅源MAC地址(src-mac):
仅根据数据包的源MAC地址来选择转发接口,不考虑目的MAC地址。
这种方式适用于源地址分布广泛,但目的地址相对集中的场景。
仅目的MAC地址(dst-mac):
仅根据数据包的目的MAC地址来选择转发接口,不考虑源MAC地址。
这种方式适用于目的地址分布广泛,但源地址相对集中的场景
4.LACP模式静态
<HUAWEI> sys
[HUAWEI] vlan batch 2 3
[HUAWEI] quit
[HUAWEI] interface eth-trunk 2
创建Eth-Trunk接口,编号假设为2
[HUAWEI-Eth-Trunk2] mode lacp-static
设置Eth-Trunk的工作模式为静态LACP
[HUAWEI-Eth-Trunk2] trunkport gigabitethernet 0/0/3
[HUAWEI-Eth-Trunk2] trunkport gigabitethernet 0/0/4
添加成员接口到Eth-Trunk,例如G 0/0/3和G 0/0/4
[HUAWEI-Eth-Trunk2] port link-type trunk
[HUAWEI-Eth-Trunk2] port trunk allow-pass vlan 2 3
配置Eth-Trunk接口的VLAN
[HUAWEI-Eth-Trunk1] lacp priority 32768 (可选)
[HUAWEI-Eth-Trunk1] interface gigabitethernet 0/0/1
[HUAWEI-GigabitEthernet0/0/1] lacp priority 100 (可选)
为指定接口设置LACP优先级,范围是65535---0(值越小优先级越高)
[HUAWEI] save
5.LACP模式动态
<HUAWEI> sys
[HUAWEI] vlan batch 2 3
[HUAWEI] quit
[HUAWEI] interface eth-trunk 3
创建Eth-Trunk接口,编号假设为3
[HUAWEI-Eth-Trunk3] mode lacp-dynamic
设置Eth-Trunk的工作模式为动态LACP
[HUAWEI-Eth-Trunk3] trunkport gigabitethernet 0/0/5
[HUAWEI-Eth-Trunk3] trunkport gigabitethernet 0/0/6
添加成员接口到Eth-Trunk,例如G 0/0/5和G 0/0/6
[HUAWEI-Eth-Trunk3] port link-type trunk
[HUAWEI-Eth-Trunk3] port trunk allow-pass vlan 2 3
配置Eth-Trunk接口的VLAN
[HUAWEI] save
6.LACP模式的可选
6.1活动接口数阈值(可选)
[HUAWEI] interface eth-trunk 2
进入Eth-Trunk接口视图
[HUAWEI-Eth-Trunk2] least active-linknumber 1
#配置链路聚合活动接口数下限阈值
[HUAWEI-Eth-Trunk2] max active-linknumber 5
#配置链路聚合活动接口数上限阈值
注意:
下限阈值:通常是1,因为至少需要1条链路来保持基本的连通性。但是,具体值可能取决于设备和配置需求。
上限阈值:这个值的范围取决于Eth-Trunk可以聚合的接口数量。例如,如果Eth-Trunk可以聚合8条链路,那么上限阈值的范围就是1到8。
6.2系统LACP优先级(可选)
[Huawei] lacp priority 100
#设置系统LACP优先级为32768,范围是65535---0(值越小优先级越高)
6.3接口LACP优先级(可选)
[HUAWEI] interface gigabitethernet 0/0/1
[HUAWEI-GigabitEthernet0/0/1] lacp priority 100
为指定接口设置LACP优先级,范围是65535---0(值越小优先级越高)
6.4LACP抢占(可选)
[HUAWEI] interface eth-trunk 2
进入Eth-Trunk接口视图
[HUAWEI-Eth-Trunk2] lacp preempt enable #开启lacp抢占
[HUAWEI-Eth-Trunk2] lacp preempt delay 10 #设置抢占等待时间10秒
注意:
抢占功能的配置应在链路聚合的两端设备上一致,以避免链路聚合状态不一致导致的问题。如果两端设备的抢占等待时间设置不同,实际的抢占等待时间将采用较长的那个值。在配置过程中,应确保所有相关接口都属于同一链路聚合组,并且两端设备上的链路聚合模式(如LACP模式)也应一致
6.5LACP报文超时时间(可选)
[Huawei] sys
[Huawei] interface eth-trunk 1
[Huawei-Eth-Trunk1] lacp timeout fast
配置LACP报文接收超时时间:配置为快速模式(fast),接收LACP报文的超时时间设置为3秒,通知对端每1秒发送一次LACP报文:
[Huawei-Eth-Trunk1] lacp timeout slow
或者配置为慢速模式(slow),接收LACP报文的超时时间设置为90秒,通知对端每30秒发送一次LACP报文:
[Huawei] save
注意事项:
配置LACP超时时间时,应确保两端设备上的设置兼容,即使两端配置的超时时间可以不一致,但为了便于维护和管理,建议两端配置一致。
如果配置为fast模式,LACP报文的发送频率更高,适用于链路状态变化较快的场景,可以更快地响应链路状态变化。
如果配置为slow模式,LACP报文的发送频率较低,适用于链路状态相对稳定的场景,可以减少报文的发送,降低网络开销。
7.查看状态配置相关命令
查看Eth-Trunk接口的状态配置信息:
[Huawei] display interface eth-trunk 1
查看LACP模式下的LACP报文收发统计信息:
[Huawei] display lacp interface eth-trunk 1
查看Eth-Trunk的成员接口信息:
[Huawei] display eth-trunk 1
查看LACP接口的状态信息:
[Huawei-Eth-Trunk1] display this
查看系统级别的LACP配置:
[Huawei] display lacp
清除特定接口的LACP报文统计信息:
[Huawei] reset counter interface eth-trunk 1 lacp
清除所有接口的LACP报文统计信息
[Huawei] reset counter lacp