一、ETH-Trunk概念
二、链路聚合Eth-Trunk特点作用:
三、华为链路聚合(Eth-Trunk)分为两种模式:
1.手动负载分担模式
2、LACP模式(静态)
四、Eth-Trunk转发原理:
五、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成员接口的建立和添加由手动配置,没有链路聚合控制协议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 \\在聚合组中添加成员接口
为了提高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支持最大加入接口数为8个
Eth-Trunk位于MAC与LLC子层之间,属于数据链路层
负载分担分为两种模式:逐包/逐流(如果数据流的源目MAC一样则默认此为同一条流)默认使用的是逐流(源目mac)的负载分担算法
- 逐包的负载分担
在使用Eth-Trunk转发数据时,由于聚合组两端设备之间有多条物理链路,就会产生同一数据流的第一个数据帧在一条物理链路上传输,而第二个数据帧在另外一条物理链路上传输的情况。这样一来同一数据流的第二个数据帧就有可能比第一个数据帧先到达对端设备,从而产生接收数据包乱序的情况。
- 逐流的负载分担
这种机制把数据帧中的地址通过HASH算法生成HASH-KEY值,然后根据这个数值在Eth-Trunk转发表中寻找对应的出接口,不同的MAC或IP地址HASH得出的HASH-KEY值不同,从而出接口也就不同,这样既保证了同一数据流的帧在同一条物理链路转发,又实现了流量在聚合组内各物理链路上的负载分担。逐流负载分担能保证包的顺序,但不能保证带宽利用率。
Eth-Trunk模块内部维护一张转发表,这张表由以下两项组成:
1、哈希算法先进行计算,最多可以计算出8个值(对应Eth-Trunk支持最大加入接口数为8个),
2、然后进行取余计算(除以8取余)分别为 0-7数值
3、.Eth-Trunk模块根据HASH-KEY值在转发表中查找对应的接口,把数据帧从该接口发送出去。
int eth-trunk xx local-preference enable \\本地优先转发,默认是开启的,本地优先转发是针对堆叠中的Eth-Trunkde的一项技术
在DeviceA和DeviceB上创建Eth-Trunk并配置为LACP模式,然后向Eth-Trunk中手工加入成员接口。此时成员接口上便启用了LACP协议,两端互发LACPDU报文。