前言
随着网络中部署的业务量不断增长,对于全双工点对点链路,单条物理链路的带宽已不能满足正常的业务流量需求。如果将当前接口板替换为具备更高带宽的接口板,则会浪费现有的设备资源,而且升级代价较大。如果增加设备间的链路数量,则在作为三层口使用时需要在每个接口上配置IP地址,从而导致浪费IP地址资源。
Eth-Trunk( 链路聚合技术 )作为一种捆绑技术,可以把多个独立的物理接口绑定在一起作为一个大带宽的逻辑接口使用,这样既不用替换接口板也不会浪费IP地址资源。本课程我们将详细的介绍Eth-Trunk技术。
Eth-Trunk基本原理
Eth-Trunk概念
Eth-Trunk是一种将多个以太网接口捆绑成一个逻辑接口的捆绑技术.
Eth-Trunk链路聚合模式:
手工负载分担模式;
LACP模式。
根据不同的链路聚合模式,Eth-Trunk接口可以实现增加带宽、负载分担等,帮助提高网络的可靠性。
Eth-Trunk可以用于二层的链路聚合,也可以用于三层的链路聚合。缺省情况下,以太网接口工作在二层模式。如果需要配置二层Eth-Trunk接口,可以通过portswitch命令将该接口切换成二层接口;如果需要配置三层Eth-Trunk接口,可以通过undo portswitch命令将该接口切换成三层接口。
优点:
1)增大带宽;
2)提高链路可靠性;
3)能够实现负载分担;
手工负载分担模式
当两台设备中至少有一台不支持LACP协议时,可使用手工负载分担模式的Eth-Trunk来增加设备间的带宽及可靠性。
在手工负载分担模式下,加入Eth-Trunk的链路都进行数据的转发。
华为默认的Eth-Trunk就是该模式。
LACP模式
LACP模式也称M:N模式,M链路处于活动状态的数据转发,N链路处于非活动状态下的备份链路。
条件:需要交换机这边能够支持这个LACP协议,两端设备都是LACP模式下才能通信。
工作过程
1)两个交换机选择一个主动段和被动端 通过LACP优先级进行比较
2)在主动端确定活动链路和非活动的各自数量
3)当活动链路其中某一条出问题了 设备会在非活动链路替补上去 参数数据转发
4)当活动链路恢复之后 替补链路变成非活动链路 不参与数据转发
如图所示:两台设备间有M+N(2+1)条链路,在聚合链路上的M(2)链路上转发数据,不在N(1)链路上转发数据,现在实际带宽为M(2)上的总和,但是提供的带宽为M(2)+N(1)的总和。
当M(2)链路中出现一条故障链路,会从N(1)备份链路中选择一条链路中挑选优先级最高的可用链路替换故障链路,实际链路上的带宽还是为M(2),提供的最大带宽为M(2)+N(1)-M(故障链路)。
LACP模式活动链路的选取
如图所示,设备之间相连的链路数为3条,设置的最大活跃链路数为2,即2条链路处于转发状态,1条链路处于备份状态。
如果有链路加入,设备间会交互信息(系统优先级,MAC地址,接口优先级,接口号等信息),比较优先级达成一致,那些为活动链路,那些备份链路.
主动端选举:系统的LACP优先级(越小越优先) >> MAC地址(越小越优先);
活动接口选举:接口LACP优先级(越小越优先) >> 接口ID(越小越优先);
LACP模式的抢占机制
LACP抢占发生时,处于备用状态的链路将会等待一段时间后再切换到转发状态,这就是抢占延时。配置抢占延时是为了避免由于某些链路状态频繁变化而导致Eth-Trunk数据传输不稳定的情况。
如图所示,Port1由于链路故障切换为非活动接口,此后该链路又恢复了正常。若系统使能了LACP抢占并配置了抢占延时,Port1重新切换回活动状态就需要经过抢占延时的时间。
开启抢占功能的场景:
Port1接口出现故障而后又恢复正常。当接口Port1出现故障时被Port3所取代,如果在Eth-Trunk接口下未使能抢占,则故障恢复时Port1将处于备份状态;如果使能了LACP抢占,当Port1故障恢复时,由于接口优先级比Port3高,将重新成为活动接口,Port3再次成为备份接口。
如果希望Port3接口替换Port1、Port2中的一个接口成为活动接口,可以将Port3的接口LACP优先级调高,但前提条件是已经使能了LACP抢占功能。如果没有使能LACP抢占功能,即使将备份接口的优先级调整为高于当前活动接口的优先级,系统也不会进行重新选择活动接口的过程,也不切换活动接口。
Eth-Trunk接口负载分担
Eth-Trunk接口进行负载分担时,可以选择IP地址或者包作为负载分担的散列依据;同时还可以设置成员接口的负载分担权重。
Eth-Trunk接口中,某成员接口的权重值占所有成员接口负载分担权重之和的比例越大,该成员接口承担的负载就越大。
接口负载分担 | 特点 |
逐流负载分担(默认模式) | 基于IP的散列算法能保证包顺序,但不能保证带宽利用率 |
逐包负载分担 | 基于包的散列算法能保证带宽利用率,但不能保证包的顺序 ,逐包转发可能会导致报文来回路径不一致,这会对依赖于状态检测的特性或者场景的正常使用有影响(比如NAT) ,当需要保证报文来回路径一致的情况下请不要选择逐包负载分担方式 |
Eth-Trunk配置
手工负载分担模式(默认模式)
interface Eth-Trunk trunk-id //创建Eth-Trunk接口并进入Eth-Trunk接口视图
portswitch //将Eth-Trunk接口切换为二层模式
mode manual load-balance //配置当前Eth-Trunk工作模式为手工负载分担模式
trunkport interface-type { interface-number1 [ to interface-number2 ] } &<1-16> // 批量增加成员接口
LACP模式
interface Eth-Trunk12
mode lacp-static //修改我们的模式
lacp preempt enable //开启我们接口的抢占功能
lacp preempt delay 10 //设备抢占的延迟时间
max active-linknumber 2 //活动链路的条数
interface GigabitEthernet0/0/2
lacp priority 4096 //设置优先级(默认32768)
R1/R2
[R1] interface Eth-Trunk 1 //进入Eth-Trunk接口视图
[R1--Eth-Trunk1] undo portswitch //将接口转换三层接口
[R1--Eth-Trunk1] description "Core-R1 to Aggregate-SW3" //描述信息,便于管理员了解接口对端所连接的设备
[R1--Eth-Trunk1] ip address 192.168.1.254 24
[R1--Eth-Trunk2] trunkport GigabitEthernet 0/0/0 to 0/0/1 //加入接口成员
[R1] interface Eth-Trunk 2 //进入Eth-Trunk接口视图
[R1--Eth-Trunk2] undo portswitch //将接口转换三层接口
[R1--Eth-Trunk2] description "Core-R1 to Core-R2" //描述信息,便于管理员了解接口对端所连接的设备
[R1--Eth-Trunk2] ip address 192.168.1.1 24
[R1--Eth-Trunk2] trunkport GigabitEthernet 1/0/0 to 1/0/1 //加入接口成员
SW3/SW4:因为汇聚层设备使用二层互联,所以无需配置地址
[SW3] interface Eth-Trunk 1
[SW3--Eth-Trunk1] description "Aggregate-SW3 to Core-R1"
[SW3--Eth-Trunk1] trunkport GigabitEthernet 0/0/1 to 0/0/2
[SW3] interface Eth-Trunk 2
[SW3--Eth-Trunk2] description "Aggregate-SW3 to Aggregate-SW4"
[SW3--Eth-Trunk2] trunkport GigabitEthernet 0/0/3 to 0/0/4
[SW3] interface Eth-Trunk 3
[SW3--Eth-Trunk3] description "Aggregate-SW3 to Aggregate-SW5"
[SW3--Eth-Trunk3] trunkport GigabitEthernet 0/0/5 to 0/0/6
[SW3] interface Eth-Trunk 4
[SW3--Eth-Trunk4] description "Aggregate-SW3 toAggregate-SW6"
[SW3--Eth-Trunk4] trunkport GigabitEthernet 0/0/7 to 0/0/8
SW5/6/7/8:命令类似
[SW3] interface Eth-Trunk 1
[SW3--Eth-Trunk1] description "Aggregate-SW3 toAggregate-SW3"
[SW3--Eth-Trunk1] trunkport GigabitEthernet 0/0/1 to 0/0/2
Eth-Trunk注意项
Eth-Trunk链路两端相连的物理接口的数量、双工方式、流控配置必须一致。
1)两台设备对接时需要保证两端设备上链路聚合的模式一致。
2)删除聚合组时需要先删除聚合组中的成员接口。
3)在成员接口下无法对部分命令行(例如port link-type access)和静态MAC地址进行配置,如果配置设备会报错。