1、HCIP之RSTP协议与STP相关安全配置

news2024/11/24 1:56:05

目录

RSTP—快速生成树协议

STP

STP的缺点:

STP的选举(Listening状态中):

RSTP

P/A(提议/同意)机制

同步机制:

边缘端口的配置:

RSTP的端口角色划分:

ensp模拟器BUG:

Topology Change

STP的安全设置:

BPDU保护:

BPDU过滤:

根保护:

TC-BPDU泛洪保护:


RSTP—快速生成树协议

STP

STP的缺点:

        收敛慢,从初始状态到完全收敛至少需要经过30S的时间(Listening—learning—forwarding,三个阶段,每个阶段需要15S的时间)

STP的选举(Listening状态中):

BPDU的四个参数:

1、ROOT ID:根桥(ROOT)的桥ID(Bridge ID)

2、COST:到达根桥(ROOT)的开销值,G口默认为2000,越小越优先

3、Bridge ID:优先级+实例编号+MAC地址,其中优先级默认为32768,实例编号默认位0。优先级在设置的时候必须是4096的整数倍且越小越优先

4、Port ID:优先级+端口编号,优先级默认为128

根桥的选举规则:

对比自身和收到的Bridge ID,也就是优先级➕MAC地址

1、先比较优先级,越小越优先;

2、当优先级一样时对比MAC地址,越小越优先;

3、根桥上的端口都是指定端口

根端口(非根交换机)的选举规则:

1、比较到达根桥的开销COST,越小越优先;

2、比较接口对端交换机的BID,越小越优先;

3、比较对端接口的PID,越小越优先;

4、比较本设备上的PID,越小越优先;(少见)

指定端口(非必须)的选举规则:

1、根桥的所有接口都是指定接口;

2、比较接口去往根桥的开销,越小越优先;

3、比较接口对端交换机的BID,越小越优先;

4、比较本端接口的PID,越小越优先;(少见)

堵塞端口(Blocked port):

1、如果不是以上阐述的三者之一,就堵塞该端口,此时环路被消除;

2、如果两交换机的两条或以上的端口互联,则选出一个根端口后剩下都是阻塞端口;

RSTP

P/A(提议/同意)机制

        为了加快指定端口和根端口互联链路上的两端口快速进入转发状态(避免30秒的等待)而采取的机制。

        P/A协商要求在点对点全双工链路。

 P/A机制的过程:

1、当两设备的RSTP功能启动时都认为自己是根桥且会向对方发送一份BPDU,其中的P位值会设置为1(提议),A位也是1(同意)

2、当B收到对方的BPDU后与自己的“四个参数”作对比,如果选举失败就会向A发送一个A位为1的BPDU,且立即将自己端口中选举成功的一方设置为RP(根端口),选举失败的端口设置为AP(阻塞端口)

3、A收到B发送的同意BPDU后会立即将自己的端口都设置为DP(指定端口)

这里假设A的桥ID最大,B次之。

以上过程为秒级切换,但会有环路风险问题,因此需要引入同步机制

 

同步机制:

在对端设备接受同意前会将其他接口全部阻塞,会造成网络的一个中断但是周期很短,如下:

 以上拓扑中各角色的选举过程:

1、设备RSTP功能启动时都认为自己是根桥切会向对方发送一份BPDU,其中的P位值会设置为1(提议),A位也是1(同意)

2、当B收到A发送的BPDU后与自己的“四个参数”作对比,如果选举失败就会向A发送一个A位为1的BPDU,且立即将自己端口中选举成功的一方(G0/0/1)设置为RP(根端口),选举失败的端口(G0/0/2)会暂时阻塞直到A收到同意消息后,才会继续向C发送提议消息

3、当C收到A发送的BPDU后与自己的“四个参数”作对比,如果选举失败就会向A发送一个A位为1的BPDU,且立即将自己端口中选举成功的一方(G0/0/1)设置为RP(根端口),选举失败的端口(G0/0/2)会暂时阻塞直到A收到同意消息后,才会继续向B发送提议消息

4、当A收到了BC的同意后,此时B和C会互相发送提议消息但是各自也都已经同意了A的提议不能在将对方认为是ROOT。此时BC之间的线路不会立即收敛,但并不会影响网络之间正常的通信

这里假设A的桥ID最大,B次之,C最小

以上可以解决拓扑变化后收敛速度慢的问题,但是还会出现一个问题:

        如果此时C上连接了一个主机PC,C会向PC发送提议消息但是PC是没有回复功能的,所以会导致连接PC的接口收敛速度为30秒,如下图:

解决方法:

        在C连接终端的接口G0/0/24上配置边缘端口,边缘端口会直接进入转发状态而不协商,但是也发送BPDU报文,需要管理员手动配置;

        当边缘端口收到BPDU报文的时候就会放弃边缘端口的特性,重新进行生成树的计算。

边缘端口的配置:

全局下(推荐):

stp edged-port default 

接口上:

int g0/0/1
stp edged-port enable 

还有一种情况:

以上拓扑中各角色的选举过程:

1、A和B互相发送携带提议字段(P=1)的BPDU报文,由于A的桥ID大于B的,所以会忽略B的BPDU并向B发送同意消息且立即将G0/0/1接口设置为DP(指定接口)

2、B在发现A应该是根桥后发送同意消息并立即将自己的G0/0/1接口设置为RP(根接口)同时阻塞G0/0/2接口

3、当B收到A的同意消息后将G0/0/2接口打开向C发送A的提议消息

4、当C收到A的提议消息后向A发送同意消息同时立即将G0/0/2接口设置为RP(根接口)

这里假设A的桥ID最大,B次之,C最小

RSTP的端口角色划分:

STP的三种角色:根端口、指定端口和阻塞端口

RSTP定义了两种心的端口角色:备份端口(Backup Port)和预备端口(Alternate Port),其中备份端口是备份指定端口的,经常用在有集线器的拓扑上;而预备端口也叫替代端口,是用于替代根端口的,当根端口失效时,替代端口秒级替换上

RSTP中端口状态的重新划分:

以上可以分为两种情况:

1、有P/A机制的话端口会直接从Discarding状态到Forwarding状态;

2、如果没有P/A机制就会正常的经过两个周期才能转换到Forwarding状;

ensp模拟器BUG:

        无法模拟设备的自动刷新MAC地址表,会导致网络中拓扑结构发生变化时无法及时更新MAC地址表而造成的网络中断,需要手动刷新或者从另一端重新PING一下进行MAC地址表的更新。

        真机不会出现这个问题,因为真机会对拓扑的变化而做出相应的处理:Topology Change消息

Topology Change

        当交换机发现某个端口发生故障而阻塞后,会将MAC地址表中相应的MAC与端口绑定的表项删除,且会向网络中发送一条TC消息(拓扑变化消息),当其他设备接受到后会触发MAC地址表的更新,会将除了接受TC消息以外的所有端口的MAC地址表项删除(边缘端口除外),完成后会将TC消息发送给下一个设备。

STP的安全设置:

BPDU保护:

        当我们要求边缘端口只允许连接主机不能连接交换机时会进行配置BPDU保护(默认情况下边缘端口可以连接交换机,但会放弃边缘端口的特性),当启用BPDU保护的时候,如果边缘端口收到了BPDU消息,则会立即关闭该接口

配置方法:

stp bpdu-protection

        BPDU保护的功能依赖于边缘端口的设置,输入以上命令后,所有边缘端口都会自动开启BPDU保护,收到BPDU消息后会关闭接口

        注意:如果是边缘端口检测到BPDU后重新进行生成树计算的端口,也会被关闭,应该进入该接口下关闭边缘端口功能

BPDU过滤:

        当收到BPDU消息后不会关闭接口,而是丢弃BPDU消息

配置方法:

stp bpdu-filter default

根保护:

        当我们在原有的网络拓扑上新接入一台交换机且不希望它成为根桥时会配置根保护(一般在核心交换机或汇聚交换机上)

        根保护功能会继续接收BPUD消息,但是不接受会抢占自己根位置的BPDU

        注意:不能在根端口(RP)启用!!!

配置方法:

int g0/0/1
stp root-protection

        此时,G0/0/1接口的另一端如果接入了优先级更高的交换机,会拒绝接受它的BPDU信息并把接口设置为丢弃状态,就相当于将其隔离在这个网络之外了,只能修改优先级比根桥小才能让其重新加入这个网络

TC-BPDU泛洪保护:

        限制拓扑变化消息的发送次数,防止不断地恶意TC-BPDU消息,当TC-BPDU消息在两秒内(默认)的次数达到我们设置的上限时就会拒绝此类BPDU

stp tc-protection threshold 

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

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

相关文章

Kafka 生产者优化与数据处理经验

Kafka:分布式消息系统的核心原理与安装部署-CSDN博客 自定义 Kafka 脚本 kf-use.sh 的解析与功能与应用示例-CSDN博客 Kafka 生产者全面解析:从基础原理到高级实践-CSDN博客 Kafka 生产者优化与数据处理经验-CSDN博客 Kafka 工作流程解析&#xff1a…

Hello-Go

Hello-Go 环境变量 GOPATH 和 GOROOT :不同于其他语言,go中没有项目的说法,只有包,其中有两个重要的路径,GOROOT 和 GOPATH Go开发相关的环境变量如下: GOROOT:GOROOT就是Go的安装目录&…

android 实现答题功能

一、效果 二、实现思路 1、界面实现 实现起来其实不难,首先我们可以看到,界面是由答题进度、题目、选项ABCD组成,现在就是要考虑实现方式,答题进度可以使用Textviewprogressbar实现,题目直接使用Textview,…

基于Java Springboot高校工作室管理系统

一、作品包含 源码数据库设计文档万字PPT全套环境和工具资源部署教程 二、项目技术 前端技术:Html、Css、Js、Vue、Element-ui 数据库:MySQL 后端技术:Java、Spring Boot、MyBatis 三、运行环境 开发工具:IDEA/eclipse 数据…

React(二)

文章目录 项目地址七、数据流7.1 子组件传递数据给父组件7.1.1 方式一:給父设置回调函数,传递给子7.1.2 方式二:直接将父的setState传递给子7.2 给props传递jsx7.2.1 方式一:直接传递组件给子类7.2.2 方式二:传递函数给子组件7.3 props类型验证7.4 props的多层传递7.5 cla…

浅谈丨功能安全测试,汽车的守护者

随着新能源汽车迅猛的发展,各类车型频频面世,同时辅助驾驶/自动驾驶等智驾功能也在不断迭代,使得整个汽车系统的复杂性越来越高,最终导致消费者不得不对如今的汽车质量和安全性提出质疑。 如何打破质疑? 那就不得不搬…

bridge-multicast-igmpsnooping

# 1.topo # 2.创建命名空间 ip netns add ns0 ip netns add ns1 ip netns add ns2 ip netns add ns3 # 3.创建veth设备 ip link add ns0-veth0 type veth peer name hn0-veth0 ip link add ns1-veth0 type veth peer name hn1-veth0 ip link add ns2-veth0 type veth pe…

密码学11

概论 计算机安全的最核心三个关键目标(指标)/为:保密性 Confidentiality、完整性 Integrity、可用性 Availability ,三者称为 CIA三元组 数据保密性:确保隐私或是秘密信息不向非授权者泄漏,也不被非授权者使…

MIT 6.S081 | 操作系统 | Lab1: Xv6 and Unix utilities

Lab1: Xv6 and Unix utilities 文章目录 Lab1: Xv6 and Unix utilities实验任务1.启动XV6(easy)2.Sleep(easy)-练手的,就是熟悉一下怎么在xv6项目中加.c文件,生成可执行程序并进行测试的1.解析rm.c2.argc 如何被赋值3.Sleep代码4.makefile编辑5.通过make…

在SpringBoot项目中集成MongoDB

文章目录 1. 准备工作2. 在SpringBoot项目中集成MongoDB2.1 引入依赖2.2 编写配置文件2.3 实体类 3. 测试4. 文档操作4.1 插入操作4.1.1 单次插入4.1.2 批量插入 4.2 查询操作4.2.1 根据id查询4.2.2 根据特定条件查询4.2.3 正则查询4.2.4 查询所有文档4.2.5 排序后返回 4.3 删除…

美团-Leaf ID算法集成到SpringBoot项目

提前准备 下载源码 GitHub地址&#xff1a;https://github.com/Meituan-Dianping/Leaf 下载下来 然后 maven install 安装到本地仓库 再需要用到该ID算法的项目中引入 以下内容 <!-- 本地仓库中的Leaf --> <dependency><artifactId>leaf-boot-starte…

AI+若依框架项目

基础应用篇 1.若依搭建 技术选型 RuoYi-Vue版本&#xff0c;采用了前后端分离的单体架构设计&#xff1a; 软件环境&#xff1a;JDK、MySQL 、Redis 、Maven、Node 技术选型&#xff1a;Spring Boot、Spring Security、MyBatis、Jwt、V 官方推荐 课程版本 JDK > 1.8 …

RabbitMQ高可用延迟消息惰性队列

目录 生产者确认 消息持久化 消费者确认 TTL延迟队列 TTL延迟消息 惰性队列 生产者确认 生产者确认就是&#xff1a;发送消息的人&#xff0c;要确保消息发送给了消息队列&#xff0c;分别是确保到了交换机&#xff0c;确保到了消息队列这两步。 1、在发送消息服务的ap…

将django+vue项目发布部署到服务器

1.部署django后端服务 部署架构 1.1 下载依赖插件 pip3.8 freeze > requirements.txt1.2 安装依赖插件 pip3 install -r requirements.txt1.3 安装mysql数据库 apt install mysql-server初始化数据库 CREATE USER admin% IDENTIFIED WITH mysql_native_password BY 123…

论文阅读:SIMBA: single-cell embedding along with features

Chen, H., Ryu, J., Vinyard, M.E. et al. SIMBA: single-cell embedding along with features. Nat Methods 21, 1003–1013 (2024). 论文地址&#xff1a;https://doi.org/10.1038/s41592-023-01899-8 代码地址&#xff1a;https://github.com/pinellolab/simba. 摘要 大多…

商业物联网:拥抱生产力的未来

在现代商业格局中&#xff0c;数据占据至高无上的地位。物联网&#xff08;IoT&#xff09;站在这场数字革命的前沿&#xff0c;将以往模糊不清的不确定因素转变为可衡量、可付诸行动的深刻见解。物联网技术为日常物品配备传感器与连接功能&#xff0c;使其能够实时收集并传输数…

【FRP 内网穿透 从0到1 那些注意事项】

【摘要】 最近跟第三方团队调试问题&#xff0c;遇到一个比较烦的操作。就是&#xff0c;你必须要发个版到公网环境&#xff0c;他们才能链接到你的接口地址&#xff0c;才能进行调试。按理说&#xff0c;也没啥&#xff0c;就是费点时间。但是&#xff0c;在调试的时候&#…

最新Kali安装详细版教程(附安装包,傻瓜式安装教程)

本文主要详细介绍 kali 的安装过程&#xff0c;以及安装完成后的基本设置&#xff0c;比如安装增强工具&#xff0c;安装中文输入法以及更新升级等操作。 文章目录 实验环境准备工作步骤说明安装虚拟机安装 Kali安装增强工具安装中文输入法更新升级 实验环境 VMware &#x…

【山大909算法题】2014-T1

文章目录 1.原题2.算法思想3.关键代码4.完整代码5.运行结果 1.原题 为带表头的单链表类Chain编写一个成员函数Reverse&#xff0c;该函数对链表进行逆序操作&#xff08;将链表中的结点按与原序相反的顺序连接&#xff09;&#xff0c;要求逆序操作就地进行&#xff0c;不分配…

论文浅尝 | MindMap:知识图谱提示激发大型语言模型中的思维图(ACL2024)

笔记整理&#xff1a;和东顺&#xff0c;天津大学硕士&#xff0c;研究方向为软件缺陷分析 论文链接&#xff1a;https://aclanthology.org/2024.acl-long.558/ 发表会议&#xff1a;ACL 2024 1. 动机 虽然大语言模型&#xff08;LLMs&#xff09;已经在自然语言理解和生成任务…