MSTP/RSTP的保护功能

目录

原理概述

实验目的

实验内容

实验拓扑

1.配置RSTP/MSTP

2.配置BPDU保护

3.配置根保护

4.配置环路保护

5.配置TC-BPDU保护


原理概述

在RSTP或MSTP交换网络中,为了防止恶意攻击或临时环路的产生,可配置保护功能来增强网络的健壮性和安全性。

BPDU 保护:在交换设备上,通常将直接与用户终端或文件服务器等非交换设备相连的端口配置为边缘端口,边缘端口一般不会收到 BPDU 。如果有人伪造 BPDU 恶意攻击交换设备,边缘端口接收到 BPDU 后,交换设备会自动将边缘端口设置为非边缘端口,并重新进行生成树计算,从而引起网络震荡。交换设备上启动了 BPDU 保护功能后,如果边缘端口收到 BPDU ,那么边缘端口将被关闭,但是边缘端口属性不变,同时通知网管系统。被关闭的边缘端口只能由网络管理员手动恢复。如果需要被关闭的边缘端口自动恢复,可以配置端口自动恢复功能,并设置延迟时间。
根保护:由于维护人员的错误配置或网络中的恶意攻击,网络中的合法根交换机有可能会收到优先级更高的 BPDU ,使得合法根交换机失去根交换机的地位,从而引起网络拓扑结构的错误变动。这种不合法的拓扑变化,可能会导致原来应该通过高速链路的流量被牵引到低速链路上,造成网络拥塞。对于启用了根保护功能的指定端口,其端口角色不能成为根端口。一旦启用根保护功能的指定端口收到优先级更高的 BPDU 时,端口将进入 Discarding 状态,不再转发报文。在经过一段时间(通常为两倍的 Forward Delay )后,如果端口一直没有再收到优先级更高的 BPDU ,端口会自动恢复到正常的 Forwarding 状态。
环路保护:在运行 RSTP 或 MSTP 协议的网络中,根端口和其他阻塞端口的状态是依靠上游交换设备不断发来的 BPDU 进行维持的。当由于链路拥塞或者单向链路故障导致这些端口收不到来自上游交换设备的 BPDU 时,交换设备就会重新选择根端口。原先的根端口会转变为指定端口,而原先的阻塞端口会迁移到转发状态,从而造成交换网络中可能产生环路。在启动了环路保护功能后,如果根端口或 Alternate 端口长时间收不到来自上游的 BPDU ,则会向网管发送通知信息。如果是根端口则进入 Discarding 状态,阻塞端口则会一直保持在阻塞状态,不转发报文,从而不会在网络中形成环路。直到根端口或 Alternate 端口收到 BPDU 后,端口状态才恢复到 Forwarding 状态。
防止 TC - BPDU 攻击:交换设备在接收到 TC BPDU 报文后,会执行 MAC 地址表项和 ARP 表项的删除操作。如果有人伪造 TC BPDU 报文恶意攻击交换设备,交换设备在短时间内会收到很多 TC BPDU 报文,频繁的删除操作会给设备造成很大的负担,给网络的稳定性会带来很大隐患。启用防 TC - BPDU 报文攻击功能后,可以配置交换设备在单位时间内处理 TC BPDU 报文的次数。如果在单位时间内,交换设备收到的 TC BPDU 报文数量大于配置的阈值,交换设备只会处理阈值指定的次数。对于其他超出阈值的 TCN BPDU 报文,定时器到期后设备只对其统一处理一次。这样可以避免频繁地删除 MAC 地址表项和 ARP 表项,从而达到保护设备的目的。

实验目的

理解MSTP/RSTP保护功能的工作原理

理解MSTP/RSTP保护功能的应用场景

掌握MSTP/RSTP保护功能的配置方法

实验内容

实验拓扑如图所示,本实验网络中,四台交换机组成了一个环形网络,交换机运行RSTP或MSTP。为了增强网络的健壮性和安全性,需要配置MSTP/RSTP的保护功能。

实验拓扑

1.配置RSTP/MSTP

根据上面拓扑图进行相应的配置,在所有的交换机上配置生成树模式为RSTP,并配置优先级使S1为主根交换机,S2为备份根交换机。

[s1]stp mode rstp
[s1]stp priority 4096

[s2]stp mode rstp
[s2]stp priority 8192

 

[s3]stp mode rstp
 

[s4]stp mode rstp

 使用display stp brief查看交换机的各个端口状态。

可以看到,S1为根交换机,S4的G0/0/1端口状态为Discarding。

配置S3和S4的Ethernet 0/0/1端口为边缘端口。

[s3]int e0/0/1
[s3-Ethernet0/0/1]stp edged-port enable

[s4]int e0/0/1
[s4-Ethernet0/0/1]stp edged-port enable

在PC-1上使用ping命令检测与PC-2的连通性。

 可以看到,PC-1与PC-2正常通信。

由于保护功能在RSTP和MSTP中完全一样,所以本实验中仅以RSTP为例进行演示。

2.配置BPDU保护

交换机S3和S4为接入交换机,需要接入用户终端,在RSTP中把连接终端的端口配置为边缘端口,并且为了防止边缘端口收到不合法的BPDU后网络重新收敛,在S3和S4上配置BPDU保护功能。

在系统视图下使用命令stp bupd-protection启用交换设备边缘端口的BPDU保护功能。缺省情况下,交换设备的BPDU保护功能处于禁用状态。

[s3]stp bpdu-protection

[s4]stp bpdu-protection 

为了演示边缘端口收到BPDU的效果,把S3的G0/0/2端口配置为边缘端口。

[s3]int g0/0/2
[s3-GigabitEthernet0/0/2]stp edged-port enable
[s3-GigabitEthernet0/0/2]
Apr  9 2024 17:44:18-08:00 s3 %%01MSTP/4/BPDU_PROTECTION(l)[4]:This edged-port GigabitEthernet0/0/2 that enabled BPDU-Protection will be shutdown, because it received BPDU packet!
Apr  9 2024 17:44:19-08:00 s3 %%01PHY/1/PHY(l)[5]: GigabitEthernet0/0/2: change status to down

可以看到,当配置了BPDU保护后,S3的G0/0/2端口接收到了根交换机的BPDU后被关闭,并弹出日志提示。

可以使用命令error-down auto-recovery cause bpdu-protection interval 30设置端口自动恢复为UP的延时为30s。当端口被关闭后,删掉G0/0/2端口的边缘端口配置,30s后端口会自动Up并弹出日志提示。

[s3]int g0/0/2
[s3-GigabitEthernet0/0/2]undo stp edged-port 
[s3-GigabitEthernet0/0/2]undo shutdown

[s3-GigabitEthernet0/0/2]quit

[s3]error-down auto-recovery cause bpdu-protection interval 30

[s3]int g0/0/2
[s3-GigabitEthernet0/0/2]stp edged-port enable

[s3-GigabitEthernet0/0/2]
Apr  9 2024 18:46:58-08:00 s3 %%01MSTP/4/BPDU_PROTECTION(l)[1]: This edged-port GigabitEthernet0/0/2 that enabled BPDU-Protection will be shutdown, because it re
ceived BPDU packet!
 
Apr  9 2024 18:46:58-08:00 s3 %%01ERRDOWN/4/ERRDOWN_DOWNNOTIFY(l)[2]:Notify interface to change status to error-down. (InterfaceName=GigabitEthernet0/0/2, Cause
=bpdu-protection)

Apr  9 2024 18:46:59-08:00 s3 %%01PHY/1/PHY(l)[3]:    GigabitEthernet0/0/2: chan
ge status to down

Apr  9 2024 18:47:05-08:00 s3 DS/4/DATASYNC_CFGCHANGE:OID 1.3.6.1.4.1.2011.5.25.
191.3.1 configurations have been changed. The current change number is 12, the c
hange loop count is 0, and the maximum number of records is 4095.


Apr  9 2024 18:47:28-08:00 s3 %%01ERRDOWN/4/ERRDOWN_DOWNRECOVER(l)[6]:Notify interface to recover state from error-down. (InterfaceName=GigabitEthernet0/0/2)
Apr  9 2024 18:47:28-08:00 s3 ERRDOWN/4/ErrordownRecover:OID 1.3.6.1.4.1.2011.5.
25.257.2.2 Error-down recovered. (Ifindex=29, Ifname=GigabitEthernet0/0/2, Cause
=bpdu-protection, RecoverType=auto recovery)

Apr  9 2024 18:47:30-08:00 s3 %%01PHY/1/PHY(l)[7]:    GigabitEthernet0/0/2: chan
ge status to up

可以看到,G0/0/2端口从Down到UP所经历的时间是自动恢复的延时时间30s。 但由于此时该接口下仍有stp edged-port enable命令,固端口一直处于UP和Down的状态切换。撤销端口下的边缘端口配置。

[s3]int g0/0/2
[s3-GigabitEthernet0/0/2]undo stp edged-port

3.配置根保护

根保护是指定端口上的特性。当端口的角色是指定端口时,配置根保护功能才能够生效。若在其他类型的端口上配置根保护功能,根保护功能不会生效。

使用display stp brief命令,查看S1、S2、S3、S4的指定端口。

 在指定端口上配置根保护。

[s1]int g0/0/1
[s1-GigabitEthernet0/0/1]stp root-protection
[s1-GigabitEthernet0/0/1]int g0/0/2
[s1-GigabitEthernet0/0/2]stp root-protection

 

[s2]int g0/0/2
[s2-GigabitEthernet0/0/2]stp root-protection


[s3]int g0/0/1
[s3-GigabitEthernet0/0/1]stp root-protection

接下来,修改S4的优先级优于S1。

[s4]stp priority 0

交换机的优先级的值越小,优先级越大,称为根交换机的可能性也就越大。

在S4上使用display stp命令查看根交换机的信息。

[s4]display stp
-------[CIST Global Info][Mode RSTP]-------
CIST Bridge         :0    .4c1f-ccb2-671e
Config Times        :Hello 2s MaxAge 20s FwDly 15s MaxHop 20
Active Times        :Hello 2s MaxAge 20s FwDly 15s MaxHop 20
CIST Root/ERPC      :0    .4c1f-ccb2-671e / 0
CIST RegRoot/IRPC   :0    .4c1f-ccb2-671e / 0
......
 

可以看到,S4已经认为自己是根桥。

在S2和S3上使用display stp命令查看根交换机信息。

<s2>display stp
-------[CIST Global Info][Mode RSTP]-------
CIST Bridge         :8192 .4c1f-ccd9-7745
Config Times        :Hello 2s MaxAge 20s FwDly 15s MaxHop 20
Active Times        :Hello 2s MaxAge 20s FwDly 15s MaxHop 20
CIST Root/ERPC      :4096 .4c1f-cc1f-69e6 / 20000
CIST RegRoot/IRPC   :8192 .4c1f-ccd9-7745 / 0

......

<s3>display stp
-------[CIST Global Info][Mode RSTP]-------
CIST Bridge         :32768.4c1f-cc68-0c51
Config Times        :Hello 2s MaxAge 20s FwDly 15s MaxHop 20
Active Times        :Hello 2s MaxAge 20s FwDly 15s MaxHop 20
CIST Root/ERPC      :4096 .4c1f-cc1f-69e6 / 20000
CIST RegRoot/IRPC   :32768.4c1f-cc68-0c51 / 0
......

可以看到,S2、S3仍然认为S1是根交换机。

在S2和S3上使用命令display stp brief查看端口状态信息。 

可以看到,与S4相连的指定端口状态变成了Discarding。

删除S4上的优先级配置。

[s4]undo stp priority

4.配置环路保护

如果由于链路拥塞或者单向链路故障导致根端口收不到来自上游交换设备的BPDU,交换设备会重新选择根端口。原先的根端口会转变为指定端口,而原先的阻塞端口会迁移到转发状态,从而造成交换网络中环路的产生。

在S2的G0/0/2端口下配置stp bpdu-filter  enable

[s2]int g0/0/2
[s2-GigabitEthernet0/0/2]stp bpdu-filter enable

这样一来,S4由于收不到上游的BPDU,就重新选择根端口。观察所有交换机的所有端口的STP信息。

可以看到,所有交换机的端口都进入了Forwarding状态。

可以看到,PC-1在成功发送和接受了一个报文后,其他报文都超时了,这是因为网络中已经产生了环路。

恢复S2的G0/0/2端口,在S4的G0/0/1和G0/0/2端口配置环路保护功能,然后在S2的G0/0/2端口上配置stp bpdu-filter enable

[s2]int g0/0/2
[s2-GigabitEthernet0/0/2]undo stp bpdu-filter

[s4]int g0/0/1
[s4-GigabitEthernet0/0/1]stp loop-protection
[s4-GigabitEthernet0/0/1]int g0/0/2
[s4-GigabitEthernet0/0/2]stp loop-protection

 

[s2]int g0/0/2
[s2-GigabitEthernet0/0/2]stp bpdu-filter enable

在S4上查看STP的状态信息。

 可以看到,S4的G0/0/1端口成为了根端口,G0/0/2端口虽然成为了指定端口,但是处于Discarding状态,不转发数据,这样就避免了环路。

再次在PC-1上使用ping命令测试与PC-2的连通性。

可以看到,PC-1与PC-2之间可以进行正常通信。

5.配置TC-BPDU保护

启用TC-BPDU保护功能后,可以配置交换设备处理TC类型BPDU报文的最大速度,以避免频繁地删除MAC地址表项和ARP表项,从而达到保护交换设备的目的。单位时间的取值与RSTP的Hello Time一致,可以通过执行命令stp timer hello进行配置。

使用命令stp tc-protection,开启交换设备对TC类型BPDU报文的保护功能,缺省情况下,交换设备的TC保护功能处于关闭状态。

[s1]stp tc-protection
[s1]stp tc-protection threshold 2
 

[s2]stp tc-protection
[s2]stp tc-protection threshold 2
 

[s3]stp tc-protection
[s3]stp tc-protection threshold 2
 

[s4]stp tc-protection
[s4]stp tc-protection threshold 2

上面所进行的配置的含义是:交换设备在单位时间(与RSTP Hello时间间隔一致)内,允许在收到TC-BPDU报文后立即进行地址表项删除操作的最大次数为两次。

 

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

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

相关文章

openstack中windows虚拟机时间显示异常问题处理

文章目录 一、问题描述二、元数据信息总结 一、问题描述 openstack创建出windows虚拟机的时候&#xff0c;发现时间和当前时间相差8小时&#xff0c;用起来很难受。 参考&#xff1a;https://www.cnblogs.com/hraa0101/p/11365238.html 二、元数据信息 通过设置镜像的元数据…

pytest教程-24-多重断言插件-pytest-assume

领取资料&#xff0c;咨询答疑&#xff0c;请➕wei: June__Go 上一小节我们学习了pytest指定用例执行顺序插件pytest-ordering,本小节我们讲解一下pytest多重断言插件-pytest-assume。 在自动化测试过程中&#xff0c;我们执行完用例之后&#xff0c;需要验证脚本执行的结果…

如何在 iOS 项目中集成 MiniApp SDK,快速构建智能小程序?

本文介绍如何在 iOS 项目中&#xff0c;集成 MiniApp SDK&#xff0c;使之能够构建智能生活小程序&#xff0c;运行在你的 IoT App 上。 准备工作 在集成 MiniApp SDK 之前&#xff0c;您需要在 涂鸦 IoT 开发平台 上&#xff1a; 注册开发者账号、创建产品、创建功能点等。…

IO进程线程Day8

让2个终端之间互相聊天&#xff0c;使用消息队列去实现 #include <myhead.h> //使用消息队列实现两个进程的相互聊天 #define ERR_MSG(msg) do{fprintf(stderr,"__%d__",__LINE__);\perror(msg);\}while(0) int msgid; typedef struct{long mtype;char text…

Quasi-Direct Drive for Low-Cost Compliant Robotic Manipulation翻译

文章目录 标题摘要I. 引言A. 问题定义和用户需求B. 定义有用的机器人操控器C. 定义有用的带宽和载荷D. 低成本设计约束 II. 相关工作A. 机器人系统中的柔顺性B. 人类载荷下的力控制机械臂C. 现有的低成本机械臂D. 驱动方案 III. 低成本柔顺操控的设计A. 准直驱驱动B. 差分齿带传…

spikingjelly学习-训练网络

【MNIST数据集包含若干尺寸为28*28的8位灰度图像&#xff0c;总共有0~9共10个类别。以MNIST的分类为例&#xff0c;一个简单的单层ANN网络如下 我们也可以用完全类似结构的SNN来进行分类任务。就这个网络而言&#xff0c;只需要先去掉所有的激活函数&#xff0c;再将尖峰神经元…

IDEA 2024.1到底更新啥有用的?

0 关键亮点 全行代码补全 Ultimate IntelliJ IDEA Ultimate 2024.1 针对 Java 全行代码补全。 这项功能由无缝集成到 IDE 中的高级深度学习模型提供支持。 它可以基于上下文分析预测和建议整行代码&#xff0c;有助于提高编码效率。 这些建议由针对不同语言和框架特别训练的专…

UML学习

UML(Unified Modeling Language)&#xff1a;统一建模语言&#xff0c;提供了一套符号和规则来帮助分析师和设计师表达系统的架构、行为和交互 类图&#xff1a;描绘类、接口之间的关系(继承、实现、关联、依赖等)以及类的内部结构(属性和方法)&#xff0c;直观展现系统的静态…

水资源管理系统:守护生命之源,构建和谐水生态

水资源是维系地球生态平衡和人类社会可持续发展的重要基础。然而&#xff0c;随着人口增长、工业化和城市化的加速&#xff0c;水资源短缺、水质污染和生态破坏等问题日益凸显。在这样的背景下&#xff0c;构建一个全面、高效、智能的水资源管理系统显得尤为迫切和必要。 项目…

AI智能客服机器人是什么?对企业重要吗?

在数字化时代&#xff0c;客户服务是企业与客户建立牢不可破关系的重要桥梁。AI智能客服机器人&#xff0c;顾名思义&#xff0c;就是利用人工智能技术提升客户服务体验的自动化工具。今天&#xff0c;就让我们来揭开AI智能客服机器人的神秘面纱&#xff0c;并讨论它对企业的重…

【C++ STL有序关联容器】map 映射

文章目录 【 1. 基本原理 】【 2. map 的创建 】2.1 调用默认构造函数&#xff0c;创建一个空的 map2.2 map 被构造的同时初始化2.3 通过一个 map 初始化另一个 map2.4 取已建 map 中指定区域内的键值对&#xff0c;初始化新的 map2.5 指定排序规则 【 2. map 元素的操作 】实例…

Bioorganic Chemistry:中国药科大学王鹏课题组、陈俊青课题组设计的基于AIE机理的高荧光选择性鉴定Cys/HCy

文献来源&#xff1a;Highly selective fluorescent probe based on AIE for identifying cysteine/homocysteine - PubMed (nih.gov) 一、AIE机理在荧光探针设计方向的应用&#xff1a; 参考文献&#xff1a;几种代表性的AIE的发光特点和机制&#xff08;2020-10-11&#xff…

PostgreSQL入门到实战-第六弹

PostgreSQL入门到实战 PostgreSQL查询语句(三)官网地址PostgreSQL概述PostgreSQL中ORDER BY理论PostgreSQL中ORDER BY实操更新计划 PostgreSQL查询语句(三) 官网地址 声明: 由于操作系统, 版本更新等原因, 文章所列内容不一定100%复现, 还要以官方信息为准 https://www.post…

蓝桥杯刷题--RDay5

清理水域--枚举 8.清理水域 - 蓝桥云课 (lanqiao.cn)https://www.lanqiao.cn/problems/2413/learning/?page1&first_category_id1&second_category_id3&tags2023 小蓝有一个n m大小的矩形水域&#xff0c;小蓝将这个水域划分为n行m列&#xff0c;行数从1…

Docker入门指南:从安装到基本操作和镜像构建的全面教程

文章目录 一、Docker简介二、Docker的安装三、Docker的基本概念四、Docker的基本操作五、Dockerfile和镜像构建六、总结 一、Docker简介 Docker是一个开源的应用容器引擎&#xff0c;它允许开发者将应用程序及其依赖项打包到一个可移植的容器中&#xff0c;然后在任何支持Dock…

人民网至顶科技:《开启智能新时代:2024中国AI大模型产业发展报告发布》

​3月26日&#xff0c;人民网财经研究院与至顶科技联合发布《开启智能新时代&#xff1a;2024年中国AI大模型产业发展报告》。该报告针对AI大模型产业发展背景、产业发展现状、典型案例、挑战及未来趋势等方面进行了系统全面的梳理&#xff0c;为政府部门、行业从业者以及社会公…

如何避免儿童校园霸凌:羊大师为您支招

校园应是学习和成长的乐土&#xff0c;而非恐惧和伤害的源泉。**在这个追求和谐社会的时代&#xff0c;校园霸凌问题依然是一个亟需解决的社会现象。羊大师作为关心儿童成长的一员&#xff0c;今天将为家长和教育工作者提供一些实用建议&#xff0c;帮助孩子避免成为校园霸凌的…

Python Selenium UI自动化测试

&#x1f525; 交流讨论&#xff1a;欢迎加入我们一起学习&#xff01; &#x1f525; 资源分享&#xff1a;耗时200小时精选的「软件测试」资料包 &#x1f525; 教程推荐&#xff1a;火遍全网的《软件测试》教程 &#x1f4e2;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1…

IO-DAY8

使用消息队列去实现2个终端之间的互相聊天 要求:千万不要做出来2个终端之间的消息发送是读一写的&#xff0c;一定要能够做到&#xff0c;一个终端发送n条消息&#xff0c;另一个终端一条消息都不回复 A终端&#xff1a; #include<myhead.h> typedef struct msgbuf {lon…

设计模式学习笔记 - 设计模式与范式 -行为型:8.状态模式:游戏、工作流引擎中常用的状态机是如何实现的?

概述 本章学习状态模式。在实际的开发中&#xff0c;状态模式并不是很常用&#xff0c;但是在能够用到的场景里&#xff0c;它可以发挥很大的作用。从这一点上看&#xff0c;它有点像我们之前讲到的组合模式。 状态模式一般用来实现状态机&#xff0c;而状态机常用在游戏、工…