一、STP协议的缺点,存在的问题


  1. STP 协议工作时间收敛慢,响应时间长---------->RSTP

  2. 原始的802.1d(stp)不支持多个vlan---->(PVST===>把一个单独的 vlan 添加为一个实例)--->MSTP

二、RSTP rapid


  1. 为了解决STP收敛慢的问题

  2. STP的问题 RP:root port 根端口 DP: 指定端口 BP:阻塞端口

    • 问题1:慢:设备从初始化,到收敛完成,最少要经历30s的时间,最长50s

      为了防止临时环路的出现,采用被动等待的计时器

      STP的计算,必须要等待固定的时长

    • 问题2:交换机BP端口切换RP端口的等待延时

      SWC与SWA的直连链路down掉,SWC默认自己为根桥(根桥不存在BP端口)将其BP端口从阻塞

      状态激活成->监听(15s)->学习(15s)切换成RP端口并进入转发状态至少需要经过30s

    • 问题3:交换机没有BP端口,RP端口down掉,DP端口至少需要等待50sオ能切換



         BPDU老化机制:SWC的BP端口接受SWA->SWB->SWC的BPDU,超过20s未收到,则老化。

    • 问题4:交换机连接终端的接口,切换时间过长30s-50s

    • 问题5:拓扑变更机制,复杂且效率低下

    • 其他不足之处:端口角色



  3. RSTP 对STP技术的改进:端口角色、状态

    • 新增了两种角色:都是用来做备份的,本质上也是被阻塞的(非block状态)

      • 去掉了 阻塞端口

        • backup 端口 :指定端口的备份-- 作为指定端口的备份,提供了另外一条从根节点到叶子节点的无环备份路径
        • alternate端口 :根端口的备份--提供了从指定桥到根桥的另一条无环可达路径,作为根端口的代替端口

      • 端口切换不需要尽力等待转发延时,相当于STP的uplink-fast
    • 状态由5种缩减为三种

      • discarding :不转发用户流量,不学习MAC地址---》 disable blocking listening
      • learning :不转发用户流量,学习MAC地址
      • forwarding :转发用户流量,学习MAC地址
  4. RSTP的其他操作

    • 快速收敛机制

      • P/A(proposal/agreement sync机制 ) 一般都是秒级让一个指定端口,尽快进入转发状态,同时避免环路的发送

    • 三种报文格式:P A SYNC
    • 端口的快速切换机制

      • AP--- ---针对与问题3
      • backup --- 针对于问题2
    • 特点:由于有来回确认机制和同步变量机制,就无需依靠计时器来保障无环。

  5. 次等BPDU的处理机制

    • 当一个接口接收到一个次等BPDU之后,马上把自身储存的(最优)BPDU返回给源端口,然后启动P/A机制
    • 可以实现接口的秒级切换

  6. 边缘端口的引入

    • 相当于Port-fast,可以让edge-port 不参加RSTP的任何活动,激活后之后就变成了转发状态
    • 如果边缘端口接口到了BPDU,就丧失了边缘端口的属性(相当于STP的BPDU-filter)

  7. 拓扑变更机制的优化:

    • STP:逐级通报的过程

    • RSTP:扁平化管理,RSTP的所有的交换机 都可以发送BPDU(TC)

    • 如果出现了拓扑变更,RSTP会第一时间通知上下级交换机,清空CAM表



      解析:一旦检测到拓扑发生变化,将进行如下处理:

      为本交换设备的所有非边缘指定端口启动一个TC While Timer,该计时器值是Hello Time的两倍。在这个时间内,清空状态发生变化的端口上学习到的MAC地址。同时,由这些端口向外发送RST BPDU,其中TC置位。一旦TC While Timer超时,则停止发送RST BPDU。

      其他交换设备接收到RST BPDU后,清空所有端口学习到MAC地址,除了收到RST BPDU的端口。然后也为自己所有的非边缘指定端口和根端口启动TC While Timer,重复上述过程。 如此,网络中就会产生RST BPDU的泛洪。

  8. RSTP和STP之间的兼容性 ===》RSTP能够向下兼容

    • RSTP协议与STP协议完全兼容
    1. SW1支持RSTP,发送的报文是STP报文 SW2仅支持STP 发送的报文是STP报文 ===》STP

    2. SW1支持RSTP,发送的报文是STP报文 SW3支持RSTP,发送的报文是STP报文 ===》STP

    3. SW1支持RSTP,发送的报文是RSTP报文 SW#支持RSTP,发送的报文是RSTP报文 ===》RSTP

  9. RSTP特性

    1. BPDU保护



      配置边缘端口的目的

      希望这些端口 以后组网的时候,连接的都是终端设备

      即使边缘端口连接了交换机,也需要先把这个交换机进行BPDU参数的调试(BID,端口cost值),当交换机接入网络,即使存在STP的计算,不会再次造成网络的震荡

      如果边缘端口 硬性规定为 不允许连接交换机,在这些端口上来配置BPDU-protection。

    2. 根桥防护

      场景1.客户网络和 运营商网络 进行二层对接 ===》 根桥防护主要配置在运营商网络上



      场景2.由于维护人员的错误配置或网络中的恶意攻击,网络中合法根桥有可能会收到优先级更高的RST BPDU

      实现原理:一旦启用Root保护功能的指定端口收到优先级更高的RST BPDU时,端口状态将进入Discarding状态,不再转发报文。在经过一段时间,如果端口一直没有再收到优先级较高的RST BPDU,端口会自动恢复到正常的Forwarding状态。

      Root保护功能只能在指定端口上配置生效。

    3. TC-BPDU泛洪保护

      场景:黑客在边缘端口接入一台计算机不断伪造和发送TC-BPDU (对于边缘端口来说,不希望收到BPDU报文)



      解决方法1:强制规定该端口为边缘端口,禁止这个端口接收BPDU---》BPDU-protection

      解决方法2:(如果允许边缘端口接收BPDU),黑客想这个端口发送TC-bpdu,在单位时间内,交换设备处理TC-BPDU报文的次数可配置,设备只会处理阈值指定的次数

      如果TC-BPDU 超过了阈值设置,交换机将不在对这些TC-BPDU进行处理。

三、RSTP配置实现

  1. RSTP配置需求



    如图所示,SWA、SWB和SWC组成了一个环形的交换网络,为了消除环路对网络的影响,故使交换机都运行RSTP,最终将环形网络结构修剪成无环路的树形网络结构。

  2. RSTP配置实现

     SWA
    stp enable 开启STP
    stp mode rstp 将模式切换RSTP
    stp root primary 将SWA设为根桥 SWB
    stp enable 开启STP
    stp mode rstp 将模式切换RSTP
    stp bpdu-protection 开启BPDU保护
    interface GigabitEthernet 0/0/4
    stp edged-port enable 将当前端口配置成边缘端口 SWC
    stp enable 开启STP
    stp mode rstp 将模式切换RSTP
    stp bpdu-protection 开启BPDU保护
    interface GigabitEthernet 0/0/4
    stp edged-port enable 将当前端口配置成边缘端口
  3. RSTP配置验证

    在SWA上查看生成树信息:

RSTP的更多相关文章

  1. Android视频直播解决方案(rstp、udp)

    做局域网视频直播有两种方案,通过rstp或udp协议. 1.rstp协议,网络上有个开源项目,基于Android,且这个项目也是一个服务端,里面也集成了http访问页面,可以通过http或者rstp直 ...

  2. iOS使用ffmpeg播放rstp实时监控视频数据流

    一.编译针对iOS平台的ffmpeg库(kxmovie) 最近有一个项目.须要播放各种格式的音频.视频以及网络摄像头实时监控的视频流数据,经过多种折腾之后,最后选择了kxmovie,kxmovie项目 ...

  3. 配置STP、RSTP以及负载均衡

    生成树协议是一种二层管理协议,它通过有选择性地阻塞网络冗余链路来达到消除网络二层环路的目的,同时具备链路的备份功能. 每个VLAN都生成一棵树是一种比较直接,而且最简单的解决方法.它能够保证每一个VL ...

  4. STP RSTP

    一.透明网桥 1.对于一般的透明网桥来说,通常都具有以下的特点: +拓展LAN的能力 +自主动态学习站点的地址信息 当网桥的某个端口上收到含有某个源MAC地址的数据帧时,它就把该MAC地址和接收该数据 ...

  5. BPDU报文(RSTP)

    与STP 的BPDU报文格式相同,就是在flags字段报文中间几位得到应用 主要原理:利用flages位中的Proposal与Agreement来进行协商,从而快速从 discarding 转成 fo ...

  6. RSTP介绍

    1. 介绍 RSTP(Rapid Spanning Tree Protocol),快速生成树协议,标准为802.1w(已合入802.1D-2004)RSTP是对STP技术的修改和补充,最大特点就是快速 ...

  7. STP-9-处理RSTP中的拓扑变化

    STP能识别四种不同的拓扑变化事件, 而RSTP只有当非边界端口从非转发状态变为转发状态才认为发生了拓扑变化事件 因为刚变为转发状态的端口可以为一些mac地址提供比之前更好的路径,CAM表需要更新.失 ...

  8. 华为eNSP路由交换实验-生成树之RSTP

    RSTP基础配置 实验拓扑图 实验步骤 1.基本配置 根据实验编址表进行相应的基本IP配置. 2.配置RSTP基本功能. (1)把生成树模式由默认的MSTP(华为交换机默认开启)改为RSTP. [FW ...

  9. RSTP基本配置

    1.用四台S3700交换机,2台PC机,一台HUB,组建网络拓扑 2.测试主机间的连通性 3.配置rstp基本功能 (1)把交换机stp模式由默认的mstp变为rstp.在华为交换机上默认开启了mst ...

  10. 实验之RSTP基础配置

    STP升级版之RSTP 实验环境 实验拓扑图 实验编址 实验步骤 1.基本配置配置PC端 测试i相通性 2.配置RSTP基本功能在S1-S4上都使用命令stp mode rstp更改生成树模式(因为华 ...

随机推荐

  1. Javas数组03——数组的使用

    Javas数组--数组的使用 1.普通的for循环 2.for-each循环 3.数组做方法入参 4.数组做返回值 例子1--普通for循环  package array; ​ public clas ...

  2. 常用的IDEA快捷键

    常用的IDEA快捷键 代码右移:TAB键 代码左移:shift+TAB键 代码上移:shift+alt +方向键上 代码下移:shift+alt +方## 标题向键下 格式化代码 : ctrl +sh ...

  3. Mybatis源码解析2—— 实例搭建

    大家好,我是可乐. 上篇文章给大家撸了一遍用 JDBC 直接操作数据库的实例,还只是简单写了一个查询的接口,其代码量就已经很大了,并且可乐还给大家分析了直接使用 JDBC 带来的一些问题,总之是一种反 ...

  4. Java Lambda 表达式源码分析

    基本概念 Lambda 表达式 函数式接口 方法引用 深入实现原理 字节码 为什么不使用匿名内部类? invokedynamic 总结 参考链接 GitHub 项目 Lambda 表达式是什么?JVM ...

  5. DHCP服务-自动管理IP地址和分配固定IP

    dhcp服务 端口:67 配置文件:/etc/dhcp/dhcpd.conf 自动分配IP: 一. 安装服务:yum install dhcp 安装过程省略 二.首先,看到配置文件中啥也没有,他的配置 ...

  6. SQL 练习33

    查询课程编号为 01 且课程成绩在 80 分以上的学生的学号和姓名 SELECT Student.SId,Student.Sname,Cname,score from Student,Course,S ...

  7. 从零开始实现简单 RPC 框架 4:注册中心

    RPC 中服务消费端(Consumer) 需要请求服务提供方(Provider)的接口,必须要知道 Provider 的地址才能请求到. 那么,Consumer 要从哪里获取 Provider 的地址 ...

  8. 题解 v

    传送门 考场上只会爆搜--觉得重复状态其实有很多但不知道怎么记忆化,结果-- 对于类似这样n不算太小但只有二三十,而重复状态极多的题其实也是可以跑状压/记搜的,状态可以开map存 然后就是爆搜,就没什 ...

  9. 什么是TCP,什么是UDP,它们两者的区别? 三次握手

    TCP: 定义: TCP(Transmission Control Protocol 传输控制协议)是一种面向连接的.可靠的.基于字节流的传输层通信协议,由IETF的RFC 793定义. TCP编程的 ...

  10. JMeter结果树响应数据中文乱码

    打开apache-jmeter-2.11\bin\jmeter.properties文件,搜索"encoding"关键字,找到如下配置: # The encoding to be ...