链路聚合
以太网链路聚合Eth-Trunk简称 链路聚合,它通过将 多条 以太网物理链路捆绑在一起成为一条 逻辑链路,从而实现 增加链路带宽 的目的。
同时,这些捆绑在一起的链路通过相互间的动态备份,可以有效地 提高链路的可靠性。
Eth-Trunk的技术背景
1.STP/MSTP:调节流量----STP太多造成难以维护----不推荐
2.升级链路带宽 ,万兆光模块成本高----不推荐
Eth-Trunk的实现
将两条或多条物理链路,从逻辑上合并成一条链路来维护
以太信道组的建立
手动模式 和 LACP (802.3AD)
手工模式下,Eth-Trunk的建立、成员接口的加入由手工配置,没有链路聚合控制协议LACP的参与。当需要在两个直连设备之间提供一个较大的链路带宽而设备又不支持LACP协议时,可以使用手工模式。
手工模式可以实现增加 带宽、提高可靠性和负载分担的目的。
Eth-Trunk 技术原理
手工负载分担模式:
当两台设备中至少有一台不支持LACP协议时,可使用手工负载分担模式的Eth-Trunk来增加设备间的带宽及可靠性。
手工强制指定,Eth-trunk内的所有接口都要进行流量转发,并且每条链路的流量负载均衡
mode Manuel load-balance
lacp模式:
LACP模式也称为M:N模式,其中M条链路处于活动状态转发数据,N条链路处于非活动状态作为备份链路。
图中设置的活跃链路数为2,即2条链路处于转发状态,1条链路处于备份状态,不转发数据,只有当活跃的链路出现故障时,备份链路才进行转发。
mode lacp-static (相当于 lacp的on模式)
端口的负载分担:
逐流负载分担
逐流的负载分担这种机制把数据帧中的地址通过 HASH算法生成HASH-KEY值,然后根据这个数值在Eth-Trunk转发表中寻找对应的出接口,不同的MAC或IP地址HASH得出的HASH-KEY值不同,从而出接口也就不同,这样既保证了同一数据流的帧在同一条物理链路转发,又实现了流量在聚合组内各物理链路上的负载分担。逐流负载分担能保证包的顺序,但不能保证带宽利用率。
逐包负载分担(不推荐)
逐包的负载分担在使用Eth-Trunk转发数据时,由于聚合组两端设备之间有多条物理链路,就会产生同一数据流的第一个数据帧在一条物理链路上传输,而第二个数据帧在另外一条物理链路上传输的情况。这样一来同一数据流的第二个数据帧就有可能比第一个数据帧先到达对端设备,从而产生 接收数据包乱序 的情况。
为了 避免 数据包 乱序 情况的发生,Eth-Trunk采用 逐流负载分担 的机制,其中如何转发数据则由于选择不同的负载分担方式而有所差别。
负载分担的方式主要包括以下几种,用户可以根据具体应用选择不同的负载分担方式。
-根据报文的源MAC地址进行负载分担
-根据报文的目的MAC地址进行负载分担
-根据报文的源IP地址进行负载分担
-根据报文的目的IP地址进行负载分担
-根据报文的源MAC地址和目的MAC地址进行负载分担
-根据报文的源IP地址和目的IP地址进行负载分担
Eth-Trunk的配置
配置手工负载分担模式
[SWA]interface Eth-Trunk 1
[SW1-Eth-Trunk1]mode manual load-balance //指定手工配置的静态模式
[SWA-Eth-Trunk1]interface GigabitEthernet0/0/1
[SWA-GigabitEthernet0/0/1]eth-trunk 1
[SWA-GigabitEthernet0/0/1]interface GigabitEthernet0/0/2
[SWA-GigabitEthernet0/0/2]eth-trunk 1
[SW2-Eth-Trunk1] trunkport GigabitEthernet 0/0/1 0/0/2 等价于上面的四行命令
配置LACP模式
interface Eth-Trunk2
port link-type trunk
port trunk allow-pass vlan 2 to 4094
mode lacp-static //指定动态LACP模式
trunkport GigabitEthernet 0/0/1 0/0/2 //将物理接口加入逻辑接口
max active-linknumber 2 //最大激活链路数量
lacp preempt enable //LACP抢占启用
lacp timeout slow //周期30秒
lacp timeout fast //周期1秒
lacp priority 4096
查看链路聚合信息
LACP模式的抢占机制
Eth-trunk的优点
增加带宽
链路聚合接口的最大带宽可以达到各成员接口带宽之和。
提高可靠性
当某条活动链路出现故障时,流量可以切换到其他可用的成员链路上,从而提高链路聚合接口的可靠性。互为备份。
负载分担
在一个链路聚合组内,可以实现在各成员活动链路上的负载分担。