目录
五、LACP模式Eth-Trunk(链路聚合)建立的过程如下:
一、ETH-Trunk概念
以太网链路聚合Eth-Trunk简称链路聚合,它通过将多条以太网物理链路捆绑在一起成为一条逻辑链路,从而实现增加链路带宽的目的。同时,这些捆绑在一起的链路通过相互间的动态备份,可以有效地提高链路的可靠性。可以实现流量负载分担。
将成员接口加入Eth-Trunk时,需要注意以下问题:
-
- 每个Eth-Trunk接口下最多可以包含8个成员接口。
- 成员接口不能配置某些业务和静态MAC地址。
- 成员接口加入Eth-Trunk时,必须为缺省的接口类型。
- Eth-Trunk接口不能嵌套,即Eth-Trunk接口的成员接口不能是Eth-Trunk接口。
- 一个以太网接口只能加入到一个Eth-Trunk接口,如果需要加入其它Eth-Trunk接口,必须先退出原来的Eth-Trunk接口。
- 一个Eth-Trunk接口中的成员接口必须是同一类型。
- 如果本地设备使用了Eth-Trunk,与成员接口直连的对端接口也必须捆绑为Eth-Trunk接口,两端才能正常通信。
- 当成员接口加入Eth-Trunk后,学习MAC地址或ARP地址时是按照Eth-Trunk来学习的,而不是按照成员接口来学习。
- Eth-Trunk链路两端相连的物理接口的数量、速率、双工方式、流控配置、jumbo必须一致。
二、链路聚合Eth-Trunk特点作用:
- 增加链路带宽
- 实现链路冗余,提高链路可靠性
- 实现流量负载分担
三、华为的链路聚合(Eth-Trunk)分为两种模式:
1、手工负载分担模式
- 强制模式,没有协商机制,有几条链路用几条链路,(默认模式)
手工模式下,Eth-Trunk的建立、成员接口的加入由手工配置,没有链路聚合控制协议LACP的参与。DeviceA与DeviceB之间创建Eth-Trunk,手工模式下三条活动链路都参与数据转发并分担流量。当一条链路故障时,故障链路无法转发数据,链路聚合组自动在剩余的两条活动链路中分担流量。
手工负载分担的方式缺点:
A端配置负载分担后A端立刻就会起来,但是B端还未配置还是down的,A端的多条链路都会发送数据,没有协商机制心跳报文,有可能造成环路问题。
[SwitchA] interface eth-trunk 1 \\创建Eth-Trunk接口,并进入Eth-Trunk接口视图
[SwitchA-Eth-Trunk1] mode manual load-balance \\配置链路聚合模式为manual手工模式,多数默认此模式
[SwitchA-Eth-Trunk1] trunkport gigabitethernet 0/0/1 to 0/0/3 \\将成员接口加入聚合组
2、LACP模式(静态)
可以自定义备份链路,“灵活”有协商报文(推荐) lacp 链路汇聚控制协议
LACP动态模式只有在数据中心级别的交换机才会使用(且只有华为厂家有动态的lacp功能)
为了提高Eth-Trunk的容错性,并且能提供备份功能,保证成员链路的高可靠性,出现了链路聚合控制协议LACP(Link Aggregation Control Protocol)。聚合链路形成以后,LACP负责维护链路状态,在聚合条件发生变化时,自动调整或解散链路聚合。
例如:4条链路配置其中3条为活跃状态,另外1条作为备用 m:n备份
[SwitchA] interface eth-trunk 1 \\创建Eth-Trunk
[SwitchA-Eth-Trunk1] mode lacp \\配置链路聚合模式为LACP模式
[SwitchA-Eth-Trunk1] max active-linknumber 2 \\配置活动接口上限阈值为2(最大活跃接口数量)
undo max active-linknumber\\命令用来恢复聚合组活动接口数目的上限阈值为缺省值。
[SwitchA-Eth-Trunk1] load-balance dst-ip \\配置Eth-Trunk的负载分担模式 目标ip 选配,默认逐流(src-dst-ip)
dst-mac \\配置Eth-Trunk的负载分担模式 目标mac
src-ip \\配置Eth-Trunk的负载分担模式 源ip
src-mac \\配置Eth-Trunk的负载分担模式 源mac
src-dst-ip \\根据源/目的IP hash算法
src-dst-mac \\根据源/目的mac hash算法
[SwitchA] interface gigabitethernet 0/0/1 \\进入接口,将接口成员接口加入聚合组
[SwitchA-GigabitEthernet0/0/1] lacp priority 10 \\接口优先级,数字越小越被优先选用
[SwitchA-GigabitEthernet0/0/1] eth-trunk 1
[SwitchA] interface gigabitethernet 0/0/2
[SwitchA-GigabitEthernet0/0/2] lacp priority 20 \\接口优先级,数字越小越被优先选用
[SwitchA-GigabitEthernet0/0/2] eth-trunk 1
[SwitchA] interface gigabitethernet 0/0/3
[SwitchA-GigabitEthernet0/0/3] eth-trunk 1
- 缺省情况下,三层Eth-Trunk接口的负载分担模式为src-dst-ip。
Eth-Trunk的负载分担是逐流进行的,本端与对端的负载分担模式可以不一致,两端互不影响。
四、Eth-Trunk转发原理:
Eth-Trunk支持最大加入接口数为8个
Eth-Trunk位于MAC与LLC子层之间,属于数据链路层
负载分担分为两种模式:逐包/逐流(如果数据流的源目MAC一样则默认此为同一条流)默认使用的是逐流(源目mac)的负载分担算法
- 逐包的负载分担
在使用Eth-Trunk转发数据时,由于聚合组两端设备之间有多条物理链路,就会产生同一数据流的第一个数据帧在一条物理链路上传输,而第二个数据帧在另外一条物理链路上传输的情况。这样一来同一数据流的第二个数据帧就有可能比第一个数据帧先到达对端设备,从而产生接收数据包乱序的情况。
- 逐流的负载分担
这种机制把数据帧中的地址通过HASH算法生成HASH-KEY值,然后根据这个数值在Eth-Trunk转发表中寻找对应的出接口,不同的MAC或IP地址HASH得出的HASH-KEY值不同,从而出接口也就不同,这样既保证了同一数据流的帧在同一条物理链路转发,又实现了流量在聚合组内各物理链路上的负载分担。逐流负载分担能保证包的顺序,但不能保证带宽利用率。
Eth-Trunk模块内部维护一张转发表,这张表由以下两项组成:
- HASK-key指:HASK-key值是根据数据包的MAC地址或者IP地址等,经过HASH(哈希)算法计算得出
1、哈希算法先进行计算,最多可以计算出8个值(对应Eth-Trunk支持最大加入接口数为8个),
2、然后进行取余计算(除以8取余)分别为 0-7数值
3、.Eth-Trunk模块根据HASH-KEY值在转发表中查找对应的接口,把数据帧从该接口发送出去。
- 接口号:Eth-Trunk转发表现分布和设备每个Eth-Trunk支持加入的成员接口数量相关,不同的HASH-KEY值对应不同的出接口。
int eth-trunk xx local-preference enable \\本地优先转发,默认是开启的,本地优先转发是针对堆叠中的Eth-Trunkde的一项技术
五、LACP模式Eth-Trunk(链路聚合)建立的过程如下:
①两端互相发送LACPDU(协商)报文。
在DeviceA和DeviceB上创建Eth-Trunk并配置为LACP模式,然后向Eth-Trunk中手工加入成员接口。此时成员接口上便启用了LACP协议,两端互发LACPDU报文。
②确定主动端和活动链路。