wps1050

本篇我们来介绍一下在华为交换机上配置链路聚合。对于链路聚合的介绍,可以参考本站之前写过的
一篇文章:EtherChannel。不过那篇文章主要是讲思科交换机的链路聚合介绍和配置方法。对于在华
为交换机上使用链路聚合的好处最主要就是增加带宽,同时还能起到负载均衡的效果,并且还可以设
置备份链路实现冗余。

华为链路聚合分为两种:

● 手动负载均衡模式:在这种模式下,Eth-Trunk的建立、成员接口的加入都是手工配置的,没有协议
的参与。在该模式下所有活动链路都参与数据转发,平均分坦流量。如果某条活动链路出现故障,链
路聚合组自动在剩余的活动链路上平均分配流量。

● LACP模式:在LACP模式中,链路两端的设备相互发送LACP报文,协商聚合参数。协商完成后,两台
设备确定活动接口和非活动接口。LACP模式需要的动创建一个Eth-Trunk口,并添加成员。LACP模式
也叫M:N模式,M代表活动成员链路。N代表非活动链路,用于冗余备份。LACP与手动负载均衡的区别在
于,在LACP模式中,有一些链路充当备份链路,如果有一条活动链路发生故障,该链路传输的数据被
切换到一条优先级最高的备用链路上,这条备用链路转变为活动状态。而在手动负载均衡模式中,所
有的成员都处于转发状态。

wps1051

链路聚合的要求

● 聚合链路两端的物理口(成员口)的所有参数必须一致,包括物理口的数量、速率、双工方式、
流量控制模式。

● 成员口可以是二层接口或三层接口。

● 数据流在聚合链路上传输,数据顺序必须保持不变。比如一个数据流中的第一个帧通过一条物理
链路传输,第二个帧通过另一条物理链路传输,有可能同一个数据流的第二个数据帧比第一个帧先
到达,这样就产生了接收数据包乱序的情况。

● 为避免这种情况发生,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,所以可以看到当前只有一
条链路处于转发状态。

wps1052wps1053

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

wps1054

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

wps1055wps1056

5、下面我们来验证一下负载均衡,如下图我们通过SW2这边的6主机来PING SW1侧的一台主机。来看看
数据包是如何选路的。

wps1057

6、通过抓包,可以看到在默认情况下,所有Ping请求和回复都只走一条路。

wps1058

7、现在我们将Eth-Trunk 1的负载均衡模式改为根据报文的源MAC地址进行负载均衡。

wps1059

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这条路。

wps1060

配置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

wps1061

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,这就符合我们的
配置了。

wps1062wps1063

7、通过抓包可以看到实际上是有两条路在跑流量,有一条路是空闲的,符合我们的配置要求。

wps1064

8、然后我们shutdown一条有流量的端口后,空闲的这条路会变成活动链路接管流量。这也符合我们的
配置要求。

wps1065wps1066

Last modification:March 23rd, 2020 at 11:35 am
如果觉得我的文章对你有用,请随意赞赏