目录
一.Eth-trunk简介
二.Eth-trunk原理描述
三.创建及配置Eth-trunk接口
一.Eth-Trunk简介
华为的Link-Aggregation技术叫Eth-trunk,其他厂家的叫法可能不同。
Eth-trunk配置属于以太网交换配置
1. 定义
Eth-Trunk又叫以太网链路聚合Eth-Trunk (Ethernet-Trunk),它通过将多条以太网物理链路捆绑在一起成为一条逻辑链路,从而实现增加链路带宽的目的。同时,这些捆绑在一起的链路通过相互间的动态备份,可以有效地提高链路的可靠性。
2. 目的
随着网络规模不断扩大,用户对骨干链路的带宽和可靠性提出越来越高的要求。在传统技术中,常用更换高速率的单板或更换支持高速率单板的设备的方式来增加带宽,但这种方案需要付出高额的费用,而且不够灵活。
Eth-Trunk采用链路聚合技术,可以在不进行硬件升级的条件下,通过将多个物理接口捆绑为一个逻辑接口,达到增加链路带宽的目的。在实现增大带宽目的的同时,Eth-Trunk采用备份链路的机制,可以有效的提高设备之间链路的可靠性。
Eth-Trunk主要有以下三个优势:
1)增加带宽
链路聚合接口的最大带宽可以达到各成员接口带宽之和。
2)提高可靠性
当某条活动链路出现故障时,流量可以切换到其他可用的成员链路上,从而提高链路聚合接口的可靠性。
3)负载分担
在一个链路聚合组内,可以实现在各成员活动链路上的负载分担。
二.Eth-trunk原理描述
1.基本概念
如图1所示,DeviceA与DeviceB之间通过三条以太网物理链路相连,将这三条链路捆绑在一起,就成为了一条逻辑链路,这条逻辑链路的最大带宽等于原先三条以太网物理链路的带宽总和,从而达到了增加链路带宽的目的;同时,这三条以太网物理链路相互备份,当某条活动链路出现故障时,流量可以切换到其他可用的成员链路上,有效地提高了链路的可靠性。
下面介绍Eth-Trunk的一些基本概念。
链路聚合组和链路聚合接口
如图2所示,链路聚合组LAG(Link Aggregation Group)是指将若干条以太链路捆绑在一起所形成的逻辑链路,也称为Eth-Trunk链路。
每个聚合组唯一对应着一个逻辑接口,这个逻辑接口称之为链路聚合接口或Eth-Trunk接口。Eth-Trunk接口可以作为普通的以太网接口来使用,实现各种路由协议以及其他业务。与普通以太网接口的差别在于:转发的时候链路聚合组需要从成员接口中选择一个或多个接口来进行数据转发。
成员接口和成员链路
如图2所示,组成Eth-Trunk接口的各个物理接口称为成员接口。成员接口对应的链路称为成员链路。
图2 链路聚合组与链路聚合接口、成员接口和成员链路的关系示意图
活动接口和非活动接口、活动链路和非活动链路
Eth-Trunk接口的成员接口存在活动接口和非活动接口两种。
活动接口:转发数据的接口称为。
非活动接口:不转发数据,仅用来备份的接口。
活动接口对应的链路称为活动链路,非活动接口对应的链路称为非活动链路。
活动接口数上限阈(yu)值
设置活动接口数上限阈值的目的是在保证带宽的情况下提高网络的可靠性。当活动接口数目达到上限阈值时,再向Eth-Trunk接口中添加成员接口,不会增加Eth-Trunk活动接口的数目,超过上限阈值的链路状态将被置为Down,作为备份链路。
例如,有8条无故障链路在一个Eth-Trunk接口内,每条链路都能提供1G的带宽,现在最多需要5G的带宽,那么上限阈值就可以设为5或者更大的值。其他的链路就自动进入备份状态以提高网络的可靠性。
手工模式链路聚合不支持活动接口数上限阈值的配置。
活动接口下限阈值
设置活动接口数下限阈值是为了保证最小带宽,当活动链路数目小于下限阈值时,Eth-Trunk接口的状态转为Down。
在多链路冗余场景下,可以通过设置活动接口数下限阈值,保证主链路带宽不够的情况下切换至备用链路。
链路聚合模式
根据是否启用链路聚合控制协议LACP(Link Aggregation Control Protocol),链路聚合的模式分为手工模式和LACP模式,具体请参见手工模式Eth-Trunk和LACP模式Eth-Trunk。
2.手工模式Eth-trunk
手工模式Eth-Trunk,Eth-Trunk的建立、成员接口的加入由手工配置,没有链路聚合控制协议LACP的参与。如果某条活动链路故障,链路聚合组自动在剩余的活动链路中平均分担流量。当需要在两个直连设备之间提供一个较大的链路带宽,而其中一端或两端设备都不支持LACP协议时,可以配置手工模式Eth-Trunk。
如图1所示,DeviceA与DeviceB之间创建Eth-Trunk,手工模式下三条活动链路都参与数据转发并分担流量。当一条链路故障时,故障链路无法转发数据,链路聚合组自动在剩余的两条活动链路中分担流量。
图1 手工模式Eth-Trunk
3.LACP模式Eth-trunk
LACP模式Eth-Trunk,Eth-Trunk的建立、成员接口的加入也需要手工配置,最大的区别就是链路聚合控制协议LACP的参与。
作为链路聚合技术,手工模式Eth-Trunk可以实现多个物理接口聚合成一个Eth-Trunk接口来提高带宽,同时能够检测到同一聚合组内的成员链路有断路等有限故障,但是无法检测到链路层故障、链路错连等故障。为了提高Eth-Trunk的容错性,同时能提供备份功能,保证成员链路的高可靠性,出现了链路聚合控制协议LACP(Link Aggregation Control Protocol)。
LACP是基于IEEE802.3ad标准的一种实现链路动态聚合与解聚合的协议,以供设备根据自身配置自动形成聚合链路并启动聚合链路收发数据,LACP模式就是采用LACP的一种链路聚合模式。聚合链路形成以后,LACP负责维护链路状态,在聚合条件发生变化时,自动调整链路聚合。
如图1所示,DeviceA与DeviceB之间创建Eth-Trunk,需要将DeviceA上的四个接口与DeviceB捆绑成一个Eth-Trunk。由于错将DeviceA上的一个接口与DeviceC相连,这将会导致DeviceA向DeviceB传输数据时可能会将本应该发到DeviceB的数据发送到DeviceC上。而手工模式的Eth-Trunk不能及时检测到此故障。
如果在DeviceA和DeviceB上都启用LACP协议,经过协商后,Eth-Trunk就会选择正确连接的链路作为活动链路来转发数据,从而DeviceA发送的数据能够正确到达DeviceB。
图1 Eth-Trunk错连示意图
1. LACP模式下Eth-Trunk建立过程(较为深入的知识,授课时略过)
LACP通过链路聚合控制协议数据单元LACPDU(Link Aggregation Control Protocol Data Unit)与对端交互信息。在LACP模式的Eth-Trunk中加入成员接口后,这些接口将通过发送LACPDU向对端通告自己的系统优先级、MAC地址、接口优先级、接口号和操作Key(用来判断各接口相连对端是否在同一聚合组以及各接口带宽是否一致等)等信息。对端接收到这些信息后,将这些信息与自身接口所保存的信息比较,用以选择能够聚合的接口,双方对哪些接口能够成为活动接口达成一致,确定活动链路。
LACP模式中,系统LACP优先级和接口LACP优先级是两个重要的参数,直接影响链路聚合主动端和活动接口的选择。
系统LACP优先级
系统LACP优先级是为了区分两端设备优先级的高低而配置的参数。LACP模式下,两端设备所选择的活动接口必须保持一致,否则链路聚合组就无法建立。此时可以使其中一端具有更高的优先级,另一端根据高优先级的一端来选择活动接口即可。系统LACP优先级值越小优先级越高。
接口LACP优先级
接口LACP优先级是为了区别同一个Eth-Trunk接口中的不同成员接口被选为活动接口的优先程度,优先级高的接口将优先被选为活动接口。接口LACP优先级值越小,优先级越高。
LACP模式Eth-Trunk建立的过程如下:(较为深入的知识,授课时略过)
1)在LACP模式的Eth-Trunk中加入成员接口后,两端互相发送LACPDU报文。
如图2所示,在DeviceA和DeviceB上创建Eth-Trunk并配置为LACP模式,然后向Eth-Trunk中手工加入成员接口。此时成员接口上便启用了LACP协议,两端互发LACPDU报文。
图2 LACP模式Eth-Trunk互发LACPDU
2)确定主动端和活动链路。
如图3所示,两端设备均会收到对端发来的LACPDU报文。以DeviceB为例,当DeviceB收到DeviceA发送的报文时,DeviceB会查看并记录对端信息,然后比较系统优先级字段,如果DeviceA的系统优先级高于本端的系统优先级,则确定DeviceA为LACP主动端。如果DeviceA和DeviceB的系统优先级相同,比较两端设备的MAC地址,MAC地址小的一端为LACP主动端。
选出主动端后,两端都会以主动端的接口优先级来选择活动接口,如果主动端的接口优先级都相同则选择接口编号比较小的为活动接口。两端设备选择了一致的活动接口后,活动链路组便可以建立起来,这些活动链路以负载分担的方式转发数据。
图3 LACP模式确定主动端和活动链路的过程
2. LACP抢占(较为深入的知识,授课时略过)
如图4所示,接口Port1、Port2和Port3为Eth-Trunk的成员接口,DeviceA为主动端,活动接口数上限阈值为2,三个接口的LACP优先级分别为10、20、30。当通过LACP协议协商完毕后,接口Port1和Port2因为优先级较高被选作活动接口,Port3成为备份接口。
图4 LACP抢占场景
使能LACP抢占功能后,聚合组会始终保持高优先级的接口作为活动接口的状态。以下两种情况需要使能LACP抢占功能:
-
Port1接口出现故障而后又恢复了正常。当接口Port1出现故障时被Port3所取代,如果Eth-Trunk接口未使能LACP抢占功能,则故障恢复时Port1将处于备份状态;如果使能了LACP抢占功能,当Port1故障恢复时,由于接口优先级比Port3高,将重新成为活动接口,Port3再次成为备份接口。
-
如果希望Port3接口替换Port1、Port2中的一个接口成为活动接口,可以使能LACP抢占功能,并配置Port3的接口LACP优先级较高。如果没有使能LACP抢占功能,即使将备份接口的优先级调整为高于当前活动接口的优先级,系统也不会重新选择活动接口。
3. LACP抢占延时(较为深入的知识,授课时略过)
抢占延时是LACP抢占发生时,处于备用状态的链路将会等待一段时间后再切换到转发状态。配置抢占延时是为了避免由于某些链路状态频繁变化而导致Eth-Trunk数据传输不稳定的情况。
如图4所示,Port1由于链路故障切换为非活动接口,此后该链路又恢复了正常。若系统使能了LACP抢占功能并配置了抢占延时,Port1重新切换回活动状态就需要经过抢占延时的时间。
4. 活动链路与非活动链路切换(较为深入的知识,授课时略过)
LACP模式Eth-Trunk两端设备中任何一端检测到以下事件,都会触发聚合组的链路切换:
-
链路Down事件。
-
LACP协议发现链路故障。
-
接口不可用。
-
在使能了LACP抢占功能的前提下,更改备份接口的优先级高于当前活动接口的优先级。
在以上故障场景中,可以按照如下步骤进行切换:
-
关闭故障链路。
-
从备份链路中选择优先级最高的链路接替活动链路中的故障链路。
-
优先级最高的备份链路转为活动状态并转发数据,完成切换。
5. LACP模式实现方式(较为深入的知识,授课时略过)
链路聚合协议LACP分为静态LACP模式和动态LACP模式,其特点如下。
1)静态LACP模式
如图5所示,两台直接相连的设备都支持LACP协议,在两台设备上配置静态LACP模式Eth-Trunk接口,实现流量的负载分担与链路的冗余备份。静态LACP模式应用场景比较广泛,在向用户提供备份链路的同时,又提供一定的故障保护能力。当有一条链路出现故障时,系统能够自动选择一条优先级最高的可用备份链路变为活动链路。
图5 静态LACP模式Eth-Trunk接口示意图
2)动态LACP模式
静态LACP模式和动态LACP模式在LACP协议交互方面没有区别,区别在于两种模式在LACP协商失败后的处理不一致:
-
静态LACP模式下,LACP协商失败后Eth-Trunk变为Down,不能转发数据。
-
动态LACP模式下,LACP协商失败后Eth-Trunk变为Down,但其成员接口继承Eth-Trunk的VLAN属性状态变为Indep,可独立进行二层数据转发。
当部署动态LACP模式Eth-Trunk接口的设备能够收到对端的LACP协议报文时,两端设备将通过LACP协议报文进行聚合参数协商。协商成功后的聚合链路功能与两端都配置为静态LACP模式Eth-Trunk接口的链路一样。
动态LACP模式下的Eth-Trunk通常应用于设备和服务器直连的场景,如图6所示,服务器A需要通过DeviceA从文件服务器B获取配置文件。
-
当服务器A重启后为空配置时,LACP协商失败,此时动态LACP协议可保证服务器A通过Eth-Trunk成员接口从文件服务器B获取到配置文件。
-
当DeviceA收到服务器A的LACP协议报文时,服务器A和DeviceA将通过LACP协议报文进行聚合参数协商。
图6 动态LACP模式Eth-Trunk接口示意图
说明:动态LACP模式Eth-Trunk仅用于华为公司设备与服务器互连的场景。其他场景下,建议部署静态LACP模式Eth-Trunk,如果部署动态LACP,则网络会有成环风险。
4.手工模式和LACP模式Eth-trunk的对比
手工模式Eth-Trunk和LACP模式Eth-Trunk的区别如表1所示。
表1 链路聚合模式比较
由此可见使用Eth-Trunk做链路聚合时,LACP模式优于手工模式。
三.创建及配置Eth-trunk接口
1.创建Eth-trunk接口并配置链路聚合模式
前提条件
在配置Eth-Trunk之前,需完成以下任务:
连接接口,使接口的物理层状态为Up。
背景信息
手工模式Eth-Trunk适用于对端设备不支持LACP协议的场景;动态LACP模式Eth-Trunk仅用于华为公司设备与服务器互连的场景;其他场景下,建议部署静态LACP模式Eth-Trunk,如果部署动态LACP,则网络会有成环风险。
操作步骤
1. 进入系统视图。
system-view
2.创建Eth-Trunk接口并进入Eth-Trunk接口视图。
interface eth-trunk trunk-id
3. (可选)将Eth-Trunk接口切换为二层模式或三层模式,请根据当前接口模式自行选择是否要执行此步骤。
仅S6730H-V2、S5732H-V2系列支持该步骤。
切换为二层模式:
portswitch
切换成三层模式:
undo portswitch
-
Eth-Trunk接口支持二层Eth-Trunk接口和三层Eth-Trunk接口:当需要将Eth-Trunk接口加入VLAN或进行二层转发时,需要配置二层Eth-Trunk接口,此时Eth-Trunk接口的三层功能和标识被禁止,并将采用系统MAC地址;当需要通过Eth-Trunk接口承载三层数据报文时,需要配置三层Eth-Trunk接口,此时可以在Eth-Trunk接口上配置IP地址,MAC地址及MTU值等。
-
Eth-Trunk接口的二三层模式不影响成员接口的加入,成员接口既可以加入二层Eth-Trunk,也可以加入三层Eth-Trunk。
4. 配置链路聚合模式。
mode { manual load-balance | lacp-static | lacp-dynamic }
缺省情况下,链路聚合模式为
manual load-balance。
manual load-balance表示手工模式Eth-Trunk,该模式下所有链路都参与负载分担;lacp-static表示静态LACP模式Eth-Trunk,lacp-dynamic表示动态LACP模式Eth-Trunk。
2.向Eth-trunk接口加入成员接口
背景信息
向Eth-Trunk接口中加入成员接口有两种方式:
-
在Eth-Trunk接口视图下添加具体的成员接口,分为批量添加和单个添加两种方式。
-
在需要加入Eth-Trunk的接口视图下将该接口加入相应的Eth-Trunk接口。
链路聚合前需要了解的注意事项
1)成员接口加入Eth-Trunk时,必须为缺省的接口类型,成员接口不能配置某些业务(如静态MAC地址),如果配置设备会报错。
2) Eth-Trunk链路两端相连的物理接口的数量、速率、双工方式、流控配置必须一致。
3)Eth-Trunk链路两端相连的物理接口的jumbo(超大帧长度)建议配置为一致。
4)如果本端设备接口加入了Eth-Trunk,与该接口直连的对端接口也必须加入Eth-Trunk,两端才能正常通信。
5)两台设备对接时需要保证两端设备上链路聚合的模式一致。
6)链路聚合可以聚合不同速率、不同双工模式的成员接口;且成员接口可以同时包含光口和电口。
7)Eth-Trunk接口不能嵌套,即成员接口不能是Eth-Trunk接口。
8)LACP模式Eth-Trunk可以聚合不同单板、不同速率及不同双工模式的成员接口。但是不同速率的成员接口不能同时处于转发状态,半双工模式的成员接口无法转发。请在配置前检查成员接口所在单板、接口速率以及双工模式。
在添加成员接口后,如果对Eth-Trunk接口执行命令shutdown,Eth-Trunk接口的物理状态为Administratively DOWN,则成员接口的配置文件会自动显示shutdown,且物理状态也变为Administratively DOWN。
操作步骤
在Eth-Trunk接口视图下向Eth-Trunk中添加成员接口
1)进入系统视图
system-view
2)进入Eth-Trunk接口视图
Interface eth-trunk trunk-id
3)执行一下两种方法之一进行成员接口的添加:
a. 批量添加成员接口。
trunkport interface-type { interface-number1 [ to interface-number2 ] } &<1-16>
b. 添加单个成员接口。
undefined
trunkport interface-type interface-number
在成员接口视图下向Eth-Trunk中添加成员接口
1. 进入系统视图。
system-view
2. 进入Eth-Trunk接口视图。
- interface eth-trunk trunk-id
3. 进入要捆绑到此Eth-Trunk接口的成员接口的接口视图。
- interface interface-type interface-number
4. 将当前接口加入Eth-Trunk接口。
eth-trunk trunk-id
后续处理
当在设备本端和对端配置完创建Eth-Trunk接口并配置链路聚合模式和向Eth-Trunk接口中加入成员接口,Eth-Trunk功能即可正常使用,可以继续在Eth-Trunk接口上配置相关业务。
链路聚合后需要了解的注意事项
1) 一个以太网接口只能加入到一个Eth-Trunk接口,如果需要加入其他Eth-Trunk接口,必须先退出原来的Eth-Trunk接口。
2)当成员接口加入Eth-Trunk后,学习MAC地址或ARP地址时是按照Eth-Trunk来学习的,而不是按照成员接口来学习。
3)Eth-Trunk成员接口退出Eth-Trunk接口或者物理接口加入Eth-Trunk接口时,建议先把成员接口/物理接口shutdown,退出/加入Eth-Trunk后再undo shutdown。
4)删除Eth-Trunk接口时需要先删除Eth-Trunk接口中的所有成员接口。
3.检查配置结果
操作步骤
-
执行命令display eth-trunk [ trunk-id [ interface interface-type interface-number | verbose ] | brief ],查看Eth-Trunk的配置信息。
-
执行命令display eth-trunk membership trunk-id,查看Eth-Trunk的成员接口信息。
4.举例:配置手工模式Eth-trunk
1. 组网需求
如图1所示,SW1和SW2之间是二层链路,需要提供较大的带宽来实现流量负载分担,同时也希望能够提供一定的冗余度,保证数据传输和链路的可靠性。
图1 配置手工模式Eth-Trunk组网图
2. 操作步骤
举例:配置手工模式Eth-Trunk
在SW1和SW2上分别创建Eth-Trunk1并配置为手工模式。
# 配置SW1。
system-view //进入系统视图
Undo info-center enable //关闭信息管理中心
sysname SW1 //将交换机命名为SW1
interface Eth-Trunk 1 //创建Eth-Trunk接口1,并进入Eth-Trunk接口视图
Portswitch //将Eth-Trunk接口切换为二层模式
mode manual load-balance //模式为手工模式Eth-Trunk, manual表示手工,load-blance表示负载分担。
# 配置SW2。
system-view
Undo info-center enable
sysname SW2
interface Eth-Trunk 1
portswitch
mode manual load-balance
向SW1和SW2的Eth-Trunk接口中加入成员接口。
# 配置SW1。
trunkport GigabitEthernet 0/0/1 to 0/0/3
quit
# 配置SW2。
trunkport GigabitEthernet 0/0/1 to 0/0/3
Quit
保存配置
Save
Y
回车
5.举例:配置静态LACP模式Eth-trunk
1. 组网需求
如图1所示,SW1和SW2之间是三层链路,在两台设备上配置静态LACP模式链路聚合组,提高两设备之间的带宽与可靠性,具体要求如下:
-
两条活动链路具有负载分担的能力。
-
两设备间的链路具有1条冗余备份链路,当活动链路出现故障链路时,备份链路替代故障链路,保持数据传输的可靠性。
图1 配置静态LACP模式Eth-Trunk组网图
2.操作步骤说明&验证
举例:配置静态LACP模式Eth-Trunk
配置SW1。
system-view //进入系统视图
Undo info-center enable //关闭信息管理中心
sysname SW1 //将交换机命名为SW1
interface Eth-Trunk 1 //创建Eth-Trunk接口1,并进入Eth-Trunk接口视图
Mode lacp-static //eth-trunk模式配置为静态LACP模式,static的含义是静态。
max active-linknumber 2 //SW1上配置活动接口上限阈值为2,剩余一条作为冗余备份链路
Quit
[SW1]Lacp priority 100 //取值范围0-65535,默认值32768,在SW1上配置系统优先级为100,SW2上不配置(不配置就意味着,保持缺省值),使SW1成为LACP主动端。
Interface gigabitethernet 0/0/1 //进入并配置Gigabitethernet 0/0/1
Eth-trunk 1 //该口属于eth-trunk 1接口
Lacp priority 100 //该口的lacp优先级为100,优先级小的是活动链路,优先级取值范围 Quit //退出Gigabitethernet 0/0/1口
Interface gigabitethernet 0/0/2
Eth-trunk 1
Lacp priority 100 //该口的lacp优先级为100,优先级小的是活动链路,优先级取值范围
Quit
Interface gigabitethernet 0/0/3
Eth-trunk 1
Quit
配置SW2。
system-view
Undo info-center enable //关闭信息管理中心
sysname SW2
interface Eth-Trunk 1
Mode lacp-static
quit
Interface gigabitethernet 0/0/1
Eth-trunk 1
Lacp priority 100
Quit
Interface gigabitethernet 0/0/2
Eth-trunk 1
Lacp priority 100
Quit
Interface gigabitethernet 0/0/3
Eth-trunk 1
Lacp priority 100
Quit
检查配置结果 1)
查看各SW1设备的Eth-Trunk信息,查看链路是否协商成功。 命令:display eth-trunk 1
查看各SW2设备的Eth-Trunk信息,查看链路是否协商成功。 命令:display eth-trunk 1
总结:
通过以上显示信息可以看到,SW1的系统优先级为100,高于SW2的系统优先级。Eth-Trunk的成员接口中GE0/0/1、GE0/0/2成为活动接口,处于“Selected”状态,接口GE0/0/3处于“Unselect”状态,同时实现冗余备份功能。