链路聚合概述

news2024/9/22 1:01:33

技术背景:

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

基本概念:

链路聚合(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的链路未选择,符合我们前面所讲的理论。

尾声:

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1921778.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ERROR: No matching distribution found for matplotlib

1.问题:安装matplotlib报错,如下图所示: 2.通过换源,输入以下命令:python -m pip install matplotlib -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com,但是还是无效 3.在pycharm中升级…

OpenHarmony 入门——ArkUI自定义组件的基础语法(一)

文章大纲 引言一、自定义组件的基本语法1、Component 装饰器 和 Entry 装饰器2、build函数3、Reuseable4、定义成员函数/变量 二、自定义组件的使用 引言 在OpenHarmony 系统里ArkUI子系统显示的内容均为组件,由框架直接提供的称为系统组件,由开发者定义…

本地服务器部署外网可访问地址

一、开放服务器端口 (1)打开【控制面板】-【系统和安全】-【防火墙】-【高级设置】 (2)右键【新建规则】-【端口】-【程序:所有程序】-【操作:允许连接】-【配置文件:默认】-【名称:…

Customize-A-Video:文生视频自由定制

视频领域,尤其是文本到视频(T2V)扩散模型中的动作定制,尚未得到充分研究。来自马里兰大学、Adobe Research 和延世大学的研究团队提出了一种名为“Customize-A-Video”的新方法,本方法通过单一参考视频对动作进行建模&…

20240713 每日AI必读资讯

🚗 烧钱抢老司机饭碗?“萝卜快跑”事件辟谣 - 武汉相关负责人辟谣:无人车不是1000辆,只有400多辆 - “萝卜快跑”自动驾驶车可以通过单车智能、多重安全系统冗余保障以及5G云代驾平行驾驶三重冗余保障,确保自动驾驶…

vue学习day07-scoped样式冲突、data是一个函数、props详解、组件通信、非父子通信-event bus 事件总线

19、scoped样式冲突 (1)默认情况:写在组件中的样式会全局生效,因此会很容易造成多个组件之间的样式冲突问题。 1)全局样式:默认组件中的样式会作用到全局 比如: 当只有box1设置边框时&#…

外贸国际短信群发工具的开发源代码!

在外贸行业中,快速、准确地与客户进行沟通是业务成功的关键之一,随着科技的不断进步,国际短信群发工具成为了外贸从业者不可或缺的工具。 本文将通过科普五段源代码,带您深入了解外贸国际短信群发工具的开发原理和实现过程。 一…

【题目/训练】回溯算法练习

&#x1f342;八皇后 二进制来表示。 #include <iostream> #include <algorithm> #include <cstring> #include <cstdio> #include <unordered_map> using namespace std;int n; #define MASK(n) ((1<<(n1))-2) //如 6 得到的是1000 0000 …

阐述 C 语言中的参数传递机制

&#x1f345;关注博主&#x1f397;️ 带你畅游技术世界&#xff0c;不错过每一次成长机会&#xff01; &#x1f4d9;C 语言百万年薪修炼课程 通俗易懂&#xff0c;深入浅出&#xff0c;匠心打磨&#xff0c;死磕细节&#xff0c;6年迭代&#xff0c;看过的人都说好。 文章目…

谷粒商城踩坑记录-网关服务启动报错

文章目录 一&#xff0c;错误表现二&#xff0c;错误原因三&#xff0c;解决方案1&#xff0c;排除无关依赖2&#xff0c;调整依赖关系 一&#xff0c;错误表现 在启动Spring Cloud Gateway服务时&#xff0c;控制台输出了一系列错误信息&#xff0c;指出应用程序未能成功启动…

单元测试Mockito笔记

文章目录 单元测试Mockito1. 入门1.1 什么是Mockito1.2 优势1.3 原理 2. 使用2.0 环境准备2.1 Mock1) Mock对象创建2) 配置Mock对象的行为(打桩)3) 验证方法调用4) 参数匹配5) 静态方法 2.2 常用注解1) Mock2) BeforeEach 与 BeforeAfter3) InjectMocks4) Spy5) Captor6) RunWi…

在 Java 中:为什么不能在 static 环境中访问非 static 变量?

在 Java 中&#xff1a;为什么不能在 static 环境中访问非 static 变量&#xff1f; 1、静态&#xff08;static&#xff09;变量2、非静态&#xff08;非static&#xff09;变量3、为什么不能访问&#xff1f;4、如何访问&#xff1f;5、总结 &#x1f496;The Begin&#x1f…

百度2025校园招聘内推开始啦

百度2025校园招聘内推开始啦&#xff0c;快来投递你心仪的职位吧&#xff08; 网申链接地址&#xff1a;https://talent.baidu.com/jobs/list?recommendCodeIZB4S3&recruitTypeGRADUATE &#xff09;填入内推码&#xff0c;完成投递&#xff0c;get内推绿色通道~我的内推码…

GEO的表达矩阵的探针ID转换成基因名称教程

GEO的表达矩阵的探针ID转换成基因名称教程 前情回顾 根据GSE id自动下载处理GEO数据(必须要运行的模块) 该模块的运行窗口截图 该模块的教程 知乎地址&#xff1a;根据GEO的GSE数据集编号自动下载和处理GEO数据教程: https://zhuanlan.zhihu.com/p/708053447 该根据GSE id…

第1章 初识 Express

1.1 什么是 Express Express 是一个简洁而灵活的 Node.js Web 应用框架&#xff0c;提供了一系列强大的特性用于开发 Web 和移动应用。它基于 Node.js 构建&#xff0c;并且与 Node.js 的非阻塞 I/O 模型无缝集成&#xff0c;使其非常适合于构建高性能的 Web 应用。 主要特点…

idea修改全局配置、idea中用aliyun的脚手架,解决配置文件中文乱码

idea修改全局配置 idea中用aliyun的脚手架&#xff0c;创建springBoot项目 解决配置文件中文乱码

【笔记】虚拟机中的主从数据库连接实体数据库成功后的从数据库不同步问题解决方法2

错误&#xff1a; Last_Errno: 1008 Last_Error: Coordinator stopped because there were error(s) in the worker(s). The most recent failure being: Worker 1 failed executing transaction ANONYMOUS at source log mysql-bin.000014, end_log_pos 200275. See error lo…

JavaWeb(四:Ajax与Json)

一、Ajax 1.定义 Ajax&#xff08;Asynchronous JavaScript And XML&#xff09;&#xff1a;异步的 JavaScript 和 XML AJAX 不是新的编程语言&#xff0c;指的是⼀种交互方式&#xff1a;异步加载。 客户端和服务器的数据交互更新在局部页面的技术&#xff0c;不需要刷新…

剪画小程序:职场上如何提高工作效率?

亲爱的宝子们&#xff0c;不知道你们有没有遇到过这样的情况&#xff1a; 在公司里&#xff0c;老板突然让你整理一份国外产品介绍视频里的关键信息&#xff0c;可那是外语的&#xff0c;听得你一头雾水。 这时候&#xff0c;有什么方法或办法&#xff01;能快速准确地将视频中…

02对话系统---图片的导入

样式 例&#xff1a; 1.<styleH1> Hellow <styleH1>world 效果&#xff1a; 样式表 路径&#xff1a; 插入图片 插入默认图片 2.<sprite0> text<sprite0> 效果&#xff1a; 图集路径&#xff1a; 导入单个图片 给…