2019-05-17 LACP 链路聚合以及配置实例
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2019-05-17 LACP 链路聚合以及配置实例相关的知识,希望对你有一定的参考价值。
参考技术A LACP是什么?基于IEEE802.3ad标准的LACP,英文全称 Link Aggregation Control Protocol, 翻译成中文叫做链路汇聚控制协议,用于实现链路动态汇聚与解汇聚。
LACP通过LACPDU与对端交互信息。DU指Data Unit,数据单元。可以向对端通告MAC地址,优先级,端口号,Key等。对端接收到信息后,通过与其保存的信息进行比较和计算,确定加入或退出某个汇聚组。
主要用来干啥呢?对,汇聚嘛,当然是用来做端口汇聚。还可以做负载分担,链路备份(自动倒换)。
注意,手工配置的负载分担,配置基本的Eth-Trunk接口模式,不需配置LACP,成员接口(selected)都参与数据转发。
配置LACP的话,可以配置成静态或动态。区别在于,静态模式下,成员接口都是手工配置加入,但那些接口是selected,那些是standby的则由LACP协议决定。动态模式下,包括成员接口的加入,活动接口的选择,都是由LACP协议决定,即使说,启动动态LACP的设备不需创建Eth-Trunk接口,也不需要指定接口。
使用LACP协议的时候,Selected和Standby端口都能收发LACPDU, 但standby接口不转发用户报文。
另外,在使用LACP的情况下,无论是静态汇聚还是动态汇聚,看到的standby端口状态是down的。
下面看一下实际案例,
Huawei NE05E G0/2/4及G0/2/5 两个10G口做Trunk与OLT(MA5800X7)组网双上行(0/8/0 1, 0/9/0 1)配置如下:
在MA5800的配置里,实际上display current的时候看不到类似“ link-aggregation add-member 0/8/0 0/9 0” 这些语句,但是可以通过不同命令来查看。 下面“display lacp link-aggregation summary” 可以看到selected端口有2个,standby的有6个,分别对应0/8/0 和0/9/0 和其余6个未selected的端口(其实这些端口都没有物理连接,主要是两个10G口上行就足够了,光模块省点用)
看一下路由器上的统计:
我做了链路测试一切正常,细节不说了。
顺便说一下,我这还有一些Adtran OLT TA5000系列,双主控板上行链路汇聚叫做Cross-slot LAG, 配置如下(配置lag的时候要看当前主用板是那块,1/A就用下面模板,1/B的话相应修改):
查看状态:
华为静态链路聚合配置
参考技术A华为链路聚合分为两种:
● 手动负载均衡模式:在这种模式下,Eth-Trunk的建立、成员接口的加入都是手工配置的,没有协议
的参与。在该模式下所有活动链路都参与数据转发,平均分坦流量。如果某条活动链路出现故障,链
路聚合组自动在剩余的活动链路上平均分配流量。
● LACP模式:在LACP模式中,链路两端的设备相互发送LACP报文,协商聚合参数。协商完成后,两台
设备确定活动接口和非活动接口。LACP模式需要的动创建一个Eth-Trunk口,并添加成员。LACP模式
也叫M:N模式,M代表活动成员链路。N代表非活动链路,用于冗余备份。LACP与手动负载均衡的区别在
于,在LACP模式中,有一些链路充当备份链路,如果有一条活动链路发生故障,该链路传输的数据被
切换到一条优先级最高的备用链路上,这条备用链路转变为活动状态。而在手动负载均衡模式中,所
有的成员都处于转发状态。
链路聚合的要求
● 聚合链路两端的物理口(成员口)的所有参数必须一致,包括物理口的数量、速率、双工方式、
流量控制模式。
● 成员口可以是二层接口或三层接口。
● 数据流在聚合链路上传输,数据顺序必须保持不变。比如一个数据流中的第一个帧通过一条物理
链路传输,第二个帧通过另一条物理链路传输,有可能同一个数据流的第二个数据帧比第一个帧先
到达,这样就产生了接收数据包乱序的情况。
● 为避免这种情况发生,Eth-Trunk采用逐流负载分担的机制,这种机制把数据帧中的地址通过HASH
算法生成HASH-KEY值,然后根据这个值在Eth-Trunk转发表中寻找对应的出接口。不同的MAC或IP地址
HASH得出的HASH-KEY值也不同,从而接口也就不同。这样即可以避免乱序问题,也达到了负载均衡的
目的。
负载均衡的类型
● dst-ip,根据报文的目的IP地址进行负载均衡
● dst-mac,根据报文的目的MAC地址进行负载均衡
● src-dst-ip,根据报文的源IP地址和目的IP地址进行负载均衡
● src-dst-mac,根据报文的源MAC地址和目的MAC地址进行负载均衡
● src-ip,根据报文的源IP地址进行负载均衡
● src-mac,根据报文的源MAC地址进行负载均衡
配置手动负载均衡
1、如下图我们在两台交换机之间添加4条链路,由于交换机默认开启了STP,所以可以看到当前只有一
条链路处于转发状态。
2、我们先shutdown掉这四个端口,关闭STP。
3、然后在SW1和SW2上创建Eth-Trunk 1,然后将接口g0/0/1、g0/0/2、g0/0/3和g0/0/4接口加入到
Eth-Trunk 1中,注意将接口加入到Eth-Trunk前需要确认成员接口下没有任何配置。同时以两台交
换机上执行以下命令进行配置。
interface eth-trunk 1
interface g0/0/1
eth-trunk 1
interface g0/0/2
eth-trunk 1
interface g0/0/3
eth-trunk 1
interface g0/0/4
eth-trunk 1
4、配置完成后,undo shutdown所有成员接口。检查Eth-Trunk 1状态,可以看到WorkingMode为
NORMAL,默认负载均衡模式为SIP-XOR-DIP,也就是src-dst-ip,根据报文的源IP地址和目的IP地址
进行负载均衡。成员接口为g0/0/1~g0/0/4,可用带宽为4G。
display eth-trunk 1
display interface eth-trunk 1
5、下面我们来验证一下负载均衡,如下图我们通过SW2这边的6主机来PING SW1侧的一台主机。来看看
数据包是如何选路的。
6、通过抓包,可以看到在默认情况下,所有Ping请求和回复都只走一条路。
7、现在我们将Eth-Trunk 1的负载均衡模式改为根据报文的源MAC地址进行负载均衡。
8、现改完成后,通过抓包可以看到现在4条链路上都有数据包在通过,也就是4条链路都用起来了。
主机1.66的ping请求和回复走g0/0/1这条路,主机1.2和1.5的ping请求和回复走g0/0/2这条路,主
机1.3和1.4的ping请求和回复走g0/0/3这条路,主机1.77的ping请求和回复走g0/0/4这条路。
配置LACP静态
1、我们基于上面的拓扑继续配置LACP,首先在两台交换机上删除4个接口下的配置。
interface g0/0/1
undo eth-trunk
interface g0/0/2
undo eth-trunk
interface g0/0/3
undo eth-trunk
interface g0/0/4
undo eth-trunk
2、分别在两台交换机上创建Eth-Trunk 1为静态LACP模式,然后再将端口加入其中,这里我们使用
3个端口。
interface eth-trunk 1
mode lacp
interface g0/0/1
eth-trunk 1
interface g0/0/2
eth-trunk 1
interface g0/0/3
eth-trunk 1
3、在SW1上配置LACP的系统优先级为100,使其成为LACP主动端。
lacp priority 100
4、在SW1上配置接口的优先级,确定活动链路。
int g0/0/1
lacp priority 100
int g0/0/2
lacp priority 100
5、在SW1上配置活动接口上限为2。
int eth-trunk 1
max bandwidth-affected-linknumber 2
6、配置完成后,检查LACP状态。这里可以三条路都是selected状态,这个应该是eNSP模拟的有些问
题,应该要有一条路是unselected才对。可以看到最大带宽是3G,当前带宽是2G,这就符合我们的
配置了。
7、通过抓包可以看到实际上是有两条路在跑流量,有一条路是空闲的,符合我们的配置要求。
8、然后我们shutdown一条有流量的端口后,空闲的这条路会变成活动链路接管流量。这也符合我们的
配置要求。
以上是关于2019-05-17 LACP 链路聚合以及配置实例的主要内容,如果未能解决你的问题,请参考以下文章