以太网链路聚合是指将多条以太网物理链路捆绑在一起成为一条逻辑链路,从而实现增加链路带宽的目的。链路聚合分为手工模式和LACP模式。
LACP模式需要有链路聚合控制协议LACP的参与。当需要在两个直连设备间提供一个较大的链路带宽而设备支持LACP协议时,建议使用LACP模式。LACP模式不仅可以实现增加带宽、提高可靠性、负载分担的目的,而且可以提高Eth-Trunk的容错性、提供备份功能。
LACP模式下,部分链路是活动链路,所有活动链路均参与数据转发。如果某条活动链路故障,链路聚合组自动在非活动链路中选择一条链路作为活动链路,参与数据转发的链路数目不变。
随着网络规模不断扩大,用户对骨干链路的带宽和可靠性提出越来越高的要求。
在传统技术中,常用更换高速率的接口板或更换支持高速率接口板的设备的方式来增加带宽,但这种方案需要付出高额的费用,而且不够灵活。
采用链路聚合技术可以在不进行硬件升级的条件下,通过将多个物理接口捆绑为一个逻辑接口,达到增加链路带宽的目的。
在实现增大带宽目的的同时,链路聚合采用备份链路的机制,可以有效的提高设备之间链路的可靠性。
增加带宽
链路聚合接口的最大带宽可以达到各成员接口带宽之和。
提高可靠性
当某条活动链路出现故障时,流量可以切换到其他可用的成员链路上,从而提高链路聚合接口的可靠性。
负载分担
在一个链路聚合组内,可以实现在各成员活动链路上的负载分担。
如在两个设备之间通过三条以太网物理链路相连,将这三条链路捆绑在一起,就成为了一条逻辑链路。
这条逻辑链路的最大带宽等于原先三条以太网物理链路的带宽总和,从而达到了增加链路带宽的目的;
同时,这三条以太网物理链路相互备份,有效地提高了链路的可靠性。
链路聚合组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。
同一设备:是指链路聚合时,同一聚合组的成员接口分布在同一设备。
堆叠设备:是指在堆叠场景下,成员接口分部在堆叠的各个成员设备上。
跨设备:是指E-Trunk基于LACP(单台设备链路聚合的标准)进行了扩展,能够实现多台设备间的链路聚合。
根据是否启用链路聚合控制协议LACP,链路聚合分为手工模式和LACP模式。
手工模式下,Eth-Trunk的建立、成员接口的加入由手工配置,没有链路聚合控制协议LACP的参与。
当需要在两个直连设备之间提供一个较大的链路带宽而设备又不支持LACP协议时,可以使用手工模式。
手工模式可以实现增加带宽、提高可靠性和负载分担的目的。
作为链路聚合技术,手工负载分担模式Eth-Trunk可以完成多个物理接口聚合成一个Eth-Trunk口来提高带宽;
同时能够检测到同一聚合组内的成员链路有断路等有限故障,但是无法检测到链路层故障、链路错连等故障。
为了提高Eth-Trunk的容错性,并且能提供备份功能,保证成员链路的高可靠性,出现了链路聚合控制协议LACP(Link Aggregation Control Protocol),LACP模式就是采用LACP的一种链路聚合模式。
LACP为交换数据的设备提供一种标准的协商方式,以供设备根据自身配置自动形成聚合链路并启动聚合链路收发数据。
聚合链路形成以后,LACP负责维护链路状态,在聚合条件发生变化时,自动调整或解散链路聚合。
系统LACP优先级是为了区分两端设备优先级的高低而配置的参数。LACP模式下,两端设备所选择的活动接口必须保持一致,否则链路聚合组就无法建立。此时可以使其中一端具有更高的优先级,另一端根据高优先级的一端来选择活动接口即可。系统LACP优先级值越小优先级越高。
接口LACP优先级是为了区别同一个Eth-Trunk中的不同接口被选为活动接口的优先程度,优先级高的接口将优先被选为活动接口。接口LACP优先级值越小,优先级越高。
LACP模式链路聚合由LACP确定聚合组中的活动和非活动链路,又称为M:N模式,即M条活动链路与N条备份链路的模式。这种模式提供了更高的链路可靠性,并且可以在M条链路中实现不同方式的负载均衡。
如图所示,SwitchA和SwitchB通过以太链路分别都连接VLAN10和VLAN20的网络,且SwitchA和SwitchB之间有较大的数据流量。用户希望SwitchA和SwitchB之间能够提供较大的链路带宽来使相同VLAN间互相通信。在两台Switch设备上配置LACP模式链路聚合组,提高两设备之间的带宽与可靠性,具体要求如下:
两条活动链路具有负载分担的能力。
两设备间的链路具有1条冗余备份链路,当活动链路出现故障时,备份链路替代故障链路,保持数据传输的可靠性。
同VLAN间可以相互通信。
采用如下的思路配置LACP模式链路聚合:
创建Eth-Trunk,配置Eth-Trunk为LACP模式,实现链路聚合功能。
将成员接口加入Eth-Trunk。
配置系统优先级,确定主动端,按照主动端设备的接口选择活动接口。
配置活动接口上限阈值,实现保证带宽的情况下提高网络的可靠性。
配置接口优先级,确定活动链路接口,优先级高的接口将被选作活动接口。
创建VLAN并将接口加入VLAN。
<HUAWEI> system-view [HUAWEI] sysname SwitchA [SwitchA] interface eth-trunk 1 //创建ID为1的Eth-Trunk接口 [SwitchA-Eth-Trunk1] mode lacp //配置链路聚合模式为LACP模式 [SwitchA-Eth-Trunk1] quit
[SwitchA] interface gigabitethernet 0/0/1 [SwitchA-GigabitEthernet0/0/1] eth-trunk 1 //将GE0/0/1接口加入Eth-Trunk1中 [SwitchA-GigabitEthernet0/0/1] quit [SwitchA] interface gigabitethernet 0/0/2 [SwitchA-GigabitEthernet0/0/2] eth-trunk 1 //将GE0/0/2接口加入Eth-Trunk1中 [SwitchA-GigabitEthernet0/0/2] quit [SwitchA] interface gigabitethernet 0/0/3 [SwitchA-GigabitEthernet0/0/3] eth-trunk 1 //将GE0/0/3接口加入Eth-Trunk1中 [SwitchA-GigabitEthernet0/0/3] quit
[SwitchA] lacp priority 100 //系统LACP优先级缺省为32768,修改SwitchA的优先级大于SwitchB的优先级,作为主动端
[SwitchA] interface eth-trunk 1 [SwitchA-Eth-Trunk1] max active-linknumber 2 //链路聚合组活动接口数的上限阈值缺省是8,修改活动接口数的上限阈值为2 [SwitchA-Eth-Trunk1] quit
[SwitchA] interface gigabitethernet 0/0/1 [SwitchA-GigabitEthernet0/0/1] lacp priority 100 //接口LACP优先级缺省为32768,修改GE0/0/1接口的LACP优先级为100,作为活动接口 [SwitchA-GigabitEthernet0/0/1] quit [SwitchA] interface gigabitethernet 0/0/2 [SwitchA-GigabitEthernet0/0/2] lacp priority 100 //接口LACP优先级缺省为32768,修改GE0/0/2接口的LACP优先级为100,作为活动接口 [SwitchA-GigabitEthernet0/0/2] quit
# 创建VLAN10和VLAN20并分别加入接口。SwitchB的配置与SwitchA类似,不再赘述。
[SwitchA] vlan batch 10 20 [SwitchA] interface gigabitethernet 0/0/4 [SwitchA-GigabitEthernet0/0/4] port link-type trunk //设置接口链路类型为trunk,接口缺省链路类型不是trunk口 [SwitchA-GigabitEthernet0/0/4] port trunk allow-pass vlan 10 [SwitchA-GigabitEthernet0/0/4] quit [SwitchA] interface gigabitethernet 0/0/5 [SwitchA-GigabitEthernet0/0/5] port link-type trunk //设置接口链路类型为trunk,接口缺省链路类型不是trunk口 [SwitchA-GigabitEthernet0/0/5] port trunk allow-pass vlan 20 [SwitchA-GigabitEthernet0/0/5] quit
# 配置Eth-Trunk1接口允许VLAN10和VLAN20通过。SwitchB的配置与SwitchA类似,不再赘述。
[SwitchA] interface eth-trunk 1 [SwitchA-Eth-Trunk1] port link-type trunk //设置接口链路类型为trunk,接口缺省链路类型不是trunk口 [SwitchA-Eth-Trunk1] port trunk allow-pass vlan 10 20 [SwitchA-Eth-Trunk1] quit
# 查看各Switch设备的Eth-Trunk信息,查看链路是否协商成功。
[SwitchA] display eth-trunk 1 Eth-Trunk1's state information is: Local: LAG ID: 1 WorkingMode: LACP Preempt Delay: Disabled Hash arithmetic: According to SIP-XOR-DIP System Priority: 100 System ID: 00e0-fca8-0417 Least Active-linknumber: 1 Max Active-linknumber: 2 Operate status: up Number Of Up Port In Trunk: 2 -------------------------------------------------------------------------------- ActorPortName Status PortType PortPri PortNo PortKey PortState Weight GigabitEthernet0/0/1 Selected 1GE 100 6145 2865 11111100 1 GigabitEthernet0/0/2 Selected 1GE 100 6146 2865 11111100 1 GigabitEthernet0/0/3 Unselect 1GE 32768 6147 2865 11100000 1 Partner: -------------------------------------------------------------------------------- ActorPortName SysPri SystemID PortPri PortNo PortKey PortState GigabitEthernet0/0/1 32768 00e0-fca6-7f85 32768 6145 2609 11111100 GigabitEthernet0/0/2 32768 00e0-fca6-7f85 32768 6146 2609 11111100 GigabitEthernet0/0/3 32768 00e0-fca6-7f85 32768 6147 2609 11110000
[SwitchB] display eth-trunk 1 Eth-Trunk1's state information is: Local: LAG ID: 1 WorkingMode: LACP Preempt Delay: Disabled Hash arithmetic: According to SIP-XOR-DIP System Priority: 32768 System ID: 00e0-fca6-7f85 Least Active-linknumber: 1 Max Active-linknumber: 8 Operate status: up Number Of Up Port In Trunk: 2 -------------------------------------------------------------------------------- ActorPortName Status PortType PortPri PortNo PortKey PortState Weight GigabitEthernet0/0/1 Selected 1GE 32768 6145 2609 11111100 1 GigabitEthernet0/0/2 Selected 1GE 32768 6146 2609 11111100 1 GigabitEthernet0/0/3 Unselect 1GE 32768 6147 2609 11110000 1 Partner: -------------------------------------------------------------------------------- ActorPortName SysPri SystemID PortPri PortNo PortKey PortState GigabitEthernet0/0/1 100 00e0-fca8-0417 100 6145 2865 11111100 GigabitEthernet0/0/2 100 00e0-fca8-0417 100 6146 2865 11111100 GigabitEthernet0/0/3 100 00e0-fca8-0417 32768 6147 2865 11100000
通过以上显示信息可以看到,SwitchA的系统优先级为100,高于SwitchB的系统优先级。Eth-Trunk的成员接口中GigabitEthernet0/0/1、GigabitEthernet0/0/2成为活动接口,处于“Selected”状态,接口GigabitEthernet0/0/3处于“Unselect”状态,同时实现M条链路的负载分担和N条链路的冗余备份功能。
SwitchA的配置文件
# sysname SwitchA # vlan batch 10 20 # lacp priority 100 # interface Eth-Trunk1 port link-type trunk port trunk allow-pass vlan 10 20 mode lacp max active-linknumber 2 # interface GigabitEthernet0/0/1 eth-trunk 1 lacp priority 100 # interface GigabitEthernet0/0/2 eth-trunk 1 lacp priority 100 # interface GigabitEthernet0/0/3 eth-trunk 1 # interface GigabitEthernet0/0/4 port link-type trunk port trunk allow-pass vlan 10 # interface GigabitEthernet0/0/5 port link-type trunk port trunk allow-pass vlan 20 # return
SwitchB的配置文件
# sysname SwitchB # vlan batch 10 20 # interface Eth-Trunk1 port link-type trunk port trunk allow-pass vlan 10 20 mode lacp # interface GigabitEthernet0/0/1 eth-trunk 1 # interface GigabitEthernet0/0/2 eth-trunk 1 # interface GigabitEthernet0/0/3 eth-trunk 1 # interface GigabitEthernet0/0/4 port link-type trunk port trunk allow-pass vlan 10 # interface GigabitEthernet0/0/5 port link-type trunk port trunk allow-pass vlan 20 # return