文章目录

  • 前言
  • 一、RSTP产生原因
  • 二、RSTP相对于STP改进点
    • 改进点1:端口角色
    • 改进点2:端口状态
    • 改进点3:配置 BPDU改为了 RST BPDU
    • 改进点4:配置BPDU的处理
    • 改进点5:快速收敛机制
      • (1)设备跟端口失效alternate端口补上
      • (2)设备指定端口失效backup端口补上
      • (3)增加了一个边缘端口
      • (4)重点__Proposal/Agreement机制
    • 改进点6:变更拓扑变更机制
    • 改进点7:添加了保护功能
      • (1)BPDU保护
      • (2)根保护
      • (3)环路保护
      • (4)防止TC-BPDU攻击
  • 三、RSTP 收敛过程简述
  • 四、基础配置命令
    • 1.配置生成树模式
    • 2.配置当前设备为根桥(优先级为0)
    • 3.配置当前设备为备份根桥(优先级为4096)
    • 4.配置交换机rstp优先级
    • 5.配置根路径开销
    • 6.配置边缘端口(默认没有边缘端口)
    • 7.配置BPDU保护功能
    • 8.配置根保护功能(前提端口是指定端口)
    • 9.配置环路保护功能
    • 10.配置TC保护功能

前言

今天我们来讲一讲“爷孙三人”中的RSTP,STP存在着各种各样的问题,RSTP就是STP的升级版,RSTP对STP进行了很大的改进,解决了STP收敛速度慢的问题,但是具体是怎样解决的,我们下面来慢慢讲解一下。

一、RSTP产生原因

这原因其实很好想到,如果STP实力强劲,各方面都十分完美的话,人们也不会想到对STP进行改进的,既然产生了RSTP肯定是STP存在很大的问题。
STP存在问题:

  • 端口状态过于冗杂(Listening 、Learning、Blocking)状态对用户没有区别,都是不转发用户流量

  • 算法为被动算法,就是等待多少秒后才敢判断拓扑发生变化

  • 收敛速度慢(被动算法20s和端口转换时间30s)[listening到learning等待15s,learning到forwarding等待15s]

  • 扩展性不强

  • 注:直连发生故障为30s(直连嘛,不需要等待的20s), 非直连发生故障为50s(不清楚根桥链路是否损坏,所以20s等待时间和切换端口30s)。

STP原理就是阻塞环路中的一个端口从而达到破环的目的,但是这样的话环路问题是解决了,但是又出现了新的问题,那就是收敛速度太慢,尤其是局域网规模不断扩大的如今,收敛问题愈发严重,这也就促使了RSTP的产生。
RSTP(Rapid Spanning Tree Protocol -快速生成树协议):
比STP多了一个Rapid(快速),可以看出来,rstp是主要针对stp的收敛速度慢这个问题而设计的。

二、RSTP相对于STP改进点

改进点1:端口角色

RSTP对端口角色进行了补充,阻塞端口一分为二,改为了替代端口(Alternate)和备份端口(Backup)。

Alternate端口:
产生是在学习到其他网桥发送的配置BPDU后与自己网桥进行比较,比较结果是对方更优的情况下而进行阻塞的端口,但是虽然端口被阻塞了,但是证明了他也是可以通向根桥的,所以替代端口就作为根端口的备份端口(本设备其他根端口坏掉后立刻启动本端口)
backup端口:
产生原因是学习到自己发送的配置BPDU而进行阻塞的端口,不是这个端口发送的本设备配置BPDU,但是这个端口还可以接收到,这肯定是自己连接了自己(看到backup端口就是自己连接了自己)它是作为指定端口的备份,本设备指定端口坏掉后,backup端口就顶上。

改进点2:端口状态

RSTP将STP的五种端口状态缩减为三种,改变标准是此端口是否进行转发用户流量和是否学习mac地址来进行划分的,因为STP的Disable、Blocking、Listening都是不进行学习还不进行转发用户流量的所以在RSTP中直接将三种状态合并为一种状态 – Discaring(也是不学习mac地址也不转发用户流量),其余的没变。

改进点3:配置 BPDU改为了 RST BPDU

意思就是在配置信息上对STP进行了升级,在报文Flag字段里面明确了端口的角色。

改进点4:配置BPDU的处理

STP是等拓扑稳定后 由根桥按照 Hello Time进行向外发送配置BPDU,其他设备是等待收到上游设备(不一定为根桥)发送的配置BPDU后再进行配置比对,拓扑较大的话,效率极慢。
RSTP是等待拓扑稳定后,非根桥设备无论是否收到根桥的配置信息,非根桥都会按照hello time进行发送缓存根桥的配置BPDU,每台设备都有自己发送缓存根桥配置Bpdu信息的权力(stp是只有根桥才有权力进行发送配置BPDU),这样进行处理的话使得计算简单迅速。

但是如果sw2连接sw1(根桥)的链路坏掉了,接收不到sw1根桥的配置BPDU,那么sw2就在等待6s(三倍的hello time)之后,认为根桥不行了(因为接收不到根桥的配置BPDU),他就会认为老大(根桥)死了,自己就是根桥了,sw2就会向其他设备发送自己的配置BPDU(想当老大),其他设备收到他发的配置BPDU后,就会产生怀疑,就把sw2的实力和自己缓存大哥的实力(sw3的链路没坏,所以每两秒都可以收到根桥的配置BPDU知道他们老大还活着信息)进行比较,如果没有大哥实力强劲,就直接把这个信息给丢了,并给sw2一个回信,说咱们大哥还活着,不要嚣张,大哥没给你联系不是因为大哥没了,而是因为你家电话线断了,给你打不通,sw2收到回信(sw3的配置 bpdu)后立马就懂了,怪怪的当自己小弟,不再往外发送自己是老大的信息(自己的配置BPDU信息)了。

改进点5:快速收敛机制

(1)设备跟端口失效alternate端口补上

当一个设备中的一个根端口失效后,那么这个设备的alternate就会立刻成为根端口,因为alternate就是因为收到其他网段发送的BUDU自己才会变为替代端口的,所以和外界肯定是连接并可以接受外界的配置BPDU(根端口就是接受配置BPDU信息的)信息的。

(2)设备指定端口失效backup端口补上

当一个设备中的一个指定端口1失效后,那么这个设备的backup端口就会立刻成为指定端口,因为backup就是因为收到自己设备发送的BUDU自己才会变为backup端口的,所以此端口肯定和刚才失效的指定端口1连接的是同一个设备,所以backup端口代替失效端口发送配置 BPDU信息(指定端口发送配置BPDU信息)是合情合理的。

(3)增加了一个边缘端口

定义: 不与其他交换设备进行连接,只连接终端设备(PC、防火墙、服务器等)的端口叫做边缘端口。
边缘端口不参与RSTP计算,设备插上去后直接就可以由discarding转换为forwarding状态,没有边缘端口的话,随便插上一个PC南无整个拓扑就会从新计算一次,虽说rstp计算快,但是再快也是时间啊,而且直接由discarding转换为forwarding状态,这多爽,一级一级转换又需要三十秒
注意:
一旦边缘端口收到配置BPDU,就丧失了边缘端口的属性,从新参与计算。

(4)重点__Proposal/Agreement机制

和stp选举阻塞端口有所不同,stp是以根桥为圆心,想周围进行比较,直到计算出一个非根端口且非指定端口的阻塞端口,而rstpb不同,他是每相邻的的两个设备进行比较,赢的设备端口立刻进入forwarding,不需要等待30s。

俩设备初始化时都认为自己是根桥,互发RST BPDU,然后如图,sw2端口认识到自己输了,就立刻停止发送RST BPDU,sw1知道自己赢了,所以先把自己端口转化为discarding(卸下装备,劝敌投降)先后发送proposal(建议的意思)为1的报文,建议敌方归顺我,sw2收到劝降书后,让自己下游端口(除边缘端口)均进入discarding状态(让自己的部下缴械),然后让上游端口进入forwarding状态向sw1发送带着agreement为1的报文(同意投降了)

sw1收到sw2的agreement后立马让端口进入forwarding状态,向被劝降地进发

如此循环,直到选出一个最弱的作为阻塞端口,这样根本无需等待,只需要相邻设备进行比较即可,大大提高了速度。

改进点6:变更拓扑变更机制

RSTP中检测拓扑是否发生变化之一一个标准:一个非边缘端口迁移到fording状态。
一旦检测出拓扑发生变化,本设备的所有非边缘指定端口和根端口都启动一个TC while timer(为hello time的两倍),在这时间内清空所有端口学习到的mac地址,然后由所有非边缘指定端口和根端口都向外发送RST BPDU,其他设备收到RST BPDU后清空所有端口mac地址(除了刚才收到RST BODU的端口【刚收到的,已经是拓扑变更后的mac对应关系】和边缘端口),并把本设备的所有非边缘指定端口和根端口都启动一个TC while timer,并发送设备RST BPDU,其余设备重复此操作,产生RST BPDUf泛洪,最终在两倍hello time4s内完成所有设备完成对拓扑变更后的mac地址对应关系。(发明者真的是粗名 厉害)

改进点7:添加了保护功能

(1)BPDU保护

边缘端口正常是不会连接交换机,所以是不会收到RST BPDU的,但是如果收到黑客伪造的RST BPDU的话,就会失去边缘端口功能,导致整个网络拓扑重新计算,会引起网络震荡。

开启BPDU保护功能后,边缘端口即使收到了rst bpdu,也不会改变边缘属性,直接丢弃,同时通过信息告诉网络管理员。

(2)根保护

一般的根桥如果收到了优先级更高的BPDU的话,就不再进行转发,进入discarding状态,如果在两hello内没有再收到的话才会继续工作,但是,影响效率啊,且一般的根桥都是质量较好的设备,我了保护根桥的角色不受其他原因影响而改变,所以要进行根保护,使其端口角色一直保持指定端口,保持转发。

(3)环路保护

(4)防止TC-BPDU攻击

设备端口收到TC配置rst bpdu后就会刷新mac,但是有人如果一直发送,那麽久需要一直刷新,所以必须设置个最大值。

开启后,如果收到tc大于设定值,那么就会自动忽略。

三、RSTP 收敛过程简述


首先sw1对sw2和sw3进行P/A机制对比,确立sw1的端口状态,然后sw2&sw3再进行P/A协商,互发stp bpdu,sw3收到sw2的stp bpdu后发现不是本设备收到的最优stp bpdu,所以就自动忽视,继续抱(sw1)大腿,sw2在2H后没有收到agreement,所以默认sw3投降了,sw2端口开始进军,转发,这样就淘汰了一个最弱的,达成了破环目的。

四、基础配置命令

1.配置生成树模式

2.配置当前设备为根桥(优先级为0)

3.配置当前设备为备份根桥(优先级为4096)

4.配置交换机rstp优先级

步长4096

5.配置根路径开销


6.配置边缘端口(默认没有边缘端口)

7.配置BPDU保护功能

8.配置根保护功能(前提端口是指定端口)

9.配置环路保护功能

10.配置TC保护功能

配置处理阈值内报文所需时间

配置最大数量阈值

[计算机网络] --- RSTP运行原理及配置相关推荐

  1. RSTP协议原理与配置

    文章目录 前言 一.STP存在的问题 问题一:设备运行初始化环境 问题二:交换机有BP端口,RP端口down掉场景 问题三:交换机无BP端口,RP端口down掉场景 问题四:运行STP的交换机连接用户 ...

  2. RSTP协议原理与配置整——RSTP对STP的改进

    1.端口角色与端口状态 端口角色的重新划分 RSTP定义了两种新的端口角色:备份端口(Backup Port)和预备端口(Alternate Port). 根据STP的不足,RSTP新增加了两种端口角 ...

  3. RSTP协议原理与配置整——RSTP配置实例

    RSTP配置需求 SWA.SWB和SWC组成了一个环形的交换网络,为了消除环路对网络的影响,故使交换机都运行RSTP,最终将环形网络结构修剪成无环路的树形网络结构. RSTP配置实现 配置实现: st ...

  4. 打包工具的配置教程见的多了,但它们的运行原理你知道吗?

    前端模块化成为了主流的今天,离不开各种打包工具的贡献.社区里面对于webpack,rollup以及后起之秀parcel的介绍层出不穷,对于它们各自的使用配置分析也是汗牛充栋.为了避免成为一位" ...

  5. ASP.NET Core 运行原理解剖[2]:Hosting补充之配置介绍

    在上一章ASP.NET Core 运行原理解剖[1]:Hosting中,我们介绍了 ASP.NET Core 的启动过程,主要是对 WebHost 源码的探索.而本文则是对上文的一个补充,更加偏向于实 ...

  6. MyBatis框架 基本配置及运行原理

    MyBatis(半自动,轻量级)简介 原名iBatis,2013年迁移到gitHub,sql与Java编码分离,sql是开发人员控制 PS:对于JDBC,sql夹杂在java代码块中,耦合度高导致编码 ...

  7. Apollo架构体系、Apollo运行原理、Apollo配置中心简单介绍(一)

    笔者在工作中遇到如下问题,随着程序功能越多,配置文件不断增加,一些功能的开关.服务器地址.接口地址.不同环境的一些配置文件不同,这些在每次发布不同环境.更新项目时都比较繁琐,后来学习微服务时接触到了S ...

  8. 【VLAN高级技术】--- MUX VLAN运行原理及实例配置讲解

    文章目录 一.MUX VLAN产生原因 二.MUX VLAN运行原理 三.实例配置讲解(重点!!!) 四.MUX VLAN配置命令 一.MUX VLAN产生原因 个人认为MUX VLAN主要是为大中型 ...

  9. 【VLAN高级技术】--- QinQ运行原理及实例配置讲解

    文章目录 一.QinQ概述 二.QinQ运行原理 三.QinQ类型 四.QinQ实例配置讲解(重点!) 五.QinQ配置命令(灵活QinQ) 一.QinQ概述 现在以太网技术在网络中进行了大量的部署, ...

最新文章

  1. vector机器人 VECTOR’S CUBE 矢量的立方体
  2. 作幼儿教育软件的感受(2005-05-09)
  3. 计算机软考证书英文名称完全翻译指南
  4. 17.C#类型判断和重载决策(九章9.4)
  5. Python中异常处理的用法
  6. 关于NHibernate
  7. c++五子棋_Java五子棋实现
  8. 机器学习面试题(part2)
  9. vue 直接访问静态图片_vue中本地静态图片路径写法
  10. servlet为什么要别名呢_servlet --2
  11. Java8新特性总结 - 3. Lambda表达式
  12. C语言中以二进制形式输出文件
  13. 【软件测试】导致软件缺陷的最大原因是软件需求规格说明书
  14. Apple, Samsung, and Nokia
  15. C#hashtable使用说明 以及 Hashtable和HashMap的区别【总结性】
  16. 南阳理工ACM 题目24 素数距离问题
  17. 答题小程序/刷题微信小程序/考试小程序2.0版本(新增代理,团购,题目导入,数据导出等功能,THINKPHP后台)
  18. 卡方检验的统计量推导_解释相关性的卡方检验的所有统计量 - Minitab
  19. 做不到这些?再干十年你也只能是个普通码农!
  20. 静态路由Route不生效的解决方法

热门文章

  1. 到Visual Studio Code en 2020中的实际实现
  2. 歪写数学史(只要真理——罗巴切夫斯基)
  3. 计算机软件被删了,电脑Word软件被卸载了,怎么办?
  4. cobbler一键装机流程
  5. android 实现AOP 使用Aspectj Kotlin版
  6. Android 系统内的守护进程 - main类服务(1) : netd
  7. ROS2 基础概念 参数
  8. tf.TensorArray简单教程
  9. 局部变量与成员变量的·区别!
  10. 循环神经网络、注意力机制、Seq2Seq、Transformer与卷积神经网络(打卡2)