首页 > 其他分享 >链路聚合概述

链路聚合概述

时间:2024-07-11 18:25:43浏览次数:11  
标签:聚合 链路 端口 LACP 概述 trunk port

技术背景:

随着网络规模不断扩大,人们对骨干链路的带宽吞吐量与可靠性提出了越来越高的要求。根据传统的方案,只能将当前链路更换为更高速的链路。但是更换链路需要付出较高的成本费用,而且灵活性差,因此我们需要探索一种更灵活、更新型、更节约的方法来取代这种传统方案。正因如此,链路聚合作为这一场景的解决方案应运而生,并得到了广泛的推广与使用

基本概念:

链路聚合(Link-Aggregation)本质上就是将多条物理以太链路捆绑成一条逻辑链路,又叫Eth-trunk链路,而这条逻辑链路的带宽就是链路聚合组(Link-Aggregation Group)成员带宽的一个总和。并且链路聚合还能形成一个链路冗余,由于是多条物理以太链路组成一条逻辑链路,只要物理链路没死光,那么逻辑链路就会一直存在。

链路聚合的工作模式:

简介:

链路聚合有几种工作模式,分别是Manual Load-balance(手动负载分担)、LACP-Static(链路聚合控制协议-静态)、LACP-Dynamic(链路聚合控制协议-动态)。

1)Manual Load-balance(手动负载分担)

简介:

手动负载分担模式无需协商,当你将eth-trunk应用到接口上时,链路聚合的状态即会up

配置实施:

这是一个简单的链路聚合topo

SW1
int eth-trunk 1
 mode manual load-balance//不用配置也行,ensp里缺省是这个模式,为什么呢,因为有些设备不支持lacp
 port link-type trunk
 port trunk allow-pass vlan all
 trunkport g 0/0/1 to 0/0/2 //eth-trunk的一个批量应用

我们先配置一边,然后看看当前链路聚合表

可以看到,链路聚合组的所有成员都是一个up的状态,这就是一个负载分担,就是无论应用到多少个接口,都会up,而且无法限制活动端口。

而且,此时产生了一个可能的、严重的、风险较大的问题:

LSW1的两条链路捆绑成一条,就是说,LSW1这边是一条链路,而SW2那边仍然是两条链路,那么,可能会出现一个环路的风险

红色和蓝色线条代表了两种可能的环路报文流方向,因此,若进行手工模式配置,可能由于网管配置的疏忽,导致网络中出现了环路,危害极大,因此能用LACP就用LACP,尽量别用Manual!

那么手工模式就讲到这里,我们接下来重点来讲LACP

2)LACP(链路聚合控制协议):

简介:

LACP是一种基于IEEE802.3ad标准的一种链路聚合控制协议,具有两种模式,一种LACP-Static,一种LACP-Dynamic,通常都是部署静态LACP,动态LACP仅用于华为设备与服务器互连的场景,其他场景下部署有网络成环的风险

LACP协商选举:

1.主动端与被动端选举/协商主从:
简介:

两端设备在LACP协商过程中会根据LACP PDU中携带的系统优先级或系统ID参数来选举主动端和被动端

选举规则:

1.先比对系统优先级(Sys Pri),值越小越优,若一样,则下一步

2.再比对系统ID(Sys ID),值越小越优

2.活动端口选举:
简介:

两端设备在LACP协商完主从后,再根据主动端设备本地接口上的一个接口优先级与接口ID参数来选举活动端口,被动端根据主动端选举的活动端口来选择活动端口

选举规则:

1.先比对端口优先级(Port Pri),值越小越优,若一样,则下一步

2.再比对端口号(Port No),值越小越优

配置实施:

同样的,这是一个简单的链路聚合topo

sw1
int eth-trunk 1
 mode lacp-static //修改链路聚合工作模式为静态lacp
 port link-type trunk
 port trunk allow-pass vlan all
 trunkport g 0/0/1 to 0/0/2

那么配置完单边我们来看链路聚合表

可以看到状态是一个Unselect

然后我可以看到,相比手动模式,LACP的链路聚合表要多了不少东西

local中的参数就是我们本地的一个参数

partner中的参数就是我们对端的参数,因为我们对端还没配置链路聚合,因此无法进行lacp协商,也就无法获取对端的一个链路聚合参数信息

那么我们继续配置

sw2
int eth-trunk 1
 mode lacp-static //修改链路聚合工作模式为静态lacp
 port link-type trunk
 port trunk allow-pass vlan all
 trunkport g 0/0/1 to 0/0/2

然后我们回头来看链路聚合表

可以看到对端的参数已经获取到了,那么我们可以看到系统优先级SysPr和端口优先级PortPrii默认是32768,刚好是一个2^15次方,由于他们优先级相同,那么他们选举主动端或活动端口只能进入下一步,即比对系统标识符SysID或端口编号PortNo。

和手动负载分担不同,LACP可以限制一个最大活动端口,我们这里可以来配置一下

SW1
interface Eth-Trunk1
 max active-linknumber 1

配置一边即可,配置在主动端,然后主动端就会基于选举规则根据本地端口的参数进行一个活动端口选举,我们直接来看选举结果

可以看到,如我们上文所言,当端口优先级PortPri相同时,会根据端口编号PortNo进行选举,值越小越优,果不其然,g0/0/1的端口编号2比g0/0/2的端口编号3小,因此g0/0/1被选中为活动端口,而被动端SW2也根据主动端SW1所选举的活动端口进行活动端口选择,如图

这就是链路聚合静态LACP的一个常规配置,动态LACP就不配置了,这个不知道模拟器支不支持,S系列的交换机反正是没有这个模式,我记得是只有CE云引擎设备支持

拓展:跨设备级链路聚合E-Trunk

前言:

上文所讲的是一个单板型链路聚合,什么叫单板型链路聚合?我的理解是链路聚合组中的所有成员连接的是同一个设备,这就是单板型。而我们接下来要讲的跨设备级链路聚合,即是链路聚合组中的成员连接的是不同的设备,

简介:

E-trunk是在LACP基础上提供了一种更高级的链路聚合方式:跨设备链路聚合,主要用于解决DC(数据中心)虚拟化场景下,CE(Customer)双归属的问题,可以防止CE1向另一端CE2寻址的时候,发送两份广播报文给PE设备(分别给PE1、PE2)。E-trunk实现了双归链路的形成一个主备关系

配置实施:

这是一个简单的CE双归属场景topo,SW1和SW2相当于一个PE,SW3相当于一个CE

我们首先在SW1和SW2配置链路聚合E-Trunk与Eth-Trunk

SW1
lacp e-trunk system-id 0000-0000-0001//类似VRRP中的Virtual-ip,在一个E-trunk组中两个PE维护一个共同的系统ID,因此两端的E-trunk ID也要相同
int vlan 1
 ip address 1.1.1.1 24
e-trunk 1
 peer-address 1.1.1.2 source-address 1.1.1.1
int eth-trunk 1
 mode lacp-static
 e-trunk 1
 port link-type trunk
 port trunk allow-pass vlan all
 trunkport g 0/0/2

SW2
lacp e-trunk system-id 0000-0000-0001
int vlan 1
 ip address 1.1.1.2 24
e-trunk 1
 peer-address 1.1.1.1 source-address 1.1.1.2
int eth-trunk 1
 mode lacp-static
 e-trunk 1
 port link-type trunk
 port trunk allow-pass vlan all
 trunkport g 0/0/2

然后我们再配置SW3

int eth-trunk 1
 mode lacp-static
 port link-type trunk
 port trunk allow-pass vlan all
 trunkport g 0/0/1 to 0/0/2

此时我们来看SW3的链路聚合表

诶,一个选中,一个未选中。应该就是我们前文所说的,双归链路之间形成一个主备关系,主链路被选中,而备链路未选择,我们可以在SW1上看E-trunk表项来验证一下我的说法

如图,这是SW1的e-trunk1表项,可以看到,SW1在e-trunk 1中是一个Master身份,再来看SW2的e-trunk1表项

看,是一个Backup身份,因此在去往Master的链路被选中,而去往backup的链路未选择,符合我们前面所讲的理论。

尾声:

这就是链路聚合大致的内容了,那么我们的链路聚合到此就告一段落了,下次再见

标签:聚合,链路,端口,LACP,概述,trunk,port
From: https://blog.csdn.net/a728800/article/details/140354611

相关文章

  • DW03D是一款用于锂离子/聚合物电池保护的高集成度解决方案。DW03D包含内部功率MOSFET
    一般概述    DW03D产品是单节锂离子/锂聚合物可充电电池组保护的高集成度解决方案。DW03D包括了先进的功率MOSFET,高精度的电压检测电路和延时电路。    DW03D具有非常小的TSS08-8的封装,这使得该器件非常适合应用于空间限制得非常小的可充电电池组应用。 ......
  • [笔记]网络原理2 - 互连模型,物理层,数据链路层,网络层及其相关协议
    1.五层模型层层叠加,层层封装2.数据链路层中的一些概念MTU:最大传输单元,每一种数据链路层协议都规定了最大能传送的帧的数据长度上限,以太网的MTU最大为1500bytes,最小为64bytes。数据链路层会在数据包的左边(帧开始/结束符)右边(帧开始/结束符)都封装一些东西,封装成帧。......
  • 65、Flink 的 DataStream Connectors 概述
    1)概览1.预定义的Source和Sink预定义的datasources支持从文件、目录、socket,以及collections和iterators中读取数据。预定义的datasinks支持把数据写入文件、标准输出(stdout)、标准错误输出(stderr)和socket。2.附带的连接器连接器可以和多种多样的第三方系......
  • 网络类型和数据链路层协议
    1、P2P----点到点网络2、MA----多点接入网络3、BMA----广播型多点接入网络4、NBMA----非广播型多点接入网络MA:以太网---以太网协议以太网环境下独有的---MACP2P网络---点到点网络:在一个网络中只能存在两台设备的情况,不需要MAC地址进行区分。支持以太网协议的传输介质:......
  • Java中类和对象概述
    目录前言:一.初步了解类和对象1.1什么是面向对象?1.2什么是类和对象?​二.类的定义与使用2.1类的格式与定义2.2对象的创建与使用 三.this关键字的使用3.1this的使用方法3.2this引用的特性 四.类的构造方法 五.静态变量和静态方法前言:小编也是第一次写blog,可能......
  • 概述等
    学生移动端:个人基本信息提交,贫困佐证资料提交,查考试分数,查考证信息,查课表信息等教师移动端:上课老师一键打卡,未到学生催起信息提交,监考老师考场信息提交,对学生提交的个人信息审计,对学生提交的贫困佐证资料的审计,查宿信息提交等 -------------------平台可导出规定格......
  • 17、Django-聚合查询-原生sql语句操作raw()
    聚合查询:整表聚合和分组聚合 1、整表聚合--不带分组的聚合查询是指:将全部数据进行集中统计查询--需要导入:--fromdjango.db.modelsimport*--聚合函数:Sum,Avg,Count,Max,Min--语法:--<model_name>.objects.aggregate(结果变量名=聚合函数('字段名'))......
  • MongoDB安装、基础操作和聚合实例详解
    虽然MongoDB这些年很流行,但笔者之前没研究过,现在有需求研究这类NoSQL的数据库,是为了验证其是否可被替换。MongoDB是很轻量的文档数据库,简单测试也懒得专门准备虚拟机环境了,直接在macOS上安装测试下其基础功能。1.使用Homebrew安装MongoDB2.启动/停止MongoDB服务3.启动......
  • MongoDB安装、基础操作和聚合实例详解
    虽然MongoDB这些年很流行,但笔者之前没研究过,现在有需求研究这类NoSQL的数据库,是为了验证其是否可被替换。MongoDB是很轻量的文档数据库,简单测试也懒得专门准备虚拟机环境了,直接在macOS上安装测试下其基础功能。1.使用Homebrew安装MongoDB2.启动/停止MongoDB服务3.启动......
  • [二、状态管理]1状态管理概述
    在前文的描述中,我们构建的页面多为静态界面。如果希望构建一个动态的、有交互的界面,就需要引入“状态”的概念。图1 效果图上面的示例中,用户与应用程序的交互触发了文本状态变更,状态变更引起了UI渲染,UI从“HelloWorld”变更为“HelloArkUI”。在声明式UI编程框架中,UI是程......