设为首页收藏本站language 语言切换
查看: 3072|回复: 20
收起左侧

[书籍] 以太网链路聚合配置指南

[复制链接]
 成长值: 63415
发表于 2021-8-18 10:30:19 | 显示全部楼层 |阅读模式
以太网链路聚合简介
介绍以太网链路聚合的定义和目的。

定义
以太网链路聚合Eth-Trunk简称链路聚合,它通过将多条以太网物理链路捆绑在一起成为一条逻辑链路,从而实现增加链路带宽的目的。同时,这些捆绑在一起的链路通过相互间的动态备份,可以有效地提高链路的可靠性。

目的
随着网络规模不断扩大,用户对骨干链路的带宽和可靠性提出越来越高的要求。在传统技术中,常用更换高速率的接口板或更换支持高速率接口板的设备的方式来增加带宽,但这种方案需要付出高额的费用,而且不够灵活。

采用链路聚合技术可以在不进行硬件升级的条件下,通过将多个物理接口捆绑为一个逻辑接口,达到增加链路带宽的目的。在实现增大带宽目的的同时,链路聚合采用备份链路的机制,可以有效的提高设备之间链路的可靠性。

链路聚合技术主要有以下三个优势:

增加带宽

链路聚合接口的最大带宽可以达到各成员接口带宽之和。

提高可靠性

当某条活动链路出现故障时,流量可以切换到其他可用的成员链路上,从而提高链路聚合接口的可靠性。

负载分担

在一个链路聚合组内,可以实现在各成员活动链路上的负载分担。
基本概念
图2-1所示,DeviceA与DeviceB之间通过三条以太网物理链路相连,将这三条链路捆绑在一起,就成为了一条逻辑链路。这条逻辑链路的最大带宽等于原先三条以太网物理链路的带宽总和,从而达到了增加链路带宽的目的;同时,这三条以太网物理链路相互备份,有效地提高了链路的可靠性。
图2-1  Eth-Trunk示意图

                               
登录/注册后可看大图

以下是链路聚合的一些基本概念:
  • 链路聚合组和链路聚合接口
    链路聚合组LAG(Link Aggregation Group)是指将若干条以太链路捆绑在一起所形成的逻辑链路。
    每个聚合组唯一对应着一个逻辑接口,这个逻辑接口称之为链路聚合接口或Eth-Trunk接口。链路聚合接口可以作为普通的以太网接口来使用,与普通以太网接口的差别在于:转发的时候链路聚合组需要从成员接口中选择一个或多个接口来进行数据转发。
  • 成员接口和成员链路
    组成Eth-Trunk接口的各个物理接口称为成员接口。成员接口对应的链路称为成员链路。
  • 活动接口和非活动接口、活动链路和非活动链路
    链路聚合组的成员接口存在活动接口和非活动接口两种。转发数据的接口称为活动接口,不转发数据的接口称为非活动接口。
    活动接口对应的链路称为活动链路,非活动接口对应的链路称为非活动链路。
  • 活动接口数上限阈值
    设置活动接口数上限阈值的目的是在保证带宽的情况下提高网络的可靠性。当前活动链路数目达到上限阈值时,再向Eth-Trunk中添加成员接口,不会增加Eth-Trunk活动接口的数目,超过上限阈值的链路状态将被置为Down,作为备份链路。
    例如,有8条无故障链路在一个Eth-Trunk内,每条链路都能提供1G的带宽,现在最多需要5G的带宽,那么上限阈值就可以设为5或者更大的值。其他的链路就自动进入备份状态以提高网络的可靠性。

                                   
    登录/注册后可看大图
    说明:
    手工负载分担模式链路聚合不支持活动接口数上限阈值的配置。


  • 活动接口数下限阈值
    设置活动接口数下限阈值是为了保证最小带宽,当前活动链路数目小于下限阈值时,Eth-Trunk接口的状态转为Down。
    例如,每条物理链路能提供1G的带宽,现在最小需要2G的带宽,那么活动接口数下限阈值必须要大于等于2。
  • 链路聚合模式
    链路聚合模式分为手工模式和LACP模式两种。两者的区别请参见表2-1
    表2-1  链路聚合模式比较
    维度
    手工模式
    LACP模式

    定义
    Eth-Trunk的建立、成员接口的加入由手工配置,没有链路聚合控制协议的参与。
    Eth-Trunk的建立是基于LACP协议的,LACP为交换数据的设备提供一种标准的协商方式,以供系统根据自身配置自动形成聚合链路并启动聚合链路收发数据。聚合链路形成以后,负责维护链路状态。在聚合条件发生变化时,自动调整或解散链路聚合。

    设备是否需要支持LACP协议
    不需要
    需要

    数据转发
    一般情况下,所有链路都是活动链路。所有活动链路均参与数据转发。如果某条活动链路故障,链路聚合组自动在剩余的活动链路中分担流量。
    一般情况下,部分链路是活动链路。所有活动链路均参与数据转发。如果某条活动链路故障,链路聚合组自动在非活动链路中选择一条链路作为活动链路,参与数据转发的链路数目不变。

    检测故障
    只能检测到同一聚合组内的成员链路有断路等有限故障,但是无法检测到链路故障、链路错连等故障。
    不仅能够检测到同一聚合组内的成员链路有断路等有限故障,还可以检测到链路故障、链路错连等故障。


                                   
    登录/注册后可看大图
    说明:
    了解更多内容,具体请参见手工模式链路聚合LACP模式链路聚合



  • 手工模式链路聚合
    根据是否启用链路聚合控制协议LACP,链路聚合分为手工模式和LACP模式。
    手工模式下,Eth-Trunk的建立、成员接口的加入由手工配置,没有链路聚合控制协议LACP的参与。当需要在两个直连设备之间提供一个较大的链路带宽而设备又不支持LACP协议时,可以使用手工模式。手工模式可以实现增加带宽、提高可靠性和负载分担的目的。
    图2-2所示,DeviceA与DeviceB之间创建Eth-Trunk,手工模式下三条活动链路都参与数据转发并分担流量。当一条链路故障时,故障链路无法转发数据,链路聚合组自动在剩余的两条活动链路中分担流量。
    图2-2  手工模式链路聚合

                                   
    登录/注册后可看大图







  • LACP模式链路聚合背景
    作为链路聚合技术,手工负载分担模式Eth-Trunk可以完成多个物理接口聚合成一个Eth-Trunk口来提高带宽,同时能够检测到同一聚合组内的成员链路有断路等有限故障,但是无法检测到链路层故障、链路错连等故障。
    为了提高Eth-Trunk的容错性,并且能提供备份功能,保证成员链路的高可靠性,出现了链路聚合控制协议LACP(Link Aggregation Control Protocol),LACP模式就是采用LACP的一种链路聚合模式。
    LACP为交换数据的设备提供一种标准的协商方式,以供设备根据自身配置自动形成聚合链路并启动聚合链路收发数据。聚合链路形成以后,LACP负责维护链路状态,在聚合条件发生变化时,自动调整或解散链路聚合。
    图2-3所示,DeviceA与DeviceB之间创建Eth-Trunk,需要将DeviceA上的四个接口与DeviceB捆绑成一个Eth-Trunk。由于错将DeviceA上的一个接口与DeviceC相连,这将会导致DeviceA向DeviceB传输数据时可能会将本应该发到DeviceB的数据发送到DeviceC上。而手工负载分担模式的Eth-Trunk不能及时检测到此故障。
    如果在DeviceA和DeviceB上都启用LACP协议,经过协商后,Eth-Trunk就会选择正确连接的链路作为活动链路来转发数据,从而DeviceA发送的数据能够正确到达DeviceB。
    图2-3  Eth-Trunk错连示意图

                                   
    登录/注册后可看大图


    基本概念
    • 系统LACP优先级
      系统LACP优先级是为了区分两端设备优先级的高低而配置的参数。LACP模式下,两端设备所选择的活动接口必须保持一致,否则链路聚合组就无法建立。此时可以使其中一端具有更高的优先级,另一端根据高优先级的一端来选择活动接口即可。系统LACP优先级值越小优先级越高。
    • 接口LACP优先级
      接口LACP优先级是为了区别同一个Eth-Trunk中的不同接口被选为活动接口的优先程度,优先级高的接口将优先被选为活动接口。接口LACP优先级值越小,优先级越高。
    • 成员接口间M:N备份
      LACP模式链路聚合由LACP确定聚合组中的活动和非活动链路,又称为M:N模式,即M条活动链路与N条备份链路的模式。这种模式提供了更高的链路可靠性,并且可以在M条链路中实现不同方式的负载均衡。
      图2-4所示,两台设备间有M+N条链路,在聚合链路上转发流量时在M条链路上分担负载,即活动链路,不在另外的N条链路转发流量,这N条链路提供备份功能,即备份链路。此时链路的实际带宽为M条链路的总和,但是能提供的最大带宽为M+N条链路的总和。
      当M条链路中有一条链路故障时,LACP会从N条备份链路中找出一条优先级高的可用链路替换故障链路。此时链路的实际带宽还是M条链路的总和,但是能提供的最大带宽就变为M+N-1条链路的总和。
      图2-4  M:N备份示意图

                                     
      登录/注册后可看大图


      这种场景主要应用在只向用户提供M条链路的带宽,同时又希望提供一定的故障保护能力时。当有一条链路出现故障,系统能够自动选择一条优先级最高的可用备份链路变为活动链路。
      如果在备份链路中无法找到可用链路,并且目前处于活动状态的链路数目低于配置的活动接口数下限阈值,那么系统将会把聚合接口关闭。


    LACP模式实现原理
    基于IEEE802.3ad标准的LACP是一种实现链路动态聚合与解聚合的协议。LACP通过链路聚合控制协议数据单元LACPDU(Link Aggregation Control Protocol Data Unit)与对端交互信息。
    在LACP模式的Eth-Trunk中加入成员接口后,这些接口将通过发送LACPDU向对端通告自己的系统优先级、MAC地址、接口优先级、接口号和操作Key等信息。对端接收到这些信息后,将这些信息与自身接口所保存的信息比较,用以选择能够聚合的接口,双方对哪些接口能够成为活动接口达成一致,确定活动链路。
    LACPDU报文详细信息如图2-5所示。
    图2-5  LACPDU报文

                                   
    登录/注册后可看大图

    主要字段信息解释如下:
    项目
    描述

    Actor_Port/Partner_Port本端/对端接口信息
    Actor_State/Partner_State本端/对端状态
    Actor_System_Priority/Partner_System_Priority本端/对端系统优先级
    Actor_System/Partner_System本端/对端系统ID
    Actor_Key/Partner_Key本端/对端操作Key
    Actor_Port_Priority/Partner_Port_Priority本端/对端接口优先级

    • LACP模式Eth-Trunk建立的过程如下:
      • 两端互相发送LACPDU报文。
        图2-6所示,在DeviceA和DeviceB上创建Eth-Trunk并配置为LACP模式,然后向Eth-Trunk中手工加入成员接口。此时成员接口上便启用了LACP协议,两端互发LACPDU报文。
        图2-6  LACP模式链路聚合互发LACPDU

                                       
        登录/注册后可看大图

      • 确定主动端和活动链路。
        图2-7所示,两端设备均会收到对端发来的LACPDU报文。以DeviceB为例,当DeviceB收到DeviceA发送的报文时,DeviceB会查看并记录对端信息,然后比较系统优先级字段,如果DeviceA的系统优先级高于本端的系统优先级,则确定DeviceA为LACP主动端。如果DeviceA和DeviceB的系统优先级相同,比较两端设备的MAC地址,确定MAC地址小的一端为LACP主动端。
        选出主动端后,两端都会以主动端的接口优先级来选择活动接口,两端设备选择了一致的活动接口,活动链路组便可以建立起来,从这些活动链路中以负载分担的方式转发数据。
        图2-7  LACP模式确定主动端和活动链路的过程

                                       
        登录/注册后可看大图


    • LACP抢占
      使能LACP抢占功能后,聚合组会始终保持高优先级的接口作为活动接口的状态。
      图2-8所示,接口Port1、Port2和Port3为Eth-Trunk的成员接口,DeviceA为主动端,活动接口数上限阈值为2,三个接口的LACP优先级分别为10、20、30。当通过LACP协议协商完毕后,接口Port1和Port2因为优先级较高被选作活动接口,Port3成为备份接口。
      图2-8  LACP抢占场景

                                     
      登录/注册后可看大图

      以下两种情况需要使能LACP的抢占功能。
      • Port1接口出现故障而后又恢复了正常。当接口Port1出现故障时被Port3所取代,如果在Eth-Trunk接口下未使能LACP抢占功能,则故障恢复时Port1将处于备份状态;如果使能了LACP抢占功能,当Port1故障恢复时,由于接口优先级比Port3高,将重新成为活动接口,Port3再次成为备份接口。
      • 如果希望Port3接口替换Port1、Port2中的一个接口成为活动接口,可以使能了LACP抢占功能,并配置Port3的接口LACP优先级较高。如果没有使能LACP抢占功能,即使将备份接口的优先级调整为高于当前活动接口的优先级,系统也不会进行重新选择活动接口的过程,不切换活动接口。
    • LACP抢占延时
      抢占延时是LACP抢占发生时,处于备用状态的链路将会等待一段时间后再切换到转发状态。配置抢占延时是为了避免由于某些链路状态频繁变化而导致Eth-Trunk数据传输不稳定的情况。
      图2-8所示,Port1由于链路故障切换为非活动接口,此后该链路又恢复了正常。若系统使能了LACP抢占功能并配置了抢占延时,Port1重新切换回活动状态就需要经过抢占延时的时间。
    • 活动链路与非活动链路切换
      LACP模式链路聚合组两端设备中任何一端检测到以下事件,都会触发聚合组的链路切换:
      • 链路Down事件。
      • 以太网OAM检测到链路失效。
      • LACP协议发现链路故障。
      • 接口不可用。
      • 在使能了LACP抢占功能的前提下,更改备份接口的优先级高于当前活动接口的优先级。

      当满足上述切换条件其中之一时,按照如下步骤进行切换:
      • 关闭故障链路。
      • 从N条备份链路中选择优先级最高的链路接替活动链路中的故障链路。
      • 优先级最高的备份链路转为活动状态并转发数据,完成切换。
      • 链路聚合负载分担方式背景
        数据流是指一组具有某个或某些相同属性的数据包。这些属性有源MAC地址、目的MAC地址、源IP地址、目的IP地址、TCP/UDP的源端口号、TCP/UDP的目的端口号等。
        对于负载分担,可以分为逐包的负载分担和逐流的负载分担。
        • 逐包的负载分担
          在使用Eth-Trunk转发数据时,由于聚合组两端设备之间有多条物理链路,就会产生同一数据流的第一个数据帧在一条物理链路上传输,而第二个数据帧在另外一条物理链路上传输的情况。这样一来同一数据流的第二个数据帧就有可能比第一个数据帧先到达对端设备,从而产生接收数据包乱序的情况。
        • 逐流的负载分担
          这种机制把数据帧中的地址通过HASH算法生成HASH-KEY值,然后根据这个数值在Eth-Trunk转发表中寻找对应的出接口,不同的MAC或IP地址HASH得出的HASH-KEY值不同,从而出接口也就不同,这样既保证了同一数据流的帧在同一条物理链路转发,又实现了流量在聚合组内各物理链路上的负载分担。逐流负载分担能保证包的顺序,但不能保证带宽利用率。


        转发原理
        图2-9所示,Eth-Trunk位于MAC与LLC子层之间,属于数据链路层。
        图2-9  Eth-Trunk接口在以太网协议栈的位置

                                       
        登录/注册后可看大图


        Eth-Trunk模块内部维护一张转发表,这张表由以下两项组成。
        • HASH-KEY值
          HASH-KEY值是根据数据包的MAC地址或IP地址等,经HASH算法计算得出。
        • 接口号
          Eth-Trunk转发表表项分布和设备每个Eth-Trunk支持加入的成员接口数量相关,不同的HASH-KEY值对应不同的出接口。
          例如,某设备每Eth-Trunk支持最大加入接口数为8个,将接口1、2、3、4捆绑为一个Eth-Trunk接口,此时生成的转发表如图2-10所示。其中HASH-KEY值为0、1、2、3、4、5、6、7,对应的出接口号分别为1、2、3、4、1、2、3、4。

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

                                       
        登录/注册后可看大图


        Eth-Trunk模块根据转发表转发数据帧的过程如下:
        • Eth-Trunk模块从MAC子层接收到一个数据帧后,根据负载分担方式提取数据帧的源MAC地址/IP地址或目的MAC地址/IP地址。
        • 根据HASH算法进行计算,得到HASH-KEY值。
        • Eth-Trunk模块根据HASH-KEY值在转发表中查找对应的接口,把数据帧从该接口发送出去。


        负载分担方式
        为了避免数据包乱序情况的发生,Eth-Trunk采用逐流负载分担的机制,其中如何转发数据则由于选择不同的负载分担方式而有所差别。
        负载分担的方式主要包括以下几种,用户可以根据具体应用选择不同的负载分担方式。
        • 根据报文的源MAC地址进行负载分担
        • 根据报文的目的MAC地址进行负载分担
        • 根据报文的源IP地址进行负载分担
        • 根据报文的目的IP地址进行负载分担
        • 根据报文的源MAC地址和目的MAC地址进行负载分担
        • 根据报文的源IP地址和目的IP地址进行负载分担
        配置负载分担方式时,请注意:
        • 负载分担方式只在流量的出接口上生效,如果发现各入接口的流量不均衡,请修改上行出接口的负载分担方式。
        • 尽量将数据流通过负载分担在所有活动链路上传输,避免数据流仅在一条链路上传输,造成流量拥堵,影响业务正常运行。
          例如,数据报文的目的MAC和IP地址只有一个,则应选择根据报文的源MAC和IP地址进行负载分担,如果选择根据报文的目的MAC和IP地址进行负载分担则会造成流量只在一条链路上传输,造成流量拥堵。








      • 游客,如果您要查看本帖隐藏内容请回复
















发表于 2021-8-31 01:00:19 | 显示全部楼层
谢谢分享               
沙发 2021-8-31 01:00:19 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2021-8-31 12:46:15 | 显示全部楼层
好东西谢谢楼主分享
5# 2021-8-31 12:46:15 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2021-9-8 13:36:47 | 显示全部楼层
1111111111111111
7# 2021-9-8 13:36:47 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2021-9-8 14:06:19 | 显示全部楼层
谢谢楼主分享
9# 2021-9-8 14:06:19 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2021-9-8 17:08:03 | 显示全部楼层
谢谢楼主分享
10# 2021-9-8 17:08:03 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2021-10-10 00:48:00 | 显示全部楼层
好东西谢谢楼主分享
11# 2021-10-10 00:48:00 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2021-10-10 09:34:06 | 显示全部楼层
1111111111111111111111111111111111111111
12# 2021-10-10 09:34:06 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2021-10-10 09:34:12 | 显示全部楼层
1111111111111111111111111111111111
13# 2021-10-10 09:34:12 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2021-10-10 09:34:19 | 显示全部楼层
1111111111111111111111111111111111111111
14# 2021-10-10 09:34:19 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2021-11-15 11:42:40 | 显示全部楼层
以太网链路聚合配置指南
15# 2021-11-15 11:42:40 回复 收起回复
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 论坛注册

本版积分规则

QQ|Archiver|手机版|小黑屋|sitemap|鸿鹄论坛 ( 京ICP备14027439号 )  

GMT+8, 2025-2-3 02:56 , Processed in 0.100637 second(s), 15 queries , Redis On.  

  Powered by Discuz!

  © 2001-2025 HH010.COM

快速回复 返回顶部 返回列表