【ENSP】链路聚合的两种模式
【ENSP】链路聚合的两种模式
- 1、背景介绍
- 2、链路聚合的使用场景
- 3、配置过程
- 1、手工模式Eth-Trunk配置
- 2、静态LACP模式Eth-Trunk
- 4、总结
1、背景介绍
随着网络规模的不断扩大,人们对骨干链路的带宽吞吐量和可靠性提出了越来越高的要求。在传统方案中,为了增加带宽,通常需要将当前链路更换为更高速的链路。然而,这种方法不仅成本高昂,而且灵活性较差。为了克服这些限制,链路聚合技术应运而生。通过将多个物理接口捆绑为一个逻辑接口实现增大链路带宽的目的。在实现增大带宽目的的同时,链路聚合采用备份链路的机制,可以有效的提高设备之间链路的可靠性。链路聚合技术有两种模式:手工模式、LACP模式(包括静态和动态两种)。
2、链路聚合的使用场景
链路聚合工作模式如何选择呢?
如果两端设备均支持LACP协议,推荐使用LACP模式链路聚合。
如果对端设备不支持LACP协议,必须使用手工模式链路聚合。

链路聚合的使用场景比较多,常见的几种可以参考知乎链接
6种链路聚合的使用场景,哪一种更适合你呢?
接下来以交换机直连为例来展示下手工模式、LACP静态模式的配置过程。
备注说明:LACP动态模式由于本机模拟器未安装CE系列设备,有兴趣的朋友可以参考华为官方文档:
CloudEngine 16800系列交换机 > 产品文档
3、配置过程
网络拓扑图如下所示,交换机SWA和SWB之间存在多条链路,如果不配置链路聚合,两台交换机之间会形成环路,交换机的stp技术会阻塞其中两条链路的端口,导致只有一条链路可用,这样会起不到通过增加链路提高带宽的作用了。因此这里采用链路聚合技术,将多条物理链路逻辑成一条链路来传输数据,达到提高带宽来实现流量的负载均衡,同时也能提供一定的冗余度,保证数据传输和链路的可靠性。

接下来详细展示手工模式、静态LACP模式的具体配置过程。
1、手工模式Eth-Trunk配置
操作步骤
1、在SWA和SWB上分别创建Eth-Trunk1,配置为手工模式和添加接口。
#配置SWA
[Huawei]sysname SWA
[SWA]int eth-trunk 1
[SWA-Eth-Trunk1]mode manual
[SWA-Eth-Trunk1]trunkport g0/0/1 #逐个添加接口
[SWA-Eth-Trunk1]trunkport g0/0/2
[SWA-Eth-Trunk1]trunkport g0/0/3
[SWA-Eth-Trunk1]quit
#配置SWB
[Huawei]sysname SWB
[SWB]int eth-trunk 1
[SWB-Eth-Trunk1]mode manual
[SWB-Eth-Trunk1]trunkport g0/0/1 to g0/0/3 #向Eth-Trunk接口中加入成员接口
[SWB-Eth-Trunk1] quit
2、配置Eth-Trunk1的负载分担方式。SWB的配置与SWA类似,不再赘述。本实验中使用的交换机型号是华为S5700,它的默认负载分担方式是src-dst-ip。要根据实际场景选择合适的负载分担算法才能有效提升带宽,这里以基于src-dst-mac为例来配置。
负载均衡的方式有6种,具体如下图所示:
其中,
dst-ip:配置Eth-Trunk接口基于目的IP地址进行负载分担。
dst-mac:配置Eth-Trunk接口基于目的MAC地址进行负载分担。
src-dst-ip:配置Eth-Trunk接口基于源IP地址与目的IP地址进行负载分担。
src-dst-mac:配置Eth-Trunk接口基于源MAC地址与目的MAC地址进行负载分担。
src-ip:配置Eth-Trunk接口基于源IP地址进行负载分担。
src-mac:配置Eth-Trunk接口基于源MAC地址进行负载分担。
具体配置命令:
[SWA]int eth-trunk 1
[SWA-Eth-Trunk1]load-balance src-dst-mac
[SWA-Eth-Trunk1]quit
3、检查配置结果
在任意视图下执行display eth-trunk 1命令,检查Eth-Trunk是否创建成功,及成员接口是否正确加入。
从以上信息看出Eth-Trunk 1中包含3个成员接口g0/0/1、g0/0/2、g0/0/3,成员接口的状态都为Up。Eth-Trunk 1的“Operate status”为Up。负载分担方式为:基于源目MAC地址进行负载分担。
这里是引用
2、静态LACP模式Eth-Trunk
操作步骤
1、在SWA和SWB上分别创建Eth-Trunk1,配置为静态LACP模式和添加接口。
#配置SWA
[Huawei]sysname SWA
[SWA]int eth-trunk 1
[SWA-Eth-Trunk1]mode lacp-static
[SWA-Eth-Trunk1]trunkport GigabitEthernet 0/0/1 #测试单个接口添加
[SWA-Eth-Trunk1]trunkport GigabitEthernet 0/0/2 to 0/0/3
[SWA-Eth-Trunk1]quit
#配置SWB
[Huawei]sysname SWB
[SWB]int eth-trunk 1
[SWB-Eth-Trunk1]trunkport g0/0/1 to g0/0/3 #多个接口一起添加为eth-trunk 1的成员
[SWB-Eth-Trunk1] quit
2、在SWA上配置系统优先级为100,使其成为LACP主动端
[SWA]lacp priority 100 #系统lacp优先级缺省设置是32768,修改SWA优先级大于SWB优先级,让SWA成为主动端。
3、在SWA上配置活动接口上限阈值为2
[SWA]int eth-trunk 1
[SWA-Eth-Trunk1]max active-linknumber 2 # 活动接口数的上限阈值缺省是8,修改为2;
[SWA-Eth-Trunk1]q
4、在SWA上配置接口优先级确定活动链路
[SWA]int g0/0/2
[SWA-GigabitEthernet0/0/2]lacp pri
[SWA-GigabitEthernet0/0/2]lacp priority 100
[SWA]int g0/0/1
[SWA-GigabitEthernet0/0/1]lacp pri
[SWA-GigabitEthernet0/0/1]lacp priority 100
5.1、检查配置结果1
查看SWA和SWB的Eth-Trunk信息,查看链路是否协商成功。
从以上信息看出Eth-Trunk 1中包含3个成员接口g0/0/1、g0/0/2、g0/0/3,根据第四步设置了接口优先级,应该优先选择g0/0/1和g0/0/2为活动接口。查找原因是因为未配置LACP抢占功能。
配置LACP抢占功能:
[SWA]int Eth-Trunk 1
[SWA-Eth-Trunk1]lacp preempt enable
5.2、检查配置结果2
符合预期,g0/0/1和g0/0/2被选取位活动接口,活动接口是根据优先级值低,其优先级高来选取的。
4、总结
以太网链路聚合Eth-Trunk简称链路聚合,通过将多个物理接口捆绑为一个逻辑接口,可以在不进行硬件升级的条件下,达到增加链路带宽的目的。链路聚合技术主要有以下三个优势:
- 增加带宽:链路聚合接口的最大带宽可以达到各成员接口带宽之和。
- 提高可靠性:当某条活动链路出现故障时,流量可以切换到其他可用的成员链路上,从而提高链路聚合接口的可靠性。
- 负载分担:在一个链路聚合组内,可以实现在各成员活动链路上的负载分担。
相关文章:
【ENSP】链路聚合的两种模式
【ENSP】链路聚合的两种模式 1、背景介绍2、链路聚合的使用场景3、配置过程1、手工模式Eth-Trunk配置2、静态LACP模式Eth-Trunk 4、总结 1、背景介绍 随着网络规模的不断扩大,人们对骨干链路的带宽吞吐量和可靠性提出了越来越高的要求。在传统方案中,为…...
Windows环境安装部署minimind步骤
Windows环境安装部署minimind步骤 必要的软件环境 git git,可下载安装版,本机中下载绿色版,解压到本地目录下(如:c:\soft\git.win64),可将此路径添加到PATH环境变量中,供其他程序…...
让大模型帮我设计crnn网络及可运行demo,gpt4o豆包qwendeepseek-r1
prompt 使用 crnn 提取图像特征,给出图像好坏的二分类结果,写清楚代码备注,注释清楚向量维度大小,并给出一个可运行的 demo1、GPT-4o 以下是一个使用 CRNN(Convolutional Recurrent Neural Network)提取图…...
代码随想录-- 第一天图论 --- 岛屿的数量
99 统计岛屿的数量 c 99. 岛屿数量 #include <iostream> #include <vector> #include <queue>using namespace std;struct MGraph {int numVertices, numEdges;vector<vector<int>> Edge; };int dir[4][2] {{1, 0}, {0, 1}, {-1, 0}, {0, -1}…...
Mybatis MyBatis框架的缓存 一级缓存
1. 缓存的概念 缓存的概念 在内存中临时存储数据,速度快,可以减少数据库的访问次数。经常需要查询,不经常修改的数据,不是特别重要的数据都适合于存储到缓存中。 2.Mybatis缓存 mybatis包含了一个非常强大的查询缓存特性&#…...
Weboffice在线Word权限控制:限制编辑,只读、修订、禁止复制等
在现代企业办公中,文档编辑是一项常见且重要的任务。尤其是在线办公环境中,员工需要在网页中打开和编辑文档,但如何确保这些文档只能进行预览而无法被编辑或复制,成为许多企业面临的一个痛点。尤其是在处理涉密文档时,…...
RT-Thread+STM32L475VET6实现呼吸灯
文章目录 前言一、板载资源资源说明二、具体步骤1.新建rt_thread项目2. 打开PWM设备驱动3. 在Stm32CubeMX配置定时器3.1打开Stm32CubeMX3.2 使用外部高速时钟,并修改时钟树3.3打开定时器1,并配置通道一为PWM输出模式(定时器根据自己需求调整)3.4 打开串口…...
【Web前端开发精品课 HTML CSS JavaScript基础教程】第二十四章课后题答案
文章目录 问题1:问题2:问题3: 问题1: 在HTML中嵌入JavaScript,应该使用的标签是( )。 选项: A. <style></style> B. <script></script> C. <js><…...
记录 pycharm 无法识别提示导入已有的模块解决方案 No module named ‘xxx‘
在windows下,使用pycharm开发项目,每个项目都有自己独立的虚拟环境,有时候就会出现,在该项目中明明已经安装了某个模块,但是在写代码的时候就是导入不了,无法识别导入,在运行的时候却又是正常的…...
网工项目实践2.6 广域网需求分析及方案制定
本专栏持续更新,整一个专栏为一个大型复杂网络工程项目。阅读本文章之前务必先看《本专栏必读》。 全网拓扑展示 一.广域网互联方式 1.专线 优点 稳定 独享。绝对安全。可靠性高,带宽高,完全取决于终端接口。 缺点: 费用高。建设时间长。难…...
【架构】分层架构 (Layered Architecture)
一、分层模型基础理论 模型是一种常见的软件设计架构,它将软件系统按照功能划分为不同的层次,每个层次都有特定的职责和功能…...
玩客云 IP查找
1.玩客云使用静态IP在不同网段路由器下不能使用,动态不好找IP地址 1.1使用python3 实现自动获取发送 import requests import os import socket# 从环境变量获取 PushPlus 的 token 和群组编码 PUSH_PLUS_TOKEN os.getenv("PUSH_PLUS_TOKEN") PUSH_PLU…...
Android - Handler使用post之后,Runnable没有执行
问题:子线程创建的Handler。如果 post 之后,在Handler.removeCallbacks(run)移除了,下次再使用Handler.postDelayed(Runnable)接口或者使用post时,Runnable是没有执行。导致没有收到消息。 解决办法:只有主线程创建的…...
MyBatis-Plus之通用枚举
MyBatis-Plus之通用枚举 前言 MyBatis-Plus中提供了通用枚举,简单来说就是将数据库中的某一字段的代替的含义转换成真实的含义将数据展示给用户,用户在存储时也会将真实值转换成代替的数字存入到数据库中。举个例子:用户性别在数据库中存储…...
基于Spring Boot的图书管理系统设计与实现(LW+源码+讲解)
专注于大学生项目实战开发,讲解,毕业答疑辅导,欢迎高校老师/同行前辈交流合作✌。 技术范围:SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容:…...
如何在 VS Code 中快速使用 Copilot 来辅助开发
在日常开发中,编写代码往往是最耗时的环节之一。而 GitHub Copilot,作为一款 AI 编码助手,可以帮助开发者 自动补全代码、生成代码片段,甚至直接编写完整的函数,大幅提升编码效率。那么,如何在 VS Code 中快…...
12.1 Android中协程的基本使用
文章目录 前言1、导入依赖2、使用协程获取服务器中的数据2.1 定义请求回调结果的数据类2.2 网络请求 3、网络回调结构4、通过ViewModel处理网络请求数据 前言 在使用协程的时候一直没有一个具体的概念,只知道协程能够使得异步操作等同于同步操作,且不会…...
【黑马点评优化】2-Canel实现多级缓存(Redis+Caffeine)同步
【黑马点评优化】2-Canel实现多级缓存(RedisCaffeine)同步 0 背景1 配置MySQL1.1 开启MySQL的binlog功能1.1.1 找到mysql配置文件my.ini的位置1.1.2 开启binlog 1.2 创建canal用户 2 下载配置canal2.1 canal 1.1.5下载2.2 配置canal2.3 启动canal2.4 测试…...
php-fpm
摘要 php-fpm(fastcgi process manager)是PHP 的FastCGI管理器,管理PHP的FastCGI进程,提升PHP应用的性能和稳定性 php-fpm是一个高性能的php FastCGI管理器,提供了更好的php进程管理方式,可以有效的控制内存和进程,支…...
Python3测试开发面试题2
python的内存池机制 在Python中,内存管理是通过Python的内存管理器和C语言实现的,特别是依赖于CPython的实现。CPython使用一种名为“内存池”(memory pool)的技术来优化小对象(如小整数、短字符串等)的内…...
Cesium1.95中高性能加载1500个点
一、基本方式: 图标使用.png比.svg性能要好 <template><div id"cesiumContainer"></div><div class"toolbar"><button id"resetButton">重新生成点</button><span id"countDisplay&qu…...
java调用dll出现unsatisfiedLinkError以及JNA和JNI的区别
UnsatisfiedLinkError 在对接硬件设备中,我们会遇到使用 java 调用 dll文件 的情况,此时大概率出现UnsatisfiedLinkError链接错误,原因可能有如下几种 类名错误包名错误方法名参数错误使用 JNI 协议调用,结果 dll 未实现 JNI 协…...
什么是库存周转?如何用进销存系统提高库存周转率?
你可能听说过这样一句话: “利润不是赚出来的,是管出来的。” 尤其是在制造业、批发零售、电商这类“货堆成山”的行业,很多企业看着销售不错,账上却没钱、利润也不见了,一翻库存才发现: 一堆卖不动的旧货…...
Maven 概述、安装、配置、仓库、私服详解
目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...
基于Java+MySQL实现(GUI)客户管理系统
客户资料管理系统的设计与实现 第一章 需求分析 1.1 需求总体介绍 本项目为了方便维护客户信息为了方便维护客户信息,对客户进行统一管理,可以把所有客户信息录入系统,进行维护和统计功能。可通过文件的方式保存相关录入数据,对…...
深度学习水论文:mamba+图像增强
🧀当前视觉领域对高效长序列建模需求激增,对Mamba图像增强这方向的研究自然也逐渐火热。原因在于其高效长程建模,以及动态计算优势,在图像质量提升和细节恢复方面有难以替代的作用。 🧀因此短时间内,就有不…...
C++.OpenGL (20/64)混合(Blending)
混合(Blending) 透明效果核心原理 #mermaid-svg-SWG0UzVfJms7Sm3e {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-SWG0UzVfJms7Sm3e .error-icon{fill:#552222;}#mermaid-svg-SWG0UzVfJms7Sm3e .error-text{fill…...
CVPR2025重磅突破:AnomalyAny框架实现单样本生成逼真异常数据,破解视觉检测瓶颈!
本文介绍了一种名为AnomalyAny的创新框架,该方法利用Stable Diffusion的强大生成能力,仅需单个正常样本和文本描述,即可生成逼真且多样化的异常样本,有效解决了视觉异常检测中异常样本稀缺的难题,为工业质检、医疗影像…...
怎么开发一个网络协议模块(C语言框架)之(六) ——通用对象池总结(核心)
+---------------------------+ | operEntryTbl[] | ← 操作对象池 (对象数组) +---------------------------+ | 0 | 1 | 2 | ... | N-1 | +---------------------------+↓ 初始化时全部加入 +------------------------+ +-------------------------+ | …...
字符串哈希+KMP
P10468 兔子与兔子 #include<bits/stdc.h> using namespace std; typedef unsigned long long ull; const int N 1000010; ull a[N], pw[N]; int n; ull gethash(int l, int r){return a[r] - a[l - 1] * pw[r - l 1]; } signed main(){ios::sync_with_stdio(false), …...





