HCIP—快速生成树协议(RSTP)实验配置

news2024/12/25 23:36:07

一、回顾STP和STP的缺点和不足

1.STP的概述:

STP(生成树协议)是一种用于在网络中防止产生环路的链路管理协议。

2.STP的作用:

解决二层环路,防止广播报文产生。但是网络拓扑收敛较慢,影响通信质量。

3.STP的缺点和不足

(1)STP是被动执行,依赖定时器等待的方式判断拓扑变化,收敛速度较慢

(2)STP没有细致区分端口状态和端口角色,不利于初学者学习及部署;

(3)STP算法要求在稳定拓扑中,根桥主动发出配置BPDU报文后,其它设备在进行处理,最终传遍整个STP网络。

二、RSTP对STP的改进

1.RSTP的概述

它是对STP在很多方面对STP进行了优化,它收敛的速度更快,而且能够兼容STP

2.RSTP对STP的改进

改进点1:端口角色

端口角色:RSTP从原本的两个角色变成了四个分别是:根端口、指定端口、Alternate端口和Backup端口。

Alternate端口:替代根端口(Alternate端口就是学习到其它网桥发送的配置BPDU报文而阻塞的端口)。

Backup端口:备份指定端口(Backup端口就是学习到自己的报文而阻塞的端口)。

改进点2:端口状态

从原本的5个端口状态缩减为3个端口状态,分别是

Discarding状态

不转发用户流量也不学习MAC地址

learning状态

不转发用户流量但是学习MAC地址

Forwarding状态

即转发用户流量有学习MAC地址

改进点3:配置BPDU - RST BPDU

RSTP的配置BPDU充分利用了STP中的Flag字段,明确了端口角色

①Type字段:配置BPDU类型不再是0而是2,所运行STP的设备收到配置BPDU是会丢弃。

②Flag字段:使用了原来保留的中间6比特,这种改变的配置BPDU称为RST BPDU。

③在RST BPDU报文格式:

改进点4:配置BPDU的处理发生变化
(1)拓扑稳定后:配置BPDU报文的发送方式

 

(2)更短的BPDU超时时间

 (3)处理次优BPDU

RSTP处理次优BPDU报文不在依赖定时器解决拓扑收敛,同时RSTP的任何端口都会处理次优BPDU,从而加快了拓扑收敛。

改进点5:快速收敛

(1)根端口和指定端口快速切换(因为有替代端口和备份端口)

(2)边缘端口:不再参与RSTP计算,接入后就会立即成为边缘端口,如果接错了,就会丧失了边缘端口的属性,从而成为STP端口

(3)P/A机制:

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

改进点6:拓扑变更机制
(1)判断拓扑是否发生变化唯一标准:

一个非边缘端口迁移到Forwarding状态。

(2)拓扑改变触发条件:

只有非边缘端口转变成为forwarding状态才会改变

(3)拓扑发生变化处理过程:

①为本交换机的所在非边缘端口启动一个TC while timer;

②在这个时间内,清空所有端口上学习到的MAC地址;

③同时,这些端口向外发送BPDU,其中TC置为;

④一旦TC whice timer超时,则停止发送RST BPDU。

三、RSTP的保护功能

保护机制

应用端口

备注

BPDU保护

边缘端口

边缘端口收到BPDU后,把边缘端口shutdown

根保护

指定端口

一旦收到更优的BPDU,把端口进入Discarding。(注:ROOT保护只能在指定端口上配置生效)

TC保护

全局

在单位时间内,只处理指定次数的TC BPDU报文。(注:只能在根端口或Alternate端口上配置才有效)

环路保护

根端口或预备端口

如果根端口或者预备端口长时间收不到来自上游设备的BPDU报文时,端口会进入Discarding状态,角色切换为指定端口,不转发报文,从而不会在网络中形成环路。

四、RSTP与STP的对比

比较的项目

RSTP

STP

端口状态

5个

3个

端口角色

2位

4位

配置BPDU flag位使用

2位

6位

BPDU超时计时

Maxage

Hello timer*3

处理次优BPDU

等待超时

立即回应最有BPDU

稳定后BPDU发送方式

根桥发送

所有交换机

快速收敛

/

P/A机制

边缘端口

/

保护功能

/

4种保护机制

五、实验配置

实验要求:

(1)开启RSTP
(2)把LSW1设置为根网桥,把LSW2设置为备用根网桥
(3) 查看每一台交换机的STP的摘要信息
(4)LSW3、LSW4设置边缘端口和设置BPDU保护
(5)LSW1的GE0/0/1接口设置根保护

实验步骤:

开启RSTP

[LSW1]stp mode rstp

[LSW2]stp mode rstp

[LSW3]stp mode rstp

[LSW4]stp mode rstp

配置根网桥和备用根网桥

[LSW1]stp root primary 

[LSW2]stp root secondary

查看每台交换机的STP信息

LSW1

LSW2

LSW3

LSW4

设置边缘端口和BPDU保护

[LSW3]int g0/0/1 
[LSW3-GigabitEthernet0/0/1]stp edged-port enable
[LSW3-GigabitEthernet0/0/1]q
[LSW3]stp bpdu-protection 

[LSW4]int g0/0/1 
[LSW4-GigabitEthernet0/0/1]stp edged-port enable
[LSW4-GigabitEthernet0/0/1]q
[LSW4]stp bpdu-protection

设置根保护

[LSW1]int g0/0/2
[LSW1-GigabitEthernet0/0/2]stp root-p    
[LSW1-GigabitEthernet0/0/2]stp root-protection 
[LSW1-GigabitEthernet0/0/2]q
[LSW1]int g0/0/3
[LSW1-GigabitEthernet0/0/3]stp root-protection
[LSW1-GigabitEthernet0/0/3]q

实验调试

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

从上图可以看出RSTP抓包的结果

六、总结

 总之,RSTP通过以上改进建议,可以进一步提升网络配置的效率、安全性和稳定性,满足实际部署中的各种需求。

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

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

相关文章

qt QSyntaxHighlighter详解

1、概述 QSyntaxHighlighter是Qt文本处理框架中的一个强大工具,它专门用于实现文本编辑器中的语法高亮功能。通过自定义高亮规则,QSyntaxHighlighter可以实现对代码编辑器、富文本编辑器中的关键字、注释等内容的高亮显示。这一功能对于提升代码的可读性…

PyQt5 加载UI界面与资源文件

步骤一: 使用 Qt Designer 创建 XXX.ui文件 步骤二: 使用 Qt Designer 创建 资源文件 步骤三: Python文件中创建相关类, 使用 uic.loadUi(mainwidget.ui, self ) 加载UI文件 import sys from PyQt5 import QtCore, QtWidgets, uic from PyQt5.QtCore import Qt f…

国家级财经类211/985学科院校招收申请制硕士

国家级财经类211/985学科院校招收申请制硕士 ◎免试入学,边学边考,申硕便捷; ●1.5-2年制,无需辞职,远程学习; ◎考试方式灵活,可多次申考; ●申请考核制,学信网报名注…

Spring Boot - 扩展点 EnvironmentPostProcessor源码分析及真实案例

文章目录 概述EnvironmentPostProcessor 作用EnvironmentPostProcessor 实现和注册创建类并实现接口注册到 Spring Boot常见应用场景 源码分析1. EnvironmentPostProcessor 接口定义2. 扩展点加载流程3. 加载 EnvironmentPostProcessor 实现类4. EnvironmentPostProcessor 执行…

解决表格出现滚动条样式错乱问题

自定义表格出现滚动条时,会因为宽度不对等导致样式错乱; 解决思路: 监听表格数据的变化,当表格出现滚动条时,再调用更新宽度的方法updateWidth,去改变表格头部的宽度,最终保持表格头部和内容对…

.NET中通过C#实现Excel与DataTable的数据互转

在.NET框架中,使用C#进行Excel数据与DataTable之间的转换是数据分析、报表生成、数据迁移等操作中的常见需求。这一过程涉及到将Excel文件中的数据读取并加载至DataTable中,以便于利用.NET提供的丰富数据处理功能进行操作,同时也包括将DataTa…

albert模型实现微信公众号虚假新闻分类

项目源码获取方式见文章末尾! 600多个深度学习项目资料,快来加入社群一起学习吧。 《------往期经典推荐------》 项目名称 1.【基于CNN-RNN的影像报告生成】 2.【卫星图像道路检测DeepLabV3Plus模型】 3.【GAN模型实现二次元头像生成】 4.【CNN模型实现…

java的JJWT 0.91在jdk21中报错的解决方法

参考了很多其他人的办法,只有这种方式可以解决问题 JSON Web Token(缩写 JWT) 目前最流行、最常见的跨域认证解决方案,前端后端都需要会使用的东西 如果根据黑马的视频,导入了阿里云OSS的相关依赖,自然不会…

最高提升20倍吞吐量!豆包大模型团队发布全新 RLHF 框架,现已开源!

文章来源|豆包大模型团队 强化学习(RL)对大模型复杂推理能力提升有关键作用,然而,RL 复杂的计算流程以及现有系统局限性,也给训练和部署带来了挑战。传统的 RL/RLHF 系统在灵活性和效率方面存在不足&#x…

云计算:定义、类型及对企业的影响

💓 博客主页:瑕疵的CSDN主页 📝 Gitee主页:瑕疵的gitee主页 ⏩ 文章专栏:《热点资讯》 云计算:定义、类型及对企业的影响 云计算:定义、类型及对企业的影响 云计算:定义、类型及对企…

RSTP的配置

RSTP相对于STP在端口角色、端口状态、配置BPDU格式、配置BPDU的处理方式、快速收敛机制、拓扑变更机制和4种保护特性方面的详细改进说明: 端口角色: STP中定义了三种端口角色:根端口(Root Port)、指定端口&#xff0…

Fortran安装(vscode+gcc+Python)

编写时间: 2024年11月7日 环境配置: gcc VScode Python 条件: Windows 10 x64 VMware虚拟机 前言 这是我出的第2个关于Fortran安装的教程,由于上一个方法(你可以在本专栏里找到)对储存空间的要求比较…

Ubuntu18.04+ROS环境+moveit UR5机械臂仿真

目录 仿真环境: 1.下载Universal Robots机器人功能包 2.运行 Gazebo中的仿真模型 3.运行moveit运动规划 4.运行rviz并进行轨迹规划 仿真环境: 本文使用版本:Ubuntu18.04 ros版本:ros-melodic-desktop-full,安装…

华为路由策略配置

一、AS_Path过滤 要求: AR1与AR2、AR2与AR3之间建立EBGP连接 AS10的设备和AS30的设备无法相互通信 1.启动设备 2.配置IP地址 3.配置路由器的EBGP对等体连接,引入直连路由 [AR1]bgp 10 [AR1-bgp]router-id 1.1.1.1 [AR1-bgp]peer 200.1.2.2 as-nu…

echarts引入自定义字体不起作用问题记录

echarts引入自定义字体不起作用问题记录 1、问题描述 初始化界面字体不作用,当界面更新后字体样式正常显示 2、原因描述 这通常是由于字体文件加载延迟导致的。ECharts 在初始化时可能还没有加载完字体文件,因此无法正确应用字体样式 3、解决方案 …

Sql server 备份还原方法

备份 方法1,选择对应的数据库名-------》右键 任务---------》备份 默认备份类型 完整 文件后缀 .bak 方法2,选择对应的数据库名-------》右键 任务----------》生成脚本 选择要编写的数据库对象(表,视图,存储过程等) 选择对应的 服…

QT鼠标事件

QT鼠标事件 1.概述 这篇文章介绍如何使用事件和获取事件的信号 2.创建项目 创建一个widget类型项目,在widget.ui文件中添加一个label控件 然后在项目名称上右键选择Add new... 添加文件,选择 C Class 自定义类名Mylabel,选择基类Base …

【Android】webview常用方法和使用

文章目录 前言一、常见用法二、基础属性webView的常用方法WebViewClient的常用方法WebChromeClient的常用方法WebSettings的相关方法 三、加载流程和事件回调四、webview和JS之间的互相调用总结 五、参考链接 前言 最近项目又用到了webview,在回顾复习一次webview相…

malloc calloc和realloc区别和联系

malloc malloc是一个⼀个动态内存开辟的函数: 它的函数原型是void* malloc (size_t size);这个函数向内存申请⼀块连续可⽤的空间,并返回指向这块空间的指针。 1.如果开辟成功,则返回⼀个指向开辟好空间的指针。 2.如果如果开辟失败&#xf…

Android studio中关于printf和print和println的区别

print:为一般输出,同样不能保留精度格式转化,也不能换行输出,输出需要加上换行符printf:常用于格式转换,但需要注意不是换行输出,只用于精度转换,跟C语言的printf一样的,输出需要加上换行符prin…