生成树协议配置与分析
前言:本博客仅作记录学习使用,部分图片出自网络,如有侵犯您的权益,请联系删除
一、相关知识
1、生成树协议简介
生成树协议(STP)是一种避免数据链路层逻辑环路的机制,它通过信息交互识别环路并阻塞部分端口,形成无环路的树状网络。在网络故障发生时,STP能迅速检测并更新网络拓扑,利用冗余链路实现网络的高可用性和容错能力。
生成树协议利用网桥协议数据单元(BPDU)报文在交换机间交互信息,封装在以太网帧中传输,以确定网络拓扑。通过选举根网桥,非根网桥选择根端口,网段选择指定端口转发数据,其余端口被阻塞,构建无环路的树形结构。这不仅消除了环路问题,还实现了路径冗余,增强了网络的稳定性和可靠性。
现在常用的生成树协议有:生成树协议(Spanning Tree Protocol,STP)、快速生成树协议(Rapid Spanning Tree Protocol,RSTP)和多生成树协议(Multiple Spanning Tree Protocol,MSTP);注意,STP和RSTP基于物理以太网构建生成树;MSTP能通过配置多实例在物理网络上为不同的VLAN建立多个独立的生成树,从而为不同的VLAN提供不同的分组转发路径,以实现负载均衡。
2、相关CLI命令
2.1、设置STP的模式
STP有MSTP、RSTP、STP 3种模式。华为交换机支持这三种,默认采用MSTP:
[Huawei]stp mode ?mstp Multiple Spanning Tree Protocol (MSTP) moderstp Rapid Spanning Tree Protocol (RSTP) modestp Spanning Tree Protocol (STP) mode
2.2、启动STP
华为交换机默认启动STP:
[Huawei]stp enable
2.3、显示STP状态
[Huawei]display stp brief
2.4、配置交换机在指定生成树中的优先级
默认下,华为交换机在指定生成树中优先级是32768(值越小,优先级越高);
[Huawei]stp priority 4096 # 配置交换机在默认生成树实例中的优先级为4096[Huawei]stp instance 1 priority 4096 # 配置交换机在生成树实例1中的优先级为4096
二、建立网络拓扑
三、验证生成树协议的作用
1、测试网络连通性
2、查看STP信息
华为交换机默认启用 MSTP(单实例);执行“display stp brief”命令查看各交换机的 STP 信息和 STP 接口状态信息:
# LSW1 的 STP 信息和 STP 接口状态信息:[LSW1]display stp briefMSTID Port Role STP State Protection0 Ethernet0/0/1 DESI FORWARDING NONE0 Ethernet0/0/2 DESI FORWARDING NONE0 GigabitEthernet0/0/1 DESI FORWARDING NONE0 GigabitEthernet0/0/2 DESI FORWARDING NONE# LSW2 的 STP 信息和 STP 接口状态信息:[LSW2]display stp briefMSTID Port Role STP State Protection0 Ethernet0/0/1 DESI FORWARDING NONE0 Ethernet0/0/2 DESI FORWARDING NONE0 GigabitEthernet0/0/1 DESI FORWARDING NONE0 GigabitEthernet0/0/2 ROOT FORWARDING NONE#LSW3 的 STP 信息和 STP 接口状态信息:[LSW3]display stp briefMSTID Port Role STP State Protection0 Ethernet0/0/1 DESI FORWARDING NONE0 Ethernet0/0/2 DESI FORWARDING NONE0 GigabitEthernet0/0/1 ROOT FORWARDING NONE0 GigabitEthernet0/0/2 ALTE DISCARDING NONE
3种接口角色:
- Root Port(ROOT):根端口,去往根网桥路径开销最小的端口;可正常转发流量;
- Designated Port(DESI):指定端口,负责转发BPDU报文的端口;根网桥上的端口都是指定端口,可正常转发流量;
- Alternate Port(ALTE):阻塞端口,禁止转发流量的端口
可以发现交换机LSW1被作为根网桥,而交换机LSW3的GE0/0/2接口被阻塞。就得到生成树拓扑,避免了环路;
3、关闭STP导致广播风暴
关闭所有交换机的STP:
[LSW1]undo stp enable[LSW2]undo stp enable[LSW3]undo stp enable
测试PC1的ARP缓存,执行ping命令与其他PC的连通性,发现无法连通;
在交换机LSW1的GE0/0/1接口启动抓包,会捕获大量的ARP广播帧和重复的ARP单播帧:
由于停止运行STP后,交换机间产生环路,从而导致广播风暴,交换机无法正常工作;
四、验证单实例生成树对VLAN的作用
恢复启用各交换机的STP:
[LSW1]stp enable[LSW2]stp enable[LSW3]stp enable
1、配置VLAN
在交换机LSW1、LSW2和LSW3中创建VLAN 10、VLAN 20和VLAN 30;
# 进入系统视图步骤省略LSW1:vlan batch 10 20 30int e0/0/1port link-type accessport default vlan 10int e0/0/2port link-type accessport default vlan 30int g0/0/1port link-type accessport default vlan 10int g0/0/2port link-type accessport default vlan 30
对LSW2和LSW3进行类似配置;
2、测试同一VLAN内PC间的连通性
由于MSTP的MST单实例配置模式下多个VLAN共享生成树拓扑,交换机LSW3接口GE0/0/2被阻塞,因此PC3与PC4无法连通;
五、MSTP的多实例配置与验证
在MSTP多实例模式下,若每个实例对应一个VLAN,则可以为每个VLAN生成一个独立的生成树拓扑。配置MST多实例时,同一MST域中,必须具有相同的域名、修订级别和VLAN到MST实例的映射关系
1、配置MST多实例
LSW1:stp region-configuration # 进入 MST 域视图region-name Huawei # 配置 MST 域名为Huaweirevision-level 1 # 配置 MST 修订级别为1,默认为0instance 1 vlan 10 # 指定 VLAN 10 映射到 MST 1instance 2 vlan 20 # 指定 VLAN 20 映射到 MST 2instance 3 vlan 30 # 指定 VLAN 30 映射到 MST 3active region-configuration # 激活 MST 域配置
对交换机LSW2和LSW3做同样配置
2、测试同一VLAN内PC间的连通性
发现PC间均能ping通;执行 display stp brief 查看各交换机的STP信息和STP接口状态信息;可以看到每个 MST 实例都进行独立的生成树计算,在 MST 实例 1、 2、3 的生成树拓扑中,均没有端口被阻塞,因为 VLAN 10、VLAN 20 和 VLAN 30 的拓扑本身就没有环路。
六、配置Trunk链路,验证生成树协议的功能
将交换机LSW1、LSW2和LSW3之间的链路配置为Trunk链路,并允许所有VLAN通过。这样,任何一条链路出现故障,各VLAN都还能保证连通;
七、总结
- 生成树协议用于在一个存在冗余路径的以太网中为终端之间建立没有环路的交换 路径。
-
MSTP 可以基于 VLAN 构建多个生成树拓扑,在实现容错的同时实现负载均衡。
致谢
在此,我要对所有为知识共享做出贡献的个人和机构表示最深切的感谢。同时也感谢每一位花时间阅读这篇文章的读者,如果文章中有任何错误,欢迎留言指正。
学习永无止境,让我们共同进步!!
相关文章:

生成树协议配置与分析
前言:本博客仅作记录学习使用,部分图片出自网络,如有侵犯您的权益,请联系删除 一、相关知识 1、生成树协议简介 生成树协议(STP)是一种避免数据链路层逻辑环路的机制,它通过信息交互识别环路并…...

Golang | Leetcode Golang题解之第287题寻找重复数
题目: 题解: func findDuplicate(nums []int) int {slow, fast : 0, 0for slow, fast nums[slow], nums[nums[fast]]; slow ! fast; slow, fast nums[slow], nums[nums[fast]] { }slow 0for slow ! fast {slow nums[slow]fast nums[fast]}return s…...

【音视频SDL2入门】创建第一个窗口
文章目录 前言创建窗口的流程需要使用的函数1. 初始化 SDL 库2. 创建 SDL 窗口3. 获取与窗口关联的表面SDL_FillRect 函数介绍4. 更新窗口表面5. 延迟一定时间6. 销毁窗口并退出 SDL 库示例代码总结 前言 SDL2(Simple DirectMedia Layer)是一个跨平台的…...

《置身事内:中国政府与经济发展》生活过得好一点,比大多数宏伟更宏伟
《置身事内:中国政府与经济发展》生活过得好一点,比大多数宏伟更宏伟 兰小欢,复旦大学中国社会主义市场经济研究中心、经济学院副教授,上海国际金融与经济研究院研究员。美国弗吉尼亚大学经济学博士。 上海人民出版社 文章目录 《…...

MongoDB教程(十八):MongoDB MapReduce
💝💝💝首先,欢迎各位来到我的博客,很高兴能够在这里和您见面!希望您在这里不仅可以有所收获,同时也能感受到一份轻松欢乐的氛围,祝你生活愉快! 文章目录 引言一、MapRed…...

HTML前端面试题之<iframe>标签
面试题:iframe 标签的作用是什么?有哪些优缺点 ? 讲真,刷这道面试题之前我根本没有接触过iframe,网课没讲过,项目实战没用过,但却在面试题里出现了!好吧,我只能说:前端路漫漫&…...

Docker-Compose实现MySQL之主从复制
1. 主服务器(IP:192.168.186.77) 1.1 docker-compose.yml services:mysql-master:image: mysql:latest # 使用最新版本的 MySQL 镜像container_name: mysql-master # 容器的名称environment:MYSQL_ROOT_PASSWORD: 123456 # MySQL root 用户的密码MYSQL_DATABASE: masterd…...

jetson显卡没有加速,而是在用cpu推理?
jetson的库,特别是使用显卡的库,大多需要单独安装 大概率是重装了pytorch,可以使用jetson官网的pytorch! 下面是官网的链接 PyTorch for Jetson - Announcements - NVIDIA Developer Forums 安装完成之后先使用命令查看是否安…...

Linux下如何安装配置Fail2ban防护工具
Fail2ban是一款在Linux服务器上用于保护系统免受恶意攻击的防护工具。它通过监视系统日志,检测到多次失败的登录尝试或其他恶意行为后,会自动将攻击源的IP地址加入防火墙的黑名单,从而阻止攻击者进一步访问服务器。本文将介绍如何在Linux系统…...

js的深浅拷贝
深浅拷贝是编程中对数据复制的两种不同方式,它们在处理对象和数组等复合数据结构时尤为重要。下面将详细解释这两种拷贝方式。 浅拷贝(Shallow Copy) 浅拷贝创建了原始对象的一个新实例,但这个新实例的属性只是原始对象属性的引…...

实验八: 彩色图像处理
目录 一、实验目的 二、实验原理 1. 常见彩色图像格式 2. 伪彩色图像 3. 彩色图像滤波 三、实验内容 四、源程序和结果 (1) 主程序(matlab (2) 函数FalseRgbTransf (3) 函数hsi2rgb (4) 函数rgb2hsi (5) 函数GrayscaleFilter (6) 函数RgbFilter 五、结果分析 1. …...

Python酷库之旅-第三方库Pandas(048)
目录 一、用法精讲 171、pandas.Series.nlargest方法 171-1、语法 171-2、参数 171-3、功能 171-4、返回值 171-5、说明 171-6、用法 171-6-1、数据准备 171-6-2、代码示例 171-6-3、结果输出 172、pandas.Series.nsmallest方法 172-1、语法 172-2、参数 172-3、…...

springboot爱宠屋宠物商店管理系统-计算机毕业设计源码52726
目录 摘要 1 绪论 1.1 选题背景与意义 1.2国内外研究现状 1.3论文结构与章节安排 2系统分析 2.1 可行性分析 2.2 系统流程分析 2.2.1系统开发流程 2.2.2 用户登录流程 2.2.3 系统操作流程 2.2.4 添加信息流程 2.2.5 修改信息流程 2.2.6 删除信息流程 2.3 系统功能…...

自训练和增量训练word2vec模型
1、自己准备训练语料文件 根据自己的业务场景准备训练数据,比如用户在商城上的同购行为序列或同浏览行为序列。 我们希望通过自己训练业务相关的语料word2vec模型来获得词嵌入、词相关性查询等。 1.1 准备语料库文件 # 示例:准备自己的一个大规模的语…...

华三路由器开启web访问
配置路由器: # 配置Web用户名为admin,认证密码为admin,服务类型为http,用户角色为network-admin。 [Sysname] local-user admin [Sysname-luser-manage-admin] service-type http [Sysname-luser-manage-admin] authorization…...

C++软件开发值得推荐的十大高效软件分析工具
目录 1、概述 2、高效软件工具介绍 2.1、窗口查看工具SPY 2.2、Dependency Walker 2.3、剪切板查看工具Clipbrd 2.4、GDI对象查看工具GDIView 2.5、Process Explorer 2.6、Prcoess Monitor 2.7、API Monitor 2.8、调试器Windbg 2.9、反汇编工具IDA 2.10、抓包工具…...

vue2老项目中node-sass更换dart-sass
更换原因:node-sass经常会出现node版本问题,就很麻烦 卸载项目中的node-sass sass-loader npm uninstall sass-loader sass 安装dart-sas sass-loader 推荐安装sass1.26.2 sass-loader7.3.1 npm install sass-loader7.3.1 sass1.26.2 从新配置vue.…...

源/目的检查开启导致虚拟IP背后的LVS无法正常访问
情况描述 近期发现48网段主机无法访问8.83这个VIP(虚拟IP),环境是 8.83 绑定了两个LVS实例,然后LVS实例转发到后端的nginx 静态资源;整个流程是,客户端发起对VIP的请求,LVS将请求转发到后端实例…...

类和对象(四)
构造函数中的初始化列表 之前在实现构造函数时,主要是在函数体内进行赋值,而构造函数还有另一种初始化方式,通过初始化列表进行初始化。 初始化列表的使⽤⽅式是以⼀个冒号开始,接着是⼀个以逗号分隔的数据成员列表,…...

<PLC><HMI><汇川>在汇川HMI画面中,如何为UI设置全局样式?
前言 汇川的HMI软件是使用了Qt来编写的,因此在汇川的HMI程序编写过程,是支持使用qt的样式来自定义部件样式的,即qss格式。 概述 汇川的软件本身提供三个系统的style样式,我们可以直接使用,但是,如果系统提供的样式不符合你的需求,那么你可以对其进行修改,或者自己新建…...

在Git项目中添加并应用“.gitignore”文件
在Git项目中添加并应用.gitignore文件 创建或修改.gitignore文件: 在项目的根目录下创建一个名为.gitignore的文件。如果已经有此文件,可以直接修改。 在文件中添加您希望Git忽略的文件和目录。例如: # 忽略所有的log文件 *.log# 忽略所有的…...

LeetCode Hot100 搜索二维矩阵
给你一个满足下述两条属性的 m x n 整数矩阵: 每行中的整数从左到右按非严格递增顺序排列。每行的第一个整数大于前一行的最后一个整数。 给你一个整数 target ,如果 target 在矩阵中,返回 true ;否则,返回 false 。…...

iOS中的KVO(Key-Value Observing)详解
iOS中的KVO(Key-Value Observing)详解 一、KVO概述 KVO(Key-Value Observing),即键值观察/监听,是苹果提供的一套事件通知机制。它允许一个对象(观察者)观察/监听另一个对象&#…...

算法 —— 暴力枚举
目录 循环枚举 P2241 统计方形(数据加强版) P2089 烤鸡 P1618 三连击(升级版) 子集枚举 P1036 [NOIP2002 普及组] 选数 P1157 组合的输出 排列枚举 P1706 全排列问题 P1088 [NOIP2004 普及组] 火星人 循环枚举 顾名思…...

构造+有序集合,CF 1023D - Array Restoration
一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 1023D - Array Restoration 二、解题报告 1、思路分析 先考虑合法性检查: 对于数字x,其最左位置和最右位置 之间如果存在数字比x小,则非法 由于q次操作,第q…...

Scrapy 爬取旅游景点相关数据(四)
本节内容主要为: (1)创建数据库 (2)创建数据库表 (3)爬取数据进MYSQL库 1 新建数据库 使用MYSQL数据库存储数据,创建一个新的数据库 create database scrapy_demo;2 新建数据表 CR…...

Vue常用指令及其生命周期
作者:CSDN-PleaSure乐事 欢迎大家阅读我的博客 希望大家喜欢 目录 1.常用指令 1.1 v-bind 1.2 v-model 注意事项 1.3 v-on 注意事项 1.4 v-if / v-else-if / v-else 1.5 v-show 1.6 v-for 无索引 有索引 生命周期 定义 流程 1.常用指令 Vue当中的指令…...

简化数据流:Apache SeaTunnel实现多表同步的高效指南
Apache SeaTunnel除了单表之间的数据同步之外,也支持单表同步到多表,多表同步到单表,以及多表同步到多表,下面简单举例说明如何实现这些功能。 单表 to 单表 一个source,一个sink。 从mysql同步到mysql,…...

均匀圆形阵列原理及MATLAB仿真
均匀圆形阵列原理及MATLAB仿真 目录 前言 一、均匀圆阵原理 二、圆心不存在阵元方向图仿真 三、圆心存在阵元方向图仿真 四、MATLAB仿真代码 总结 前言 本文详细推导了均匀圆形阵列的方向图函数,对圆心不放置阵元和圆心放置阵元的均匀圆形阵列方向图都进行了仿…...

vue2使用univerjs
1、univerjs Univer 提供了一个全面的企业级文档与数据协同的解决方案,支持电子表格、文本文档和演示幻灯片三大核心文档类型。通过灵活的 API 和插件机制,开发者可以在 Univer 的基础上进行个性化功能的定制和扩展,以适应不同用户在不同场景…...