当前位置: 首页 > news >正文

链路聚合概述

目录

技术背景:

基本概念:

链路聚合的工作模式:

简介:

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

简介:

配置实施:

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

简介:

LACP协商选举:

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

简介:

选举规则:

2.活动端口选举:

简介:

选举规则:

配置实施:

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

前言:

简介:

配置实施:

尾声:

技术背景:

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

基本概念:

链路聚合(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 1mode manual load-balance//不用配置也行,ensp里缺省是这个模式,为什么呢,因为有些设备不支持lacpport link-type trunkport trunk allow-pass vlan alltrunkport 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 1mode lacp-static //修改链路聚合工作模式为静态lacpport link-type trunkport trunk allow-pass vlan alltrunkport g 0/0/1 to 0/0/2

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

可以看到状态是一个Unselect

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

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

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

那么我们继续配置

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

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

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

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

SW1
interface Eth-Trunk1max active-linknumber 1

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

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

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

拓展:跨设备级链路聚合E-Trunk(源自EVPN的CE双活配置)

前言:

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

简介:

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 1ip address 1.1.1.1 24
e-trunk 1peer-address 1.1.1.2 source-address 1.1.1.1
int eth-trunk 1mode lacp-statice-trunk 1port link-type trunkport trunk allow-pass vlan alltrunkport g 0/0/2SW2
lacp e-trunk system-id 0000-0000-0001
int vlan 1ip address 1.1.1.2 24
e-trunk 1peer-address 1.1.1.1 source-address 1.1.1.2
int eth-trunk 1mode lacp-statice-trunk 1port link-type trunkport trunk allow-pass vlan alltrunkport g 0/0/2

然后我们再配置SW3

int eth-trunk 1mode lacp-staticport link-type trunkport trunk allow-pass vlan alltrunkport 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的链路未选择,符合我们前面所讲的理论。

尾声:

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

相关文章:

链路聚合概述

目录 技术背景: 基本概念: 链路聚合的工作模式: 简介: 1)Manual Load-balance(手动负载分担) 简介: 配置实施: 2)LACP(链路聚合控制协议&#xff…...

【链表】算法题(二) ----- 力扣/牛客

一、链表的回文结构 思路: 找到链表的中间节点,然后逆置链表的后半部分,再一一遍历链表的前半部分和后半部分,判断是是否为回文结构。 快慢指针找到链表的中间节点 slow指针指向的就是中间节点 逆置链表后半部分 逆置链表后半部分…...

合成复用原则

合成复用原则 (Composite Reuse Principle, CRP) 合成复用原则(Composite Reuse Principle, CRP),也被称为组合/聚合复用原则,是面向对象设计中的一条重要原则。它的核心思想是:优先使用对象组合/聚合,而不…...

安卓自带camera hal3 实例README.md翻译

最近,遇到一个这样的问题,临时了解下这个驱动实现架构和特点,翻译如下 V4L2相机HALv3 camera.v4l2库使用视频Linux 2(V4L2)接口实现了camera HAL v3。这使得它在理论上可以与各种设备配合使用,尽管V4L2的…...

ActiViz实战:ActiViz中的自己实现鼠标双击事件

文章目录 1、添加鼠标事件2、网上实现双击事件的方式3、增加双击的时间限制4、补充说明1、添加鼠标事件 已知在C#中观察者/命令模式会报错,正常添加鼠标事件如下: private void VtkInteractorStyleTest() {vtkInteractorStyle style = vtkInteractorStyle.New();style.LeftB…...

Linux-交换空间(Swap)管理

引入概念 在计算机中,硬盘的容量一般比内存大,内存(4GB 8GB 16GB 32GB 64GB…),硬盘(512GB 1T 2T…)。 冯诺依曼的现代计算机结构体系里面的存储器就是内存 内存是一种易失性存储器&#xff0c…...

扫描某个网段下存活的IP:fping

前言: 之前用arp统计过某网段下的ip,但是有可能统计不全。网络管理平台又不允许登录。想要知道当前的ip占用情况,可以使用fping fping命令类似于ping,但比ping更强大。与ping需要等待某一主机连接超时或发回反馈信息不同&#x…...

【深度学习】PyTorch框架(3):优化与初始化

1.引言 在本文中,我们将探讨神经网络的优化与初始化技术。随着神经网络深度的增加,我们会遇到多种挑战。最关键的是确保网络中梯度流动的稳定性,否则可能会遭遇梯度消失或梯度爆炸的问题。因此,我们将深入探讨以下两个核心概念&a…...

Go-知识测试-子测试

Go-知识测试-子测试 1. 介绍2. 例子3. 子测试命名规则4. 选择性执行5. 子测试并发6. testing.T.Run7. testing.T.Parallel8. 子测试适用于单元测试9. 子测试适用于性能测试10. 总结10.1 启动子测试 Run10.2 启动并发测试 Parallel 建议先看:https://blog.csdn.net/a…...

.net core IConfiguration 读 appsettings.json 数据,举例

在.NET Core中,IConfiguration 接口是用来读取配置数据的,包括从 appsettings.json 文件中读取。下面是一个如何在使用.NET Core时通过 IConfiguration 读取 appsettings.json 数据的示例。 首先,假设你的 appsettings.json 文件内容如下&am…...

全球Windows机器蓝屏,作为量化人,我的检讨来了

昨天下午,微软给大家放了个假。Windows又双叒死机了。不过,这一次不是几台机器,而是全球大范围宕机。这一刻,大家都是“正蓝旗”。 蓝瓶的,效果好! 现在根本原因已经找到,绝大多数人的机器都已修…...

部署和运维

目录 1.Git1.1. Git指令中merge和rebase的区别1. Commit 记录2. 合并方式3. 冲突处理4. 使用场景选择建议 1.2. cherry-pick的使用如何使用 git cherry-pick例子处理冲突撤销 cherry-pick其他选项 结论 2. 部署1. Nginx的使用场景 编译打包1. webpack2. webpack打包优化1. 代码…...

微信小程序基本语法

官网 https://developers.weixin.qq.com/miniprogram/dev/framework/ 视频教程:尚硅谷微信小程序开发教程,2024最新微信小程序项目实战! 仿慕尚花坊项目源码:https://gitee.com/abcdfdewrw/flower-workshop 目录 一,初…...

测试用例的设计方法

等价类 等价类概念:在所有测试的数据中,具有某种共同特征的数据子集 边界值 边界值分析是对程序输入或输出的边界值进行测试的一种黑盒测试方法 边界值是作为等价类的补充,其主要区别是: 边界值测试设计不是从某一个等价类中…...

Android10.0 锁屏分析-KeyguardPatternView图案锁分析

首先一起看看下面这张图: 通过前面锁屏加载流程可以知道在KeyguardSecurityContainer中使用getSecurityView()根据不同的securityMode inflate出来,并添加到界面上的。 我们知道,Pattern锁所使用的layout是 R.layout.keyguard_pattern_view&a…...

Python 装饰器:函数的函数,代码的艺术

引言 在Python中,装饰器是一种强大的功能,允许程序员在不修改原函数源码的情况下增强或修改函数行为。装饰器本质上是一个接收函数作为参数的高阶函数,并返回一个新的函数或修改原函数的行为。这种机制极大地提高了代码的复用性、可读性和模…...

安全防御2

实验要求: 实验过程: 7,办公区设备可以通过电信链路和移动链路上网(多对多的NAT,并且需要保留一个公网IP不能用来转换): 新建电信区: 新建移动区: 将对应接口划归到各自区域: 新建…...

C语言 ——— 打印水仙花数

目录 何为水仙花数 题目要求 代码实现 何为水仙花数 “水仙花数”是指一个n位数,其各位数字的n次方之和等于该数本身 如:153 1^3 5^3 3^3,则153就是一个“水仙花数” 题目要求 求出0~100000的所有“水仙花数”并输出 代码实现 #i…...

「Conda」在Linux系统中安装Conda环境管理器

在Linux系统中安装Conda环境管理器是一个相对简单的过程。 1. 准备工作 确保你的Linux系统已经更新到最新版本,并安装了基本的开发工具和库。打开终端,执行以下命令: sudo apt-get update sudo apt-get upgrade sudo apt-get install build-essential2. 安装Miniconda或An…...

9.11和9.9哪个大?GPT-4o也翻车了

今天刷到了这个问题,心血来潮去问下chatgpt-4o,没想到疯狂翻车... 第一次问: GPT一开始给出了难绷的解答,让我想起了某短视频软件评论区里对某歌手节目排名的质疑哈哈哈哈哈 但是在接下来的进一步询问和回答中它反应过来了。 第…...

7.4.分块查找

一.分块查找的算法思想: 1.实例: 以上述图片的顺序表为例, 该顺序表的数据元素从整体来看是乱序的,但如果把这些数据元素分成一块一块的小区间, 第一个区间[0,1]索引上的数据元素都是小于等于10的, 第二…...

模型参数、模型存储精度、参数与显存

模型参数量衡量单位 M:百万(Million) B:十亿(Billion) 1 B 1000 M 1B 1000M 1B1000M 参数存储精度 模型参数是固定的,但是一个参数所表示多少字节不一定,需要看这个参数以什么…...

QMC5883L的驱动

简介 本篇文章的代码已经上传到了github上面,开源代码 作为一个电子罗盘模块,我们可以通过I2C从中获取偏航角yaw,相对于六轴陀螺仪的yaw,qmc5883l几乎不会零飘并且成本较低。 参考资料 QMC5883L磁场传感器驱动 QMC5883L磁力计…...

聊聊 Pulsar:Producer 源码解析

一、前言 Apache Pulsar 是一个企业级的开源分布式消息传递平台,以其高性能、可扩展性和存储计算分离架构在消息队列和流处理领域独树一帜。在 Pulsar 的核心架构中,Producer(生产者) 是连接客户端应用与消息队列的第一步。生产者…...

cf2117E

原题链接&#xff1a;https://codeforces.com/contest/2117/problem/E 题目背景&#xff1a; 给定两个数组a,b&#xff0c;可以执行多次以下操作&#xff1a;选择 i (1 < i < n - 1)&#xff0c;并设置 或&#xff0c;也可以在执行上述操作前执行一次删除任意 和 。求…...

VTK如何让部分单位不可见

最近遇到一个需求&#xff0c;需要让一个vtkDataSet中的部分单元不可见&#xff0c;查阅了一些资料大概有以下几种方式 1.通过颜色映射表来进行&#xff0c;是最正规的做法 vtkNew<vtkLookupTable> lut; //值为0不显示&#xff0c;主要是最后一个参数&#xff0c;透明度…...

相机Camera日志分析之三十一:高通Camx HAL十种流程基础分析关键字汇总(后续持续更新中)

【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了:有对最普通的场景进行各个日志注释讲解,但相机场景太多,日志差异也巨大。后面将展示各种场景下的日志。 通过notepad++打开场景下的日志,通过下列分类关键字搜索,即可清晰的分析不同场景的相机运行流程差异…...

leetcodeSQL解题:3564. 季节性销售分析

leetcodeSQL解题&#xff1a;3564. 季节性销售分析 题目&#xff1a; 表&#xff1a;sales ---------------------- | Column Name | Type | ---------------------- | sale_id | int | | product_id | int | | sale_date | date | | quantity | int | | price | decimal | -…...

C# SqlSugar:依赖注入与仓储模式实践

C# SqlSugar&#xff1a;依赖注入与仓储模式实践 在 C# 的应用开发中&#xff0c;数据库操作是必不可少的环节。为了让数据访问层更加简洁、高效且易于维护&#xff0c;许多开发者会选择成熟的 ORM&#xff08;对象关系映射&#xff09;框架&#xff0c;SqlSugar 就是其中备受…...

浪潮交换机配置track检测实现高速公路收费网络主备切换NQA

浪潮交换机track配置 项目背景高速网络拓扑网络情况分析通信线路收费网络路由 收费汇聚交换机相应配置收费汇聚track配置 项目背景 在实施省内一条高速公路时遇到的需求&#xff0c;本次涉及的主要是收费汇聚交换机的配置&#xff0c;浪潮网络设备在高速项目很少&#xff0c;通…...