目录
以太网链路聚合简介
以太网链路聚合Eth-Trunk简称链路聚合,通过将多个物理接口捆绑为一个逻辑接口,可以在不进行硬件升级的条件下,达到增加链路带宽的目的。
链路聚合技术主要有以下三个优势:
-
增加带宽
链路聚合接口的最大带宽可以达到各成员接口带宽之和。
-
提高可靠性
当某条活动链路出现故障时,流量可以切换到其他可用的成员链路上,从而提高链路聚合接口的可靠性。
-
负载分担
在一个链路聚合组内,可以实现在各成员活动链路上的负载分担。
基本概念
链路聚合组和链路聚合接口
链路聚合组LAG(Link Aggregation Group)是指将若干条以太链路捆绑在一起所形成的逻辑链路。
每个聚合组唯一对应着一个逻辑接口,这个逻辑接口称之为链路聚合接口或Eth-Trunk接口。链路聚合接口可以作为普通的以太网接口来使用,与普通以太网接口的差别在于:转发的时候链路聚合组需要从成员接口中选择一个或多个接口来进行数据转发
活动接口和非活动接口
链路聚合组的成员接口存在活动接口和非活动接口两种。转发数据的接口称为活动接口,不转发数据的接口称为非活动接口。
活动接口数上限阈值
设置活动接口数上限阈值的目的是在保证带宽的情况下提高网络的可靠性。当前活动接口数目达到上限阈值时,再向Eth-Trunk中添加成员接口,不会增加Eth-Trunk活动接口的数目,超过上限阈值的链路状态将被置为Down,作为备份链路。
手工模式链路聚合
手工模式下,Eth-Trunk的建立、成员接口的加入由手工配置,没有链路聚合控制协议LACP的参与。该模式下所有活动链路都参与数据的转发,平均分担流量。如果某条活动链路故障,链路聚合组自动在剩余的活动链路中平均分担流量。
当需要在两个直连设备之间提供一个较大的链路带宽,而其中一端或两端设备都不支持LACP协议时,可以配置手工模式链路聚合。
LACP模式链路聚合
-
系统LACP优先级
系统LACP优先级是为了区分两端设备优先级的高低而配置的参数。LACP模式下,两端设备所选择的活动接口必须保持一致,否则链路聚合组就无法建立。此时可以使其中一端具有更高的优先级,另一端根据高优先级的一端来选择活动接口即可。系统LACP优先级值越小优先级越高。
-
接口LACP优先级
接口LACP优先级是为了区别同一个Eth-Trunk中的不同接口被选为活动接口的优先程度,优先级高的接口将优先被选为活动接口。接口LACP优先级值越小,优先级越高。
-
成员接口间M:N备份
LACP模式链路聚合由LACP确定聚合组中的活动和非活动链路,又称为M:N模式,即M条活动链路与N条备份链路的模式。这种模式提供了更高的链路可靠性,并且可以在M条链路中实现不同方式的负载均衡。
LACP模式实现原理
LACP通过链路聚合控制协议数据单元LACPDU(Link Aggregation Control Protocol Data Unit)与对端交互信息,LACPDU报文中包含设备的系统优先级、MAC地址、接口优先级、接口号和操作Key等信息。
-
LACP模式Eth-Trunk建立的过程如下:
-
在LACP模式的Eth-Trunk中加入成员接口后,两端互相发送LACPDU报文。
如图3所示,在DeviceA和DeviceB上创建Eth-Trunk并配置为LACP模式,然后向Eth-Trunk中手工加入成员接口。此时成员接口上便启用了LACP协议,两端互发LACPDU报文。
-
确定主动端和活动链路。
-
两端设备均会收到对端发来的LACPDU报文。以DeviceB为例,当DeviceB收到DeviceA发送的报文时,DeviceB会查看并记录对端信息,然后比较系统优先级字段,如果DeviceA的系统优先级高于本端的系统优先级,则确定DeviceA为LACP主动端。如果DeviceA和DeviceB的系统优先级相同,比较两端设备的MAC地址,MAC地址小的一端为LACP主动端。选出主动端后,两端都会以主动端的接口优先级来选择活动接口,如果主动端的接口优先级都相同则选择接口编号比较小的为活动接口。两端设备选择了一致的活动接口,活动链路组便可以建立起来,从这些活动链路中以负载分担的方式转发数据。
LACP抢占延时
抢占延时是LACP抢占发生时,处于备用状态的链路将会等待一段时间后再切换到转发状态。配置抢占延时是为了避免由于某些链路状态频繁变化而导致Eth-Trunk数据传输不稳定的情况。
链路聚合条件
所有参数必须一致,接口数量,速率,双工方式,流控方式等
负载分担方式
用户可以根据流量模型设置不同的负载分担方式,流量中某个参数变化越频繁,选择对应负载分担方式的流量就越均衡。
交换机可以基于报文的以下参数进行负载分担:
- 源MAC地址
- 目的MAC地址
- 源MAC地址和目的MAC地址
- 源IP地址
- 目的IP地址
- 源IP地址和目的IP地址
- VLAN、源物理端口等(对L2、IPv4、IPv6和MPLS报文进行增强型负载分担)
手工模式和lacp模式的不同点
链路聚合参数缺省值
参数 | 缺省值 |
---|---|
链路聚合模式 | 手工模式 |
活动接口数上限阈值 | 默认为16或者8 |
活动接口数下限阈值 | 1 |
系统LACP优先级 | 32768 |
接口LACP优先级 | 32768 |
LACP抢占 | 去使能 |
LACP抢占等待时间 | 30s |
接收LACP报文超时时间 | 90s |
Eth-Trunk接口流量本地优先转发 | 使能 |
配置LACP模式的链路聚合示例
组网需求
如图1所示,SwitchA和SwitchB通过以太链路分别都连接VLAN10和VLAN20的网络,且SwitchA和SwitchB之间有较大的数据流量。用户希望SwitchA和SwitchB之间能够提供较大的链路带宽来使相同VLAN间互相通信。在两台Switch设备上配置LACP模式链路聚合组,提高两设备之间的带宽与可靠性,具体要求如下:
-
两条活动链路具有负载分担的能力。
-
两设备间的链路具有1条冗余备份链路,当活动链路出现故障时,备份链路替代故障链路,保持数据传输的可靠性。
-
同VLAN间可以相互通信。
配置思路
采用如下的思路配置LACP模式链路聚合:
-
创建Eth-Trunk,配置Eth-Trunk为LACP模式,实现链路聚合功能。
-
将成员接口加入Eth-Trunk。
-
配置系统优先级,确定主动端,按照主动端设备的接口选择活动接口。
-
配置活动接口上限阈值,实现保证带宽的情况下提高网络的可靠性。
-
配置接口优先级,确定活动链路接口,优先级高的接口将被选作活动接口。
-
创建VLAN并将接口加入VLAN。
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
可选要求:在eth视图下
1. 执行命令load-balance { dst-ip | dst-mac | src-ip | src-mac | src-dst-ip | src-dst-mac },配置Eth-Trunk负载分担方式。缺省情况下,交换机上Eth-Trunk接口的负载分担模式为src-dst-ip
2.执行命令lacp preempt enable,使能当前Eth-Trunk接口的LACP抢占功能。
缺省情况下,LACP抢占处于去使能状态。为保证Eth-Trunk正常工作,要求Eth-Trunk两端统一配置LACP抢占使能或去使能。
3.执行命令lacp preempt delay delay-time,配置当前Eth-Trunk接口的LACP抢占等待时间。
缺省情况下,LACP抢占等待时间为30秒。当链路两端设备配置的抢占等待时间不一致时,以等待时间最长的作为实际抢占等待时间。
4. 执行命令lacp timeout { fast[ user-defined user-defined ] | slow },配置当前接口接收LACP协议报文的超时时间。缺省情况下,Eth-Trunk接口接收报文的超时时间是90秒。