链路聚合工作原理 -- kummer话你知

链路聚合,是将多个物理二层链路捆绑为一个逻辑二层链路的技术。不同的厂商有不同的叫法:

  • Zte:Smartgroup,简称SG
  • Cisco称作Ether Channel、简称EC
  • Brocade称作Brocade LAG,简称LAG
  • 华为,华三:Link Aggregation group,简称LAG,或者Trunk,如果这些接口都是以太网接口,则称为Eth-Trunk

链路聚合解决什么问题

  • 增加链路带宽:多个小带宽链路汇聚为一个大带宽链路,一般采用负荷分担模式:符合分担是基于流来进行的,避免乱序。
  • 增加链路的可靠性:通过冗余的多个链路,一条物理链路出问题,不影响整个逻辑链路。

相关术语

  • **链路聚合: ** 将—组物理接口捆绑在一起作为一个逻辑接口来增加带宽及可靠性的方法。
  • 链路聚合组:将若干条物理链路捆绑在一起所形成的逻辑链路称之为链路聚合组(LAG)或者Trunk。这儿的LAG(Trunk)就是我们所说的逻辑上的二层接口。
  • 以太网链路聚合组:如果这些被捆绑链路都是以太网链路,该聚合组被称为以太网链路聚合组,简写为Eth-Trunk。该聚合组接口称之为Eth-Trunk接口。组成Eth-Trunk的各个接口称之为成员接口。
    Eth-Trunk接口可以作为普通的以太网接口来使用,它与普通以太网接口的差别只在于:转发的时候Eth-Trunk需要从众多成员接口中选择一个或多个接口来进行转发。所以,除了一些必须在物理接口下配置的特性,可以像配置普通以太网接口那样配置Eth-Trunk逻辑接口。
    注:不能把已有的Eth-Trunk成员接口再捆绑成为其它Eth-Trunk的成员。
  • 活动接口(Selected)和非活动接口(Standby):链路聚合存在活动接口和非活动接口两种。转发数据的接口称为活动接口,而不转发数据的接口称为非活动接口。
    活动接口对应的链路称为活动链路,非活动接口对应的链路称为非活动链路。
  • 活动接口数上限阈值:在Eth-Trunk中,如果配置了活动接口数上限阈值,当活动接口数达到这个值后,再向Eth-Trunk中添加成员接口,不会增加Eth-Trunk活动接口的数目。
  • 活动接口数下限阈值: 设置活动接口数下限阈值主要目的是保证Eth-Trunk链路的带宽。防止由于活动接口数目过少而使这些链路负载过大,出现传输数据丢包的情况。在Eth-Trunk中,如果配置了活动接口数下限阈值,当活动接口数目低于该值时,Eth-Trunk接口状态将变为Down,此时所有Eth-Trunk中的成员接口不再转发数据。
  • 备份链路:在链路聚合中为了提高链路的可靠性,引入了备份链路的机制。而这些备份链路对应的接口通常情况下担当了非活动接口的角色,只有当前活动接口出现故障时,备份的接口才可以由非活动接口转变为活动接口。
  • 成员端口间M:N备份:静态LACP模式链路聚合是一种利用LACP协议进行参数协商选取活动链路的聚合模式。该模式由LACP协议确定聚合组中的活动和非活动链路,又称为M:N模式,即M条活动链路与N条备份链路的模式。这种模式提供了更高的链路可靠性,并且可以在M条链路中实现不同方式的负载均衡。如图2所示,两台设备间有M+N条属性相同的链路,在聚合链路上发送流量时在M条链路上负载分担,即主链路。不在另外的N条链路发送流量,这N条链路提供备份功能,即备份链路。此时链路的实际带宽为M条链路的总和,但是能提供的最大带宽为M+N的总和。
    当M条链路中有一条链路故障时,LACP会从N条备份链路中找出一条正常链路替换有故障的链路,形成M:N备份。此时链路的实际带宽还是M条链路的总和,但是能提供的最大带宽就变为M+N-1条链路的总和。
M:N备份示意图

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

链路聚合: 增加带宽,提高可靠性

要是链路聚合正常工作,首先需要解决的问题是如何确定哪些接口形成一个逻辑接口(也就是说如何管理一个汇聚接口的成员接口,包括成员接口的加入、离开、是否参与转发等)。

链路聚合成员接口管理的三种形式

  • 手工聚合:管理员手工将多个链路配置为一个聚合链路,这种方式可能出现本端配置了汇聚,对端没有配置,从而流量导致环路等问题。

手工汇聚模式是一种最基本的链路聚合方式,在该模式下,汇聚组的创建、成员接口的加入完全由手工来配置,没有链路聚合控制协议的参与。该模式下所有成员接口(selected)都参与数据的转发,分担负载流量,因此称为手工负载分担模式。手工汇聚端口的 LACP 协议为关闭状态,禁止用户使能手工汇聚端口的LACP 协议。

在手工汇聚组中,端口可能处于两种状态:Selected 或Standby。处于Selected 状态且端口号最小的端口为汇聚组的主端口,其他处于Selected 状态的端口为汇聚组的**成员端口。 **

由于设备所能支持的汇聚组中的最大端口数有限制,如果处于Selected 状态的端口数超过设备所能支持的汇聚组中的最大端口数,系统将按照端口号从小到大的顺序选择一些端口为Selected 端口,其他则为Standby 端口。(M:N备份模式)

  • 静态LACP聚合:与手工聚合类似,管理员指定哪些接口加入汇聚链路,但同时启用LACP协议。

静态 LACP模式下,汇聚组的创建、成员接口的加入,都是由手工配置完成的。但与手工负载分担模式链路聚合不同的是,该模式下LACP协议报文参与活动接口的选择。也就是说,当把一组接口加入汇聚组,这些成员接口中哪些接口作为活动接口,哪些接口作为非活动接口还需要经过LACP 协议报文的协商确定。

静态LACP由协议确定聚合组中的活动和非活动链路,又称为M:N模式,即M条活动链路与N条备份链路的模式。这种模式提供了更高的链路可靠性,并且可以在M 条链路中实现不同方式的负载均衡。M:N模式的聚合组中M和N的值可以通过配置活动接口数上限阈值来确定。

  • 动态LACP聚合:通过LACP协议决定将那些链路聚合。

LACP根据设备端口的配置(即速率、双工、基本配置、管理Key)形成聚合链路并启动聚合链路收发数据。聚合链路形成后,LACP负责维护链路状态,在聚合条件发生变化时,自动调整或解散链路聚合,从而使两端设备对端口加入或退出某个动态汇聚组达成一致。

动态LACP汇聚是一种系统自动创建/删除的汇聚,不允许用户增加或删除动态LACP汇聚中的成员端口,只有速率和双工属性相同、连接到同一个设备、有相同基本配置的端口才能被动态汇聚在一起。即使只有一个端口也可以创建动态汇聚,此时为单端口汇聚。动态汇聚中,端口的LACP协议处于使能状态。
端口使能动态LACP协议只需要在端口上使能LACP就可以了,不必为端口指定汇聚组,使能动态LACP协议的端口需要自己寻找动态汇聚组,如果找到了与自己信息(包括自己的对端信息)一致的汇聚组,直接加入;如果没有找到与自己信息一致的汇聚组,创建一个新的汇聚组。

链路聚合的接口要求

由于最终的汇聚链路表现为一个逻辑上的二层链路,所以整个逻辑链路需要有相同的二层配置,否则聚合链路的工作可能会出现混乱。这些配置包括:

  • STP配置
  • QOS配置
  • VLAN配置
  • 链路类型:Access,Trunk,Hybrid
  • 端口速率,全双工模式

工作原理:

七层模型中的位置

根据IEEE,链路层分为两个子层,MAC和LLC:

  • MAC:媒体访问控制子层:这一层与物理层密切相关,比如以太网和令牌环网络,其MAC层的实现时完全不同的。
  • LLC:逻辑链路控制子层:这一层则是独立的,与物理层关系不大,用来提供链路的聚合等逻辑功能。链路聚合工作在这一层。(在没有链路汇聚等功能时,LLC这一层并不是必须的,可以裁剪)
IEEE七层协议-逻辑链路控制子层

聚合链路所在的协议层次

链路聚合的控制面协议 - LACP

LACP为交换数据的设备提供一种标准的协商方式,以供系统根据自身配置自动形成聚合链路并启动聚合链路收发数据。聚合链路形成以后,负责维护链路状态。在聚合条件发生变化时,自动调整或解散链路聚合。LACP工作的基本流程如下:

  1. 邻居发现:在设备SwitchA和SwitchB上创建Eth-Trunk并配置为静态LACP模式,然后向Eth-Trunk中手工加入成员接口。此时成员接口上便启用了LACP协议,两端互相发出LACPDU报文。

    1. 邻居发现

  2. 确定主动端:两端设备均会收到对端发来的LACP报文。以SwitchB为例,当SwitchB收到SwitchA发送的LACP报文时,SwitchB会查看并记录对端信息,并且比较系统优先级字段,如果对端设备SwitchA的系统优先级高于本端设备SwitchB的系统优先级,则确定SwitchA为LACP主动端,SwitchB将按照SwitchA的接口优先级选择活动接口,从而两端设备对于活动接口的选择达成一致。

    2. 确定主动端

  3. 确定活动端口:两端设备选出主动端后,两端都会以主动端的接口优先级来选择活动接口。两端设备选择了一致的活动接口,活动链路组便可以建立起来,从这些活动链路中以负载分担的方式转发数据。

    3. 确定活动端口的全过程

4.** 链路的保护与切换:**

  • 切换时机:静态模式链路聚合组两端设备中任何一端检测到以下事件,都会触发聚合组的链路切换:
  • 链路Down事件。
  • ETH-OAM检测到链路失效。LACP协议发现链路故障。接口不可用。
  • 在使能了LACP抢占前提下,更改备份接口的优先级高于当前活动接口的优先级后,会发生切换的过程。
  • 切换流程:当满足上述切换条件其中之一时,按照如下步骤进行切换:
  1. 关闭故障链路。

  2. 从N条备份链路中选择优先级最高的链路接替活动链路中的故障链路。

  3. 优先级最高的备份链路转为活动状态并转发数据,完成切换。

  4. 链路抢占:使能LACP抢占后,聚合组会始终保持高优先级的接口作为活动接口的状态。如下图所示,GE1/0/1、GE1/0/2和GE1/0/3为Eth-Trunk 1的成员接口,活动接口数最大上限阈值为2,配置GE1/0/1和GE1/0/2接口的LACP优先级分别为9和10,GE1/0/3保持缺省接口LACP优先级。当通过LACP协议协商完毕后,GE1/0/1、GE1/0/2接口因为优先级较高被选作活动接口,GE1/0/3接口成为备份接口。

活动接口与备份接口

以下两种情况需要使能LACP的抢占功能。

  1. GE1/0/1接口出现故障而后又恢复了正常。当接口GE1/0/1出现故障时被GE1/0/3所取代,如果在Eth-Trunk接口下未使能抢占,则故障恢复时GE1/0/1仍然保持备份接口状态;如果使能了LACP抢占,当GE1/0/1故障恢复时可以重新成为活动接口,GE1/0/3再次成为备份接口。

  2. 如果用户希望GE1/0/3接口替换GE1/0/1、GE1/0/2中的一个接口成为活动接口,可以通过更改GE1/0/3的接口LACP优先级为8或更小的数值来实现,但前提条件是已经使能了LACP抢占功能。如果没有使能LACP抢占功能,即使将备份接口的优先级调整为高于当前活动接口的优先级,系统也不会进行重新选择活动接口的过程,不切换活动接口。

  3. 抢占延时的概念:LACP抢占发生时,处于备用状态的链路将会等待一段时间后再切换到转发状态,这就是抢占延时。抢占延时是一个可配置的值,默认为30s,可配置范围为10s~180s。
    配置抢占延时是为了避免由于某些链路状态频繁变化而导致整个Eth-Trunk数据传输不稳定。如图8所示,GE1/0/1由于链路故障切换为非活动接口,此后该链路又恢复了正常。由于系统使能了LACP抢占,经过抢占延时后,GE1/0/1会重新切换到活动状态。

附录

聚合链路 E-trunk和Eth-trunk 区别

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,015评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,262评论 1 292
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,727评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,986评论 0 205
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,363评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,610评论 1 219
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,871评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,582评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,297评论 1 242
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,551评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,053评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,385评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,035评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,079评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,841评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,648评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,550评论 2 270

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,100评论 18 139
  • 什么是VLAN VLAN(Virtual LAN),翻译成中文是“虚拟局域网”。可以看做是在一个物理局域网络上搭建...
    kummerwu阅读 7,613评论 0 26
  • 10.链路绑定PMD 除了用于物理和虚拟硬件的轮询模式驱动程序(PMD)之外,DPDK还包括一个纯软件库,可将多个...
    半天妖阅读 7,910评论 0 5
  • STP解决什么问题 生成树协议(Spanning-Tree Protocol,以下简称STP)是一个用于在局域网中...
    kummerwu阅读 15,486评论 3 19
  • 大眼睛 双眼皮 卧藏一世景观 却在眨眼之间 消逝成 一线天
    火山wj阅读 67评论 0 0