HCIP-快速生成树RSTP

一、RSTP是什么

STP(Spanning Tree Protocol )是生成树协议的英文缩写。该协议可应用于环路网络,通过一定的算法实现路径冗余,同时将环路网络修剪成无环路的树型网络,从而避免报文在环路网络中的增生和无限循环。

RSTP(rapid spanning Tree Protocol ),即快速生成树协议,最早在IEEE 802.1W-2001中提出,这种协议在网络结构发生变化时,能更快的收敛网络。

在stp上的改进

(1)端口状态的重新划分

RSTP通过端口状态的变化和角色定义来实现快速收敛。在STP上有5种端口状态,在RSTP上变成了3种端口状态

端口状态:学习(Learning)状态:不转发用户流量,但学习MAC地址

转发(Forwarding)状态:既转发用户流量,又学习MAC地址

丢弃(Discarding)状态:不转发用户流量,也不学习MAC地址

(2)通过对端口角色的填补,简化生成树协议的理解及部署。

RSTP有4种端口角色:根端口、指定端口、替代端口、备份端口,增加了替代端口和备份端口

(3)边缘端口

  • 在RSTP中,可以将交换机连接PC的端口配置为边缘端口
  • 边缘端口默认不参与生成树计算,当边缘端口被激活之后,它会立即切换到转发状态并开始收发业务流量,而不哟领经历转发延迟时间,因此工作效率大大提高了
  • 边缘端口的关闭或者激活并不会触发RSTP拓扑变更

(4)快速收敛

  1. RSTP通过引入P/A(Port Role/State Transition)机制,加快了网络的收敛速度。这意味着当网络拓扑发生变化时,RSTP能够比STP更快地重新计算生成树并达到稳定状态。
  2. 根端口和指定端口快速切换(因为有替代端口和备份端口)
  3. 边缘端口不参与RSTP计算,可以由Discarding状态进入Forwarding状态

(5)保护功能

BPDU保护:在正常情况下,边缘端口不会收到RST BPDU,如果有人去伪造RST BPDU恶意攻击交换设备,边缘端口接收到RST BPDU时,交换设备就会将其从边缘端口变成STP端口,加入到STP的计算中,从而引起网络震荡。

交换设备上启用了BPDU保护功能后,如果在边缘端口收到RST BPDU,边缘端口将发生错误并关闭,但边缘端口的属性不变,同时通知网管系统。

根保护:由于维护人员的错误配置或网络中的恶意攻击,根桥有可能收到比自己优先级更高的RST BPDU,从而使根桥失去根地位,从而引起网络拓扑的错误变动,这种情况可能会导致原本应该在高速链路的流量被牵引到低速流量上,导致网络拥塞。

一旦启用根保护功能的指定端口收到优先级更高的RST BPDU,端口将进入Discarding状态,不在转发报文。一段时间后没有接收到优先级较高的RST BPDU,端口就会恢复正常的Forwarding

(根保护只能在指定端口上配置)

环路保护:在启动了环路保护功能,如果根端口或替代端口长时间没有接收到上游设备的BPDU报文,则向网管发出通知信息(这时,根端口会进入Discarding状态,角色也会切换为指定端口),而替代端口则会一直处于Discarding状态,不转发报文,从而不会形成环路。

(环路保护功能只能在根端口或替代端口上配置)

防TC-BPDU攻击交换设备在接收到TC置位的RST BPDU报文后,会执行MAC地址表项的删除操作,如果有人伪造TC置位的RST BPDU报文恶意攻击交换设备时。交换设备短时间内会收到很多RST BPDU报文,频繁的删除操作胡给设备造成很大的负担,给网络的稳定带来很大的隐患。

启用防TC-BPDU攻击功能后,在单位时间内,交换设备处理TC BPDU报文的次数可配置。

(6)P/A机制

RSTP通过P/A机制加快了上游端口进入Forwarding状态的速度

对于STP,指定端口的选择可以很快完成,主要的速度瓶颈在于:为了避免环路,必须等待足够长的时间,使全网的端口状态全部确定,也就是说必须等待至少一个Forward Delay所有的端口才能进行转发。

而RSTP的主要目的就是消除这个瓶颈,通过阻塞自己的非根端口来保证不会出现环路。而使用P/A机制加快了这个过程

二、为什么有STP后还要使用RSTP

生成树协议(STP)是一种网络协议,用于防止局域网中的物理环路。它通过构建一个逻辑上的无环拓扑结构,确保网络中任意两个节点间只有一条路径,从而避免广播风暴和数据包的无限循环。然而,尽管STP在避免环路方面非常有效,但它也存在一些局限性,特别是在大型网络或需要快速恢复的网络环境中。

以下是为什么在有STP的基础上还需要使用快速生成树协议(RSTP)的主要原因:

  1. 更快的收敛时间:传统的STP在检测到网络拓扑变化时,可能需要较长的时间来重新计算生成树并更新端口状态。这可能导致网络在一段时间内不可用或性能下降。RSTP通过引入快速收敛机制,如快速配置BPDU和提议/同意机制,显著减少了拓扑变化后的收敛时间。

  2. 更高效的端口角色管理:RSTP引入了替代端口和备份端口的概念,这些端口在主端口失效时可以快速接管转发任务,而不需要等待整个生成树的重新计算。这提高了网络的冗余性和可靠性。

  3. 后向兼容:RSTP设计为向后兼容传统STP,这意味着它可以在不更改现有STP基础设施的情况下部署。这对于希望逐步升级网络设备的组织来说是一个重要优势。

  4. 更好的互操作性:由于RSTP是基于IEEE 802.1D标准的一部分,它得到了广泛的行业支持和兼容性。这使得不同厂商的设备能够更好地互操作,简化了网络设计和实施。

  5. 增强的故障恢复能力:RSTP通过边缘端口(Edge Ports)的概念,允许直接连接终端设备的端口在接入时快速过渡到转发状态,无需经过传统的监听和学习阶段。这减少了设备上线时的延迟,并提高了网络的整体稳定性。

三、RSTP的工作过程

RSTP收敛与STP收敛过程类似

在网络初始化时,网络中的所有RSTP交换机都认为自己是根桥,并设置每个端口为指定端口,发送RST BPDU。其中一个交换机最优,最终被选举为根桥

上游链路的设备互联端口收敛过程

每个交换机认为自己是根桥会生成一个RST BPDU报文来协商指定网段的端口状态。

当一个端口收到RST BPDU报文时,此端口会比较收到的RST BPDU报文和本地RST BPDU报文。如果本地的RST BPDU报文优于接收到的RST BPDU报文,则端口会丢弃接收到的RST BPDU报文,并发送Proposal置位的本地RST BPDU报文来回复对端设备

下游链路的设备互联端口会进入慢收敛过程

四、RSTP实验

实验目的:
1. 熟悉RSTP的应用场景
2. 掌握RSTP的配置方法


实验步骤:
1. 开启RSTP
2. 把LSW1设置为根网桥,把LSW2设置为备用根网桥//
[LSW1]stp root primary
[LSW2]stp root secondary
3. 查看每一台交换机的STP的摘要信息
4. 设置边缘端口//
[LSW3-G0/0/1]stp edged-port enable 
[LSW4-G0/0/1]stp edged-port enable
5. 设置BPDU保护//
[LSW3]stp bpdu-protection
[LSW4]stp bpdu-protection
6. 设置根保护//
[LSW1-GigabitEthernet0/0/2]stp root-protection 
[LSW1-GigabitEthernet0/0/3]stp root-protection 

LSW1配置
[LS1]stp mode rstp
[LS1]stp root primary    //把LSW1的优先级改为0,变成主根网桥 
[LS1]display stp brief    //查看端口状态
MSTID  Port                        Role  STP State     Protection
   0    GigabitEthernet0/0/2        DESI  FORWARDING      NONE
   0    GigabitEthernet0/0/3        DESI  FORWARDING      NONE

[LS1]interface g0/0/2
[LS1-GigabitEthernet0/0/2]stp root-protection     //设置根保护
[LS1]interface g0/0/3    
[LS1-GigabitEthernet0/0/3]stp root-protection     //设置根保护

LSW2配置
[LSW2]stp mode rstp
[LSW2]stp root secondary    //把LSW2的优先级改为4096,变成备用网桥
[LSW2]display stp brief
 MSTID  Port                        Role  STP State     Protection
   0    GigabitEthernet0/0/3        ROOT  FORWARDING      NONE
   0    GigabitEthernet0/0/4        DESI  FORWARDING      NONE

LSW3配置
[LSW3]stp mode rstp
[LSW3]display stp brief
 MSTID  Port                        Role  STP State     Protection
   0    GigabitEthernet0/0/1        DESI  FORWARDING      NONE
   0    GigabitEthernet0/0/2        ROOT  FORWARDING      NONE
   0    GigabitEthernet0/0/5        DESI  FORWARDING      NONE
[LSW3]interface g0/0/1
[LSW3-GigabitEthernet0/0/1]stp edged-port enable
[LSW3]stp bpdu-protection     //设置BPDU保护

LSW4配置
[LSW4]stp mode rstp
[LSW4]display stp brief
 MSTID  Port                        Role  STP State     Protection
   0    GigabitEthernet0/0/1        DESI  FORWARDING      NONE
   0    GigabitEthernet0/0/4        ROOT  FORWARDING      NONE
   0    GigabitEthernet0/0/5        ALTE  DISCARDING      NONE
[LSW4]interface g0/0/1
[LSW4-GigabitEthernet0/0/1]stp edged-port enable
[LSW4]stp bpdu-protection     //设置BPDU保护
实验测试

抓取LSW1的G0/0/2接口的数据包进行分析

  • BPDU flags: 0x7c:这是一个16进制数,表示BPDU的标志位。在二进制中,它表示为0111 1100。

  • Agreement: Yes:这意味着发送和接收BPDU的设备之间已经就网络拓扑达成一致,即它们同意当前的网络结构。

  • Forwarding: Yes:这表示该端口当前处于转发状态,可以传输数据包。

  • Learning: Yes:这表示该端口正在学习MAC地址,以便构建和维护MAC地址表。

  • Port Role: Designated (3):这表示该端口的角色是指定端口(Designated Port)。在STP中,每个网络段都会选择一个端口作为指定端口,负责向其他端口转发数据。这里的数字“3”可能是一个特定的标识符或者是一个错误,因为在标准的STP中,端口角色通常用不同的名称来标识,如根端口(Root Port)、指定端口(Designated Port)和非指定端口(Non-Designated Port),而不是数字。

  • Topology Change Acknowledgment: No:这表示没有收到拓扑变化确认消息。当网络拓扑发生变化时,设备会发送TCA(Topology Change Acknowledgment)消息来通知其他设备。

  • Proposal: No:这表示没有提议信息。在某些版本的STP中,设备可能会提出改变网络结构的提议。

  • Topology Change: No:这表示没有检测到网络拓扑的变化。

五、总结

RSTP通过引入新的机制和优化传统STP的操作,提供了更快的网络恢复时间和更高的效率,特别是在现代网络环境中,这种改进尤为重要。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

如何在CentOS 7上搭建SMB服务

如何在CentOS 7上搭建SMB服务 因项目测试需求,需要自行搭建SMB服务,**SMB(Server Message Block)**协议是一种常用的文件共享方式,它可以让不同操作系统之间共享文件、打印机等资源。本文将带你一步步搭建一个简单的S…

Elasticsearch中什么是倒排索引?

倒排索引(Inverted Index)是一种索引数据结构,它在信息检索系统中被广泛使用,特别是在全文搜索引擎中。倒排索引允许系统快速检索包含给定单词的文档列表。它是文档内容(如文本)与其存储位置之间的映射&…

部署DNS域名解析服务

部署DNS域名解析服务 一.DNS介绍 域名 Domain Name,简称域名、网域,是由一串用点分隔的名字组成的 Intermet 上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位。具有独一无二,不可重复的特性。 DNS 域名…

Springboot 使用EasyExcel导出含图片并设置样式的Excel文件

Springboot 使用EasyExcel导出含图片并设置样式的Excel文件 Excel导出系列目录:★★★★尤其注意:引入依赖创建导出模板类逻辑处理controllerservice 导出效果总结 Excel导出系列目录: 【Springboot 使用EasyExcel导出Excel文件】 【Springb…

ubuntu18.04 安装与卸载NCCL conda环境安装PaddlePaddle

cuda版本11.2 说明PaddlePaddle需要安装NCCL 1、Log in | NVIDIA Developer 登录官网 找到对应版本 官方提供了多种安装方式,本文使用Local installers (x86)本地安装 点击对应的版本下载如: nccl-local-repo-ubuntu1804-2.8.4-cuda11.2_1.0-1_amd6…

FPGA实现以太网(二)、初始化和配置PHY芯片

系列文章目录 FPGA实现以太网(一)、以太网基础知识 文章目录 系列文章目录一、MDIO协议介绍二、PHY芯片管脚以及结构框图三、MDIO帧时序介绍3.1 MDIO帧格式3.2 MDIO写时序3.3 MDIO读时序 四、PHY芯片常用寄存器描述4.1 基本模式控制寄存器(0…

leetcode day10 动态规划篇 64+139

64 最小路径和 给定一个包含非负整数的 m x n 网格 grid &#xff0c;请找出一条从左上角到右下角的路径&#xff0c;使得路径上的数字总和为最小。 说明&#xff1a;每次只能向下或者向右移动一步。 m grid.lengthn grid[i].length1 < m, n < 2000 < grid[i][j]…

【系统面试篇】其他相关题目——虚拟内存、局部性原理、分页、分块、页面置换算法

目录 一、相关问题 1. 什么是虚拟内存&#xff1f;为什么需要虚拟内存&#xff1f; &#xff08;1&#xff09;内存扩展 &#xff08;2&#xff09;内存隔离 &#xff08;3&#xff09;物理内存管理 &#xff08;4&#xff09;页面交换 &#xff08;5&#xff09;内存映…

【论文复现】ChatGPT多模态命名实体识别

&#x1f4dd;个人主页&#x1f339;&#xff1a;Eternity._ &#x1f339;&#x1f339;期待您的关注 &#x1f339;&#x1f339; ❀ChatGPT ChatGPT辅助细化知识增强&#xff01;1. 研究背景2. 模型结构和代码3. 任务流程第一阶段&#xff1a;辅助精炼知识启发式生成第二阶段…

深度学习之循环神经网络(RNN)

1 为什么需要RNN&#xff1f; ​ 时间序列数据是指在不同时间点上收集到的数据&#xff0c;这类数据反映了某一事物、现象等随时间的变化状态或程度。一般的神经网络&#xff0c;在训练数据足够、算法模型优越的情况下&#xff0c;给定特定的x&#xff0c;就能得到期望y。其一…

【从零开始的LeetCode-算法】3238. 求出胜利玩家的数目

给你一个整数 n &#xff0c;表示在一个游戏中的玩家数目。同时给你一个二维整数数组 pick &#xff0c;其中 pick[i] [xi, yi] 表示玩家 xi 获得了一个颜色为 yi 的球。 如果玩家 i 获得的球中任何一种颜色球的数目 严格大于 i 个&#xff0c;那么我们说玩家 i 是胜利玩家。…

GIT的基本使用与进阶

GIT的简单入门 一.什么是git&#xff1f; Git 是一个开源的分布式版本控制系统&#xff0c;用于跟踪文件更改、管理代码版本以及协作开发。它主要由 Linus Torvalds 于 2005 年创建&#xff0c;最初是为 Linux 内核开发而设计的。如今&#xff0c;Git 已经成为现代软件开发中…

ReactPress:功能全面的开源发布平台

ReactPress Github项目地址&#xff1a;https://github.com/fecommunity/reactpress 欢迎Star。 此项目是用于构建博客网站的&#xff0c;包含前台展示、管理后台和后端。 此项目是基于 React antd NestJS NextJS MySQL 的&#xff0c;项目已经开源&#xff0c;项目地址在 …

C++初阶——vector

一、什么是vector vector是表示可变大小的数组的序列容器&#xff0c;就像数组一样&#xff0c;vector也采用连续空间来存储元素。也就是说它的访问和数组一样高效&#xff0c;但是它的大小是动态可变的&#xff0c;并且它的大小会被容器自动处理。 二、vector的构造 常用的构…

sql专题 之 where和join on

文章目录 前言where介绍使用过滤结果集关联两个表 连接外连接内连接自然连接 使用inner join和直接使用where关联两个表的区别总结 前言 从数据库查询数据时&#xff0c;一张表不足以查询到我们想要的数据&#xff0c;更多的时候我们需要联表查询。 联表查询我们一般会使用连接…

服务器数据恢复—分区结构被破坏的reiserfs文件系统数据恢复案例

服务器数据恢复环境&#xff1a; 一台服务器中有一组由4块SAS硬盘组建的RAID5阵列&#xff0c;上层安装linux操作系统统。分区结构&#xff1a;boot分区LVM卷swap分区&#xff08;按照顺序&#xff09;&#xff0c;LVM卷中划分了一个reiserfs文件系统作为根分区。 服务器故障…

文章解读与仿真程序复现思路——电网技术EI\CSCD\北大核心《基于稳态信息和条件分布自适应的风电场阻抗智能辨识和稳定性评估》

本专栏栏目提供文章与程序复现思路&#xff0c;具体已有的论文与论文源程序可翻阅本博主免费的专栏栏目《论文与完整程序》 论文与完整源程序_电网论文源程序的博客-CSDN博客https://blog.csdn.net/liang674027206/category_12531414.html 电网论文源程序-CSDN博客电网论文源…

vue反向代理配置及宝塔配置

vue生产环境和开发环境 反向代理 正向代理 宝塔面板配置 本地小皮面板---NginxApache解决方案_小皮面板反向代理-CSDN博客 上面这个链接供大家参考&#xff0c;我这里面提取vue配置反向代理格式 在vite.config.js页面写入 server: {proxy: {"/api": {target: "…

【NOIP普及组】统计单词数

【NOIP普及组】统计单词数 &#x1f490;The Begin&#x1f490;点点关注&#xff0c;收藏不迷路&#x1f490; 一般的文本编辑器都有查找单词的功能&#xff0c;该功能可以快速定位特定单词在文章中的位置&#xff0c;有的还能统计出特定单词在文章中出现的次数。 现在&#x…

uni-app中使用 unicloud 云开发平台③

文章目录 六、hbuilderX 中使用 unicloud 云开发平台文档传统业务开发流程什么是 unicloudunicloud 优点开发流程uncloud 构成云数据库云存储及 CDN创建云函数工程七、unicloud api 操作云函数调用云函数实现云数据库基本增删改查1. 获取数据库引用云存储操作六、hbuilderX 中使…