还不知道链路聚合怎么配置?看这篇就懂了

号主:老杨丨11年资深网络工程师更多网工提升干货,请关注公众号:网络工程师俱乐部

中午好,我的网工朋友。

正如血液需要心脏的有力泵动,数据的流动也需要网络技术的精密调控

链路聚合正是如此,它可以通过巧妙的逐流负载分担机制,确保数据在多条物理链路中的有序传输,

链路聚合也可以叫做Eth-Trunk,即使是在高负载的网络中,Eth-Trunk也能确保数据流如同有序的行军,无一错乱。

今天就把链路聚合的转发原理、支持的负载分担方式,以及如何配置链路聚合的负载分担这几个知识点给你讲明白。

今日文章阅读福利:《 2129页!华为交换机维护宝典 》

私信我,发送暗号“宝典”,即可获取这份优质PDF资源。

欢迎添加【网络工程师老杨】好东西别错过!​docs.qq.com/doc/DU2VDVkFwZlVnQ1Zn​编辑icon-default.png?t=N7T8https://link.zhihu.com/?target=https%3A//docs.qq.com/doc/DU2VDVkFwZlVnQ1Zn

01 先说下背景条件

在使用Eth-Trunk转发数据时,由于聚合组两端设备之间有多条物理链路,可能会产生同一数据流的第一个数据帧在一条物理链路上传输,而第二个数据帧在另外一条物理链路上传输的情况。

这样一来同一数据流的第二个数据帧就有可能比第一个数据帧先到达对端设备,从而产生接收数据包乱序的情况。

为了避免这种情况的发生,Eth-Trunk采用逐流负载分担的机制,把数据帧中的地址通过HASH算法生成HASH-KEY值。

然后根据这个数值在Eth-Trunk转发表中寻找对应的出接口,不同的MAC或IP地址HASH得出的HASH-KEY值不同,从而出接口也就不同。

这样既保证了同一数据流的帧在同一条物理链路转发,又实现了流量在聚合组内各物理链路上的负载分担。逐流负载分担能保证包的顺序,但不能保证带宽利用率。

02 转发原理

如图1所示,Eth-Trunk位于MAC与LLC子层之间,属于数据链路层。

图1-1 Eth-Trunk在以太网协议栈的位置

01 Eth-Trunk模块内部维护一张转发表,这张表由以下两项组成

1.HASH-KEY值

HASH-KEY值是根据数据包的MAC地址或IP地址等,经HASH算法计算得出。

2.接口号

Eth-Trunk转发表表项分布和设备每个Eth-Trunk支持加入的成员接口数量相关,不同的HASH-KEY值对应不同的出接口。

例如,某设备每Eth-Trunk支持最大加入接口数为8个,将接口1、2、3、4捆绑为一个Eth-Trunk接口,此时生成的转发表如图2所示。其中HASH-KEY值为0、1、2、3、4、5、6、7,对应的出接口号分别为1、2、3、4、1、2、3、4。因此,在每Eth-Trunk中加入接口数为2、4或8个时,才能实现理想的负载分担。

图1-2 Eth-Trunk转发表示例

02 Eth-Trunk模块根据转发表转发数据帧的过程如下

1.Eth-Trunk模块从MAC子层接收到一个数据帧后,根据负载分担方式提取数据帧的源MAC地址/IP地址或目的MAC地址/IP地址。

2.根据HASH算法进行计算,得到HASH-KEY值。

3.Eth-Trunk模块根据HASH-KEY值在转发表中查找对应的接口,把数据帧从该接口发送出去。

03 负载分担方式有哪些?

用户可以根据流量模型设置不同的负载分担方式,流量中某个参数变化越频繁,选择对应负载分担方式的流量就越均衡。

例如,在网络中,如果报文的IP地址变化较频繁,那么选择基于目的IP地址、源IP地址或源IP和目的IP地址的负载分担模式更有利于流量在各物理链路间合理的负载分担;

如果报文的MAC地址变化较频繁,IP地址比较固定,那么选择基于目的MAC地址、源MAC地址或源MAC和目的MAC地址的负载分担模式更有利于流量在各物理链路间合理的负载分担。

01 交换机可以基于报文的以下参数进行负载分担:

1.源MAC地址

2.目的MAC地址

3.源MAC地址和目的MAC地址

4.源IP地址

5.目的IP地址

6.源IP地址和目的IP地址

7.VLAN、物理源端口等(对L2、IPv4、IPv6和MPLS报文进行增强型负载分担)

例如,DeviceA的一条TCP报文流的源IP地址为192.168.1.1(MAC地址:a-a-a,源端口号50),目的IP地址为172.16.1.1(MAC地址:b-b-b,目的端口号:2000),另一条TCP报文流的源IP地址为192.168.1.1(MAC地址:a-a-a,源端口号:60),目的IP地址为10.1.1.1(MAC地址:c-c-c,目的端口号:2000)。

如果在DeviceA上配置基于报文的源MAC地址进行负载分担,则报文出接口仅有1个;

如果在DeviceA上配置基于报文的目的IP地址进行负载分担,则报文出接口有两个,去往不同目的IP的报文会从不同的出接口转发。

02 配置负载分担方式时,请注意:

1.负载分担方式只在流量的出接口上生效,如果发现各入接口的流量不均衡,请修改上行出接口的负载分担方式。

2.尽量将数据流通过负载分担在所有活动链路上传输,避免数据流仅在一条链路上传输,造成流量拥堵,影响业务正常运行。

例如,数据报文的目的MAC和IP地址只有一个,则应选择根据报文的源MAC和IP地址进行负载分担

如果选择根据报文的目的MAC和IP地址进行负载分担则会造成流量只在一条链路上传输,造成流量拥堵。

如果配置完成后出现负载分担流量不均的情况,请看下文。

04 如何配置链路聚合的负载分担?

链路聚合分担方式分为两种:普通负载分担方式增强型负载分担方式。请根据需要选择其中一种方式进行配置。

01 配置普通负载分担方式

1.执行命令system-view,进入系统视图。

2.执行命令interface eth-trunktrunk-id,进入Eth-Trunk接口视图。

3.执行命令load-balance { dst-ip | dst-mac | src-ip | src-mac | src-dst-ip | src-dst-mac },配置Eth-Trunk负载分担方式。

缺省情况下,Eth-Trunk接口的负载分担模式为src-dst-ip。

下面这个示例显示了如何在接口Eth-Trunk1下配置基于源MAC地址和目的MAC地址的负载分担方式,并查看是否配置成功。

由上述信息可以看出,“Load-balance Configuration”字段显示为“SA-XOR-DA”,说明接口Eth-Trunk1的负载分担方式为基于源MAC地址和目的MAC地址进行负载分担。

表1-1 display eth-trunk load-balance命令输出信息描述

02 配置增强型负载分担方式

1.执行命令system-view,进入系统视图。

2.执行命令load-balance-profile profile-name,创建负载分担模板,并进入模板视图。设备全局公用一个负载分担模板。

3.对于L2、IPv4、IPv6、MPLS报文,可以分别配置负载分担模式,以下步骤可不选、选择其一或多选,请根据网络转发报文的实际情况选择。

(1)执行命令l2 field [ dmac | l2-protocol | smac | sport | vlan ] *,配置指定负载分担模板中二层报文的负载分担模式。缺省情况下,二层报文的负载分担模式为smac、dmac。

(2)执行命令ipv4 field [ dip | l4-dport | l4-sport | protocol | sip | sport | vlan ] *,配置指定负载分担模板中IPV4报文负载分担模式。缺省情况下,IPv4报文负载分担模式为sip、dip。

(3)执行命令ipv6 field [ dip | l4-dport | l4-sport | protocol | sip | sport | vlan ] *,配置指定负载分担模板中IPV6报文负载分担模式。缺省情况下,IPv6报文负载分担模式为sip、dip。

(4)执行命令mpls field [ 2nd-label | 3rd-label | dip | dmac | l4-dport | l4-sport | protocol | sip | smac | sport | top-label | vlan ] *,配置指定负载分担模板中的MPLS报文负载分担模式。缺省情况下,MPLS报文负载分担模式为top-label、2nd-label。

4.执行命令quit,返回系统视图。

5.执行命令interface eth-trunktrunk-id,进入Eth-Trunk接口视图。

6.执行命令load-balance enhanced profileprofile-name,应用配置的负载分担模板。

下面这个示例显示了如何创建一个负载分担模板a,并在模板中配置IPv6报文负载分担方式为sip、protocol,然后在接口Eth-Trunk1下应用此负载分担模板,最后查看是否配置成功。

由上述信息可以看出,“Load-balance Configuration”字段显示为“ENHANCED”,说明接口Eth-Trunk1下配置了增强负载分担方式;

“Load-balance options used per-protocol”中的“IPv6”字段显示为“Source IP address, IP protocol”,说明IPv6报文负载分担方式为基于源IP地址和协议进行负载分担。

欢迎添加【网络工程师老杨】好东西别错过!​docs.qq.com/doc/DU2VDVkFwZlVnQ1Znicon-default.png?t=N7T8https://link.zhihu.com/?target=https%3A//docs.qq.com/doc/DU2VDVkFwZlVnQ1Zn

整理:老杨丨11年资深网络工程师,更多网工提升干货,请关注公众号:网络工程师俱乐部

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值