精华内容
下载资源
问答
  • 这篇文章主要介绍了python处理RSTP视频流过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 python链接海康摄像头,并以弹出框的方式播放实时视频流, ...
  • stp、rstp、mstp详解

    2017-10-26 11:01:32
    1 STP/RSTP基础 5 1.1 培训目标 5 1.2 STP出现的背景 6 1.3 STP的基本概念 8 1.3.1 基本思想 8 1.3.2 一个根桥 10 1.3.3 二种度量 11 1.3.4 三要素选举 13 1.3.5 四个比较原则 15 1.3.6 五种端口状态 19 1.4 STP技术...
  • 在做这一问时准备好计时器,观察RSTP对比STP在链路收敛,链路备份,以及终端接入中分别比STP快多长时间.
  • 这是一个简单的小demo,Ubuntu16.04 opencv vlc 用vlc读取rstp流,opencv处理
  • RSTP Linux-开源

    2021-05-02 19:10:36
    Linux的快速生成树协议(RSTP)实现。 该项目在http://git.kernel.org/cgit/linux/kernel/git/shemminger/rstp.git/?h=master上处于活动状态,但论坛和交叉编译以及错误报告和修复的支持不多。 在此提供帮助和维护...
  • rstp和stp讲解

    2018-08-21 20:31:17
    对stp和rstp做一次小总结,内容不太多,适合初学者,下次整全一点
  • 很多网络的细节,看原文要比看中文翻译来得更直接。更加接近原作者的思考角度。
  • 本项目是一个基于安卓的视频直播项目源码,编译安装到手机上后,在电脑上安装vlc播放器,在vlc播放器(媒体-打开串流)里面输入安卓客户端生成的rstp地址点击播放就可以串流你手机摄像头实时看到的东西。前提条件:...
  • RSTP 详细

    2021-05-13 18:02:05
    RSTP与STP的不同增加端口角色:AP和BP减少端口状态为Discardinglearningforwarding充分利用BPDU中的Flag字段对BPDU的处理方式发生了改变提高收敛速度增加了保护功能RSTP和STP消除环路的思想保持一致,RSTP具备了STP...

    RSTP与STP的不同增加端口角色:AP和BP

    减少端口状态为Discardinglearningforwarding

    充分利用BPDU中的Flag字段

    对BPDU的处理方式发生了改变

    提高收敛速度

    增加了保护功能

    RSTP和STP消除环路的思想保持一致,RSTP具备了STP的所有功能,支持RSTP的网桥可以和支持STP的网桥一同运行。

    57ed4cb1a0e7a751a226f320270503f3.png

    RSTP的端口角色共有4种:根端口、指定端口、Alternate端口和Backup端口。

    根端口和指定端口的作用同STP协议中定义,Alternate端口和Backup端口的描述如下:从配置BPDU报文发送角度来看:

    Alternate端口就是由于学习到其它网桥发送的更优配置BPDU报文而阻塞的端口。

    Backup端口就是由于学习到自己发送的更优配置BPDU报文而阻塞的端口。

    从用户流量角度来看:

    Alternate端口提供了从指定桥到根的另一条可切换路径,作为根端口的备份端口。

    Backup端口作为指定端口的备份,提供了另一条从根桥到相应网段的备份通路。

    给一个RSTP域内所有端口分配角色的过程就是整个拓扑收敛的过程。

    RSTP端口状态Forwarding

    Learning

    discardingSTP端口状态RSTP端口状态发送配置BPDUMAC地址学习转发数据

    DisableDiscarding否否否

    BlockingDiscarding否否否

    ListeningDiscarding是否否

    LearningLearning是是否

    ForwardingForwarding是是是

    RSTP的状态规范把原来的5种状态缩减为3种。根据端口是否转发用户流量和学习MAC地址来划分:如果不转发用户流量也不学习MAC地址,那么端口状态就是Discarding状态。

    如果不转发用户流量但是学习MAC地址,那么端口状态就是Learning状态。

    如果既转发用户流量又学习MAC地址,那么端口状态就是Forwarding状态。

    RSTP计算过程:端口在Discarding状态下完成端口角色的确定:

    当端口角色确定为根端口和指定端口后,经过forwardingdelay后,端口进入Learning状态,处于Learning状态的端口其处理方式和STP相同,此期间端口开始学习MAC地址并在Forwardingdelay后进入Forwarding状态,开始转发数据。实际上,RSTP会通过其他方式加快这个过程。

    当端口角色确定为Alternate端口后,端口会维持在Discarding状态。

    RSTP对STP的BPDU改动充分利用STP中BPDU的Flag,明确端口角色

    Type字段为2

    Flag字段使用了之前的保留位,更改后的配置BPDU更名为RST BPDU

    2c2eb1e74ffd62deb81594d9b3920e0d.png

    配置BPDU格式的改变,充分利用了STP协议报文中的Flag字段,明确了端口角色。在配置BPDU报文的格式上,除了保证和STP格式基本一致之外,RSTP作了一些小变化:Type字段,配置BPDU类型不再是0而是2,所以运行STP的设备收到RSTP的配置BPDU时会丢弃。

    Flags字段,使用了原来保留的中间6位,这样改变的配置BPDU叫做RSTBPDU。

    RSTP中BPDU的Flag字段解释:第0位为TC标志位,和STP相同。

    第1位为Proposal标志位,该位置位表示该BPDU为快速收敛机制中的Proposal报文。

    第2位和第3位为端口角色标志位,00表示端口角色为未知;01表示端口角色为Alternate或Backup端口;10表示端口为根端口;11表示端口为指定端口。

    第4位为Learning标志位,该位置位表示端口处于Learning状态。

    第5位为Forwarding标志位,该位置位表示端口处于Forwarding状态。

    第6位为Agreement标志位,该位置位表示该BPDU位快速收敛机制中的Agreement报文。

    第7位为TCA标志位,和STP相同。

    RSTP中配置BPUD的处理非根桥设备每隔HelloTimer从指定端口主动发送配置BPDU

    BPDU超时计时器为3个HelloTimer

    阻塞端口可以立即对收到的次级BPDU进行回应

    4ff09971a6cc540bd7802ba0bafd677d.png

    BPDU处理发生的变化拓扑稳定后,配置BPDU报文的发送方式

    拓扑稳定后,根桥按照HelloTimer规定的时间间隔发送配置BPDU。其他非根桥设备在收到上游设备发送过来的配置BPDU后,才会触发发出配置BPDU,此方式使得STP协议计算复杂且缓慢。RSTP对此进行了改进,即在拓扑稳定后,无论非根桥设备是否接收到根桥传来的配置BPDU报文,非根桥设备仍然按照HelloTimer规定的时间间隔发送配置BPDU,该行为完全由每台设备自主进行。

    更短的BPDU超时计时

    如果一个端口连续3个HelloTime时间内没有收到上游设备发送过来的配置BPDU,那么该设备认为与此邻居之间的协商失败。而不像STP那样需要先等待一个MaxAge。

    次级BPDU的处理

    当一个端口收到上游的指定桥发来的RSTBPDU报文时,该端口会将自身存储的RSTBPDU与收到的RSTBPDU进行比较。如果该端口存储的RSTBPDU的优先级高于收到的RSTBPDU,那么该端口会直接丢弃收到的RSTBPDU,立即回应自身存储的RSTBPDU。当上游设备收到下游设备回应的RSTBPDU后,上游设备会根据收到的RSTBPDU报文中相应的字段立即更新自己存储的RSTBPDU。由此,RSTP处理次等BPDU报文不再依赖于任何定时器通过超时解决拓扑收敛,从而加快了拓扑收敛。

    STP收敛机制在STP中,为了避免环路,端口从使能到进入转发状态需要等待默认30秒的时间,只能依靠计时器被动的收敛。如果想要缩短计时器,会引起网络的不稳定性。

    RSTP快速收敛机制边缘端口机制

    在RSTP里面,如果某一个指定端口位于整个网络的边缘,即不再与其他交换设备连接,而是直接与终端设备直连,这种端口叫做边缘端口。边缘端口不接收处理配置BPDU,不参与RSTP运算,可以由Disable直接转到Forwarding状态,且不经历时延,就像在端口上将STP禁用。但是一旦边缘端口收到配置BPDU,就丧失了边缘端口属性,成为普通STP端口,并重新进行生成树计算,从而引起网络震荡。

    根端口快速切换机制

    如果网络中一个根端口失效,那么网络中最优的Alternate端口将成为根端口,进入Forwarding状态。因为通过这个Alternate端口连接的网段上必然有个指定端口可以通往根桥。

    Proposal/Agreement机制

    当一个端口被选举成为指定端口之后,在STP中,该端口至少要等待一个ForwardDelay(Learning)时间才会迁移到Forwarding状态。而在RSTP中,此端口会先进入Discarding状态,再通过Proposal/Agreement机制快速进入Forward状态。这种机制必须在点到点全双工链路上使用。

    Proposal/Agreement机制简称P/A机制。

    257d63aa06c81b63c4e3b987eda75afb.png

    边缘端口机制边缘端口连接的是终端,当网络拓扑发生变化时,边缘端口不会发生环路,所以边缘端口可以忽略两个ForwardingDelay,直接进入转发状态,无需任何延迟。

    边缘端口不接收处理配置BPDU,不参与RSTP运算,可以由Disable直接转到Forwarding状态,且不经历时延,就像在端口上将STP禁用。但是一旦边缘端口收到配置BPDU,就丧失了边缘端口属性,成为普通STP端口,并重新进行生成树计算,从而引起网络震荡。

    b3081482d5c51c8bd3cdc31cc4ac38e4.png

    根端口快速切换机制在RSTP中,Alternate端口为根端口的备份。当该网桥的根端口失效进入阻塞状态时,网桥会选择优先级最高的Alternate端口作为新的根端口,如果网桥对端设备指定端口依然为转发状态,则该网桥的新根端口直接进入Forwarding状态。

    P/A机制是指定端口快速进入转发状态

    工作模式为点对点的全双工模式

    包括Proposal和Agreement报文

    c52108d2a20aa38c5fe177ece947c086.png

    P/A机制Proposal/Agreement机制,其目的是使一个指定端口尽快进入Forwarding状态。

    P/A机制要求两台交换设备之间链路必须是点对点的全双工模式。一旦P/A协商不成功,指定端口的选择就需要等待两个ForwardDelay,协商过程与STP一样。

    新链路连接成功后,P/A机制协商过程如下

    p0和p1两个端口马上都先成为指定端口,发送RSTBPDU。

    S2的p1口收到更优的RSTBPDU,马上意识到自己将成为根端口,而不是指定端口,停止发送RSTBPDU。

    S1的p0进入Discarding状态,于是发送的RSTBPDU中把proposal置1。

    S2收到根桥发送来的携带proposal的RSTBPDU,开始将自己的所有端口进入sync变量置位。

    p2已经阻塞,状态不变;p4是边缘端口,不参与运算;所以只需要阻塞非边缘指定端口p3。

    p2、p3、p4都进入Discarding状态之后,各端口的synced变量置位,根端口p1的synced也置位,于是便向S1返回Agreement位置位的回应RSTBPDU。该RSTBPDU携带和刚才根桥发过来的BPDU一样的信息,除了Agreement位置位之外(Proposal位清零)。

    当S1判断出这是对刚刚发出的Proposal的回应,于是端口p0马上进入Forwarding状态。

    P/A过程可以向下游继续传递

    334c5355a2e141dc0eee02db1a1c6b80.png

    P/A过程可以向下游继续传递。

    当S1和S2之间新增了一条链路后,P/A机制工作如下:S1通过端口E1发送Proposal置位的RSTBPDU消息给S2。

    S2收到该消息后,意识到E2为根端口,启用同步机制阻塞指定端口E1和E3以避免产生环路,然后将根端口设置为转发状态,并向S1发送Agreement消息。

    S1收到Agreement消息后,指定端口E1马上进入转发状态。

    S2处于同步状态的非边缘指定端口E1和E3发送Proposal报文。

    S3收到S2发送的Proposal报文后,判断E1为根端口,启动同步过程,由于S3下游均为边缘端口,所以已经实现了同步,因此S3直接向S2回复Agreement消息。

    S2收到S3发送的Agreement消息后,端口E1马上进入转发状态。

    S4的处理过程如S3。

    S2收到S4发送的Agreement消息后,端口E3马上进入转发状态。

    P/A过程结束。

    在RSTP中检测拓扑是否发生变化只有一个标准:一个非边缘端口迁移到Forwarding状态。

    一旦检测到拓扑发生变化,将进行如下处理:为本交换设备的所有非边缘指定端口启动一个TC WhileTimer,该计时器值是HelloTime的两倍。在这个时间内,清空状态发生变化的端口上学习到的MAC地址。同时,由这些端口向外发送RSTBPDU,其中TC置位。一旦TC WhileTimer超时,则停止发送RSTBPDU。

    其他交换设备接收到RSTBPDU后,清空所有端口学习到MAC地址,除了收到RSTBPDU的端口。然后也为自己所有的非边缘指定端口和根端口启动TC WhileTimer,重复上述过程。

    如此,网络中就会产生RSTBPDU的泛洪。

    RSTP与STP互操作RSTP端口在接收到STPBPDU的两个hellotimer后,会切换到STP工作模式

    切换到STP协议的RSTP端口会丧失快速收敛等特性

    当运行STP的设备从网络撤离后,原运行RSTP的交换设备可迁移回到RSTP工作模式

    RSTP可以和STP互操作,但是此时会丧失快速收敛等RSTP优势。

    当一个网段里既有运行STP的交换设备又有运行RSTP的交换设备,STP交换设备会忽略RST BPDU,而运行RSTP的交换设备在某端口上接收到运行STP的交换设备发出的配置BPDU,在两个Hello Time时间之后,便把自己的端口转换到STP工作模式,发送配置BPDU。这样,就实现了互操作。

    在华为设备上可以配置运行STP的交换设备被撤离网络后,运行RSTP的交换设备可迁移回到RSTP工作模式。

    选举根交换机

    端口角色描述

    Root Port根端口,是所在交换机上离根交换机最近的端口,稳定时处于转发状态。

    Designated Port指定端口,转发所连接的网段发往根交换机方向的数据和从交换机方向发往所连接的网段的数据,稳定时处于转发状态。

    Backup Port备份端口,不处于转发状态,所属交换机为端口所连网段的指定交换机。

    Alternate Port预备端口,不处于转发状态,所属交换机不是端口所连网段的指定交换机。

    端口状态描述

    Discarding

    丢弃状态此状态下端口对接收到的数据做丢弃处理,端口不转发数据帧,不学习MAC地址表。

    Alternate Port和Backup Port

    Learning

    学习状态此状态下端口不转发数据帧,但是学习MAC地址表,参与计算生成树,接收并发送BPDU。

    Forwarding

    转发状态此状态下端口正常转发数据帧,学习MAC地址表,参与计算生成树,接收并发送BPDU。

    展开全文
  • RSTP

    2021-01-22 16:07:27
    1.RSTP接口角色 在RSTP中,共有4种接口角色:根接口、指定接口、替代接口和备份接口。 根接口和指定接口的定义和STP一致。新增了两个接口角色。 替代接口 替代接口可以简单地理解为根接口的备份,它是一台设备上,由于...

    1.RSTP接口角色

    在RSTP中,共有4种接口角色:根接口、指定接口、替代接口和备份接口。

    根接口和指定接口的定义和STP一致。新增了两个接口角色。

    替代接口

    替代接口可以简单地理解为根接口的备份,它是一台设备上,由于收到了其他设备所发送的BPDU从而被阻塞的接口。

    如果设备的根接口发生故障,那么替代接口可以成为新的根接口,这加快了网络的收敛过程。

    备份接口

    备份接口是一台设备上由于收到了自己所发送的BPDU从而被阻塞的接口。

    如果一台交换机拥有多个接口接入同一个网段,并且在这些接口中有一个被选举为该网段的指定接口,那么这些接口中的其他接口将被选举为备份接口,备份接口将作为该网段到达根桥的冗余接口。通常情况下,备份接口处于丢弃状态。

    2.RSTP接口状态

    STP与RSTP的接口状态对应关系

    STP的接口状态RSTP的接口状态
    禁用(Disabled)
    阻塞(Blocking)
    侦听(Listening)
    丢弃(Discarding)
    学习(Learning)学习(Learning)
    转发(Forwarding)转发(Forwarding)

    在RSTP中,处于丢弃状态的接口既不会转发业务数据帧,也不会学习MAC地址。

    3.BPDU

    RSTP的配置BPDU被称为RST BPDU (Rapid Spanning Tree BPDU),它的格式与STP的配置BPDU大体相同,只是其中个别字段做了修改,以便适应新的工作机制和特性。

    对于RST BPDU来说, “协议版本ID"字段的值为0x02, "BPDU类型”字段的值也为0x02,最重要的变化体现在“标志”字段中,该字段一共8bit, STP只使用了其中的最低比特位和最高比特位,而RSTP在STP的基础上,使用了剩余的6个比特位,并且分别对这些比特位进行了定义
    在这里插入图片描述
    STP只使用了该字段的最高及最低比特位,在RST BPDU中这两个比特位的定义及作用不变。另外, Aggrement (同意)及Proposal (提议)比特位用于RSTP的P/A (Proposal/Aggrement)机制,该机制大大地提升了RSTP的收敛速度。

    Port Role (接口角色)比特位的长度为2bit,它用于标识该RST BPDU发送接口的接口角色, 01表示根接口, 10表示替代接口, 11表示指定接口,而00则被保留使用(以上的值都是二进制格式)。最后, Forwarding (转发)及Learning (学习)比特位用于表示该RST BPDU发送接口的接口状态。

    RSTP与STP不同,在网络稳定后,无论是根桥还是非根桥,都将周期性地发送配置BPDU,也就是说对于非根桥而言,它们不用在根接口上收到BPDU之后,才被触发而产生自己的配置BPDU,而是自发地、周期性发送BPDU。

    4.边缘接口

    用于连接pc或者服务器的接口,边缘接口缺省不参加生成树计算,当边缘接口被激活之后,它可以立即切换到转发状态并开始收发业务流量,而不用经历转发延迟时间,因此工作效率大大提升了。另外,边缘接口的关闭或激活并不会触发RSTP拓扑变更。

    5.P/A机制

    RSTP通过Proposal/Agreement (提议/同意)机制来保证一个指定接口得以从丢弃状态快速进入转发状态,从而加速了生成树的收敛。

    ProposalAgreement机制也被简称为P/A机制,它是交换机之间的一种握手机制。
    在这里插入图片描述
    (1)交换BPDU报文
    (2)sw1发送Proposal置位的BPDU,sw2阻塞所有的非边缘接口,确保没有环路。
    (3)sw2把所有的接口都完成同步后,向sw1发送Agreement置位的BPDU,sw1收到后把接口切换到转发状态。

    6.保护功能

    BPDU保护(BPDU Protection )

    当边缘接口收到BPDU后,该接口将立即变成一个普通的RSTP接口,这个过程可能引发网络中的RSTP重新计算,从而对网络造成影响。

    边缘接口通常用于连接终端设备,理论上说是不应该收到BPDU的,然而如果由于人为的疏忽导致接口误接了交换设备,那么该接口便有可能收到BPDU,这种疏忽同时也引入了二层环路的隐患。

    另外,如果攻击者连接到了边缘接口,并针对该接口发起BPDU攻击,也将对网络造成极大影响。

    通过在交换机上激活BPDU保护功能即可解决上述问题。当交换机激活该功能后,如果边缘接口收到BPDU,则交换机会立即把接口关闭(置为Error-Down),同时触发告警。

    如果受保护的边缘接口由于收到了BPDU而被关闭,缺省时是不会自动恢复的,网络管理员需在该接口的配置视图下进行操作恢复。

    根保护(Root Protection )

    根桥的变更会导致RSTP从新计算,影响网络运行。为了保护根桥的稳定,需要对根桥进行保护。

    在交换机的相关接口上部署根保护功能,即可规避上述问题。当根桥的指定接口激活根保护功能后,该接口如果收到更优的BPDU,则会忽略这些BPDU,并将接口切换到丢弃状态,如此一来,根桥的地位就得以保持。

    根保护功能只有在指定接口上激活才会有效。当激活了根保护功能的指定接口收到更优的BPDU 时,它将忽略这些BPDU,并立即H接口切换到丢状态。

    如果接口不再收到更优的BPDU,则一段时间后(通常为两倍的转发延迟时间),它将会自恢复到转发状态。

    环路保护(Loop Protection )

    在根接口上激活了环路保护功能后,如果该接口长时间没有收到BPDU,那么交换机将会重新选举根接口并将该接口的角色调整为指定接口,此时交换机会将该接口的状态切换到丢弃状态,从而避免环路的发生。

    在替代接口上激活了环路保护功能后,如果该接口长时间没有收到BPDU,那么交换机会将该接口的角色调整为指定接口,但是将其状态保持在丢弃状态,从而避免环路的出现。

    拓扑变更保护(TC Protection )

    交换机激活拓扑变更保护功能后,将在单位时间内只进行一定次数的TC BPDU处理,如果交换机在该时间内收到超过所设上限的TC BPDU,那么它只会按照规定的次数进行处理,而对于超出的部分,则必须等待一段时间后才进行处理。

    展开全文
  • OPENCV RSTP FOR C# & C++

    2018-12-14 09:31:52
    C#利用OpenCvSharp处理RTSP,OpenCVSharp,从名字就可以看出其是OpenCV提供给C#的接口。OpenCVSharp是OpenCV的.NET wrapper,它比Emgucv更接近于原始的OpenCV,并且有很多的样例参考,其采用LGPL发行,对商业应用...
  • 交换机怎么配置RSTP协议?在一些通讯要求比较严格的行业,一般不允许通讯中断,那么为了防止链路因为某种原因而无法通讯,就需要将其配置成冗余链路,当主链路因为某种原因而断开时,会马上切换到备用链路,下面就...
  • 配置 RSTP.doc

    2021-05-15 08:52:15
    配置 RSTP.doc
  • 华源格林 IES STP_RSTP应用及配置docx,华源格林 IES STP_RSTP应用及配置
  • C# opencv rtsp 网络摄像头
  • VLC小型rstp拉流播放器

    2018-10-17 16:49:37
    海康、大华摄像头直接拉流的小型播放器,用于测试摄像头是否接入,以及试验视频路径是否正确
  • 利用流媒体将RSTP流转成WEB端可播放(使用EasyDarwin)-附件资源
  • 海康威视视频流RSTP

    2015-09-01 16:16:08
    海康威视视频流RSTP
  • H3C_STP_RSTP_MSTP协议原理及配置。。。。。。。。。。。。。。。。。
  • IEEE Standard 802.1D-2004 RSTP,基本上都翻译成了中文
  • 总结归纳了生成树 及快速生成树的原理 作用 以及工作流程。生成树协议旨在消除局域网中数据链路层产生的物理环路;运行了该协议的设备群,通过互相交互信息发现网络中的环路,并有选择的对某些端口进行阻塞,最终将...
  • RSTP的原理

    2021-08-31 17:50:25
    目录前言RSTP的BPDURSTP的端口角色STP与RSTP端口状态对比RSTP收敛过程RSTP对STP的改进端口角色与端口状态的改变BPDU报文的改变BPDU超时判断的改变配置BPDU的处理发生变化的改变快速收敛机制的改变P/A机制AP端口备份...

    前言

    STP协议虽然能够解决环路问题,但是由于网络拓扑收敛较慢,影响了用户通信质量,而且如果网络中的拓扑结构频繁变化,网络也会随之频繁失去连通性,从而导致用户通信频繁中断,这也是用户无法忍受的。由于STP的不足,IEEE于2001年发布的802.1w标准定义了RSTP。RSTP在STP基础上进行了诸多改进优化,使得协议更加清晰、规范,同时也实现了二层网络拓扑的快速收敛。

    RSTP的BPDU

    在这里插入图片描述
    BPDU报文被封装在以太网数据帧中,目的MAC是组播MAC:01-80-C2-00-00-00,Length/Type字段为MAC数据长度,后面是LLC头,IEEE为STP保留了DSAP(Destination Service Access Point)和SSAP(Source Service Access Point)为0x42的值,UI为0x03,LLC(Logical Link Control)之后是BPDU报文头。
    在这里插入图片描述

    RSTP的端口角色

    角色描述
    Root根端口就是去往根桥路径开销最小的端口,根端口负责向根桥方向转发数据,这个端口的选择标准是依据根路径开销判定的。
    Designated指定端口负责向下游设备转发数据,指定端口提供了根桥到达下游设备的最优路径。
    BackupBackup端口作为指定端口的备份,提供了另外一条从根桥到非根桥的备份链路。
    AlternateAlternate端口作为根端口的备份端口,提供了从指定桥到根桥的另一条备份路径。

    STP与RSTP端口状态对比

    STP端口状态RSTP端口状态端口在拓扑中的角色
    ForwardingForwarding包括根端口、指定端口
    LearningLearning包括根端口、指定端口
    ListeningDiscarding包括根端口、指定端口
    BlockingDiscarding包括Alternate端口、Backup端口
    DisabledDiscarding包括Disable

    RSTP收敛过程

    在这里插入图片描述
    当设备启动时,每个设备都认为自己是根桥,且端口都是指定端口都处于Discarding状态,因此他们会互相发送配置BPDU,并且BPDU中的P置位发起P/A协商。SWA收到SWB的P置位BPDU会查看桥ID,发现自己的比对方优,因此SWA不会回应SWB的BPDU,而SWB收到比自己BPDU优的BPDU则会进入同步状态,同步状态下将所有的下游接口设置为discarding状态,除了Alternate和边缘端口,这样做是为了防止临时的环路产生。当同步执行完后,SWB会将收到更优BPDU的端口转变为Root端口,并迅速进入forwarding状态,然后发送A置位的BPDU给SWA,SWA收到A置位的BPDU后,立刻将制定端口转为forwarding状态,这样SWA和SWB直接链路就通了,而不必像STP一样等待30S的端口转变时延。
    在这里插入图片描述
    同理SWA和SWC直接也会执行P/A的协商,也同样SWC发现SWA的BPDU比自己的优,就执行同步状态,而后改变端口角色并迅速进入forwarding状态,而后发送A置位BPDU给SWA,SWA收到A置位BPDU后将指定端口转为forwarding状态。SWA和SWC直接也被拉通。SWB和SWC直接同样也会进行P/A的协商,但是不同的是,SWB发送P置位BPDU给SWC,SWC收到后虽然比自己的要优但是我从其他接口学到的BPDU同样比SWB的优,因此我不会对SWB进行回应,同理,SWB收到SWC的BPDU,但是SWB本身就比SWC的BPDU要优,因此SWB也不会对SWC进行回应,这时候他们之间就是正常STP选举指定端口,然后经过2个forwarding delay来进行缓慢收敛。不过这并不会影响到网络的数据转发,因为SWB和SWC直接本来就有一个端口要被阻塞,因此慢收敛并没有什么影响。

    RSTP对STP的改进

    端口角色与端口状态的改变

    RSTP在STP的基础上新增了Alternate Port和Backup Port,作为根端口和指定端口的备份,一旦设备上根端口出现了故障设备会查看AP端口对端端口角色,如果对端端口为指定端口,则设备上的AP端口会转变为RP端口并迅速进入forwarding状态,而不必等待30秒状态改变时间,会迅速转变为根端口进行数据转发。BP端口作为指定端口的备份,提供了另外一条从根节点到达叶子节点的无环路备份路径。
    RSTP在STP基础上将disable,blocking和listening和为一个discarding状态,因为从用户角度来讲,Listening、Learning和Blocking状态并没有区别,都同样不转发用户流量。

    BPDU报文的改变

    配置BPDU格式的改变,RSTP充分利用了STP协议报文中的Flag字段,明确了端口角色。
    在配置BPDU报文的格式上,除了保证和STP格式基本一致之外,RSTP作了一些小变化:
    Type字段,配置BPDU类型不再是0而是2,所以运行STP的设备收到RSTP的配置BPDU时会丢弃。
    Flag字段,使用了原来保留的中间6位,这样改变的配置BPDU叫做RST(Rapid Spanning Tree) BPDU。

    BPDU超时判断的改变

    在STP中判断BPDU超时即在MAX AGE默认20s内未收到对端发送的BPDU则认为对端设备不存在,而在RSTP中仅需要等待3个HELLO TIME默认6s时间即可。

    配置BPDU的处理发生变化的改变

    拓扑稳定后,在STP中根桥按照Hello Timer规定的时间间隔发送配置BPDU。其他非根桥设备在收到上游设备发送过来的配置BPDU后,才会触发发出配置BPDU,此方式使得STP协议计算复杂且缓慢。RSTP对此进行了改进,即在拓扑稳定后,无论非根桥设备是否接收到根桥传来的配置BPDU报文,非根桥设备仍然按照Hello Timer规定的时间间隔发送配置BPDU,该行为完全由每台设备自主进行。

    快速收敛机制的改变

    P/A机制

    首先RSTP在STP基础上新增了P/A机制,用做快速拉通指定端口与根端口之间的链路,或者说快速让指定端口进入forwarding状态。

    AP端口备份

    AP端口作为RP端口的备份,在RP端口故障时可以在无环的环境下迅速成为RP并进入forwarding状态,这也加快了RSTP的收敛速度。

    链路故障处理

    在这里插入图片描述
    如上图SWB到达根桥的链路发生故障,SWB察觉到后向SWC发起P置位BPDU希望重新选举根桥,SWC收到一个次等BPDU会将根桥的BPDU发给SWB并将端口角色改为DP,之后他们之间进行P/A协商,由于SWB优先级小所以SWB将自己的接口改为DR,并发送A置位BPDU给SWC,SWC迅速进入forwarding状态,业务恢复正常。

    边缘端口

    在这里插入图片描述
    RSTP在STP基础上新增了边缘端口的机制,边缘端口配置在交换机与用户设备相连的接口,配置成边缘端口后将不参与STP计算,且端口状态直接从discarding转为forwarding状态,而STP中用户加入网络则需要经历30S的时延。一旦边缘端口收到BPDU后就会成为普通的STP端口并重新进行STP计算,因此我们一般会在配置边缘端口后配置边缘端口的保护功能。

    拓扑变化机制处理的改变

    STP判断拓扑发生变化:端口状态从disable变为forwarding和从forwarding变为了disable。而RSTP判断拓扑发生变化:一个非边缘端口迁移到Forwarding状态。
    在STP中察觉到拓扑发生变化后,发送TCN BPDU给上游设备,上游设备收到下游设备发来的TCN BPDU报文后,只有指定端口处理TCN BPDU报文。其它端口也有可能收到TCN BPDU报文,但不会处理。上游设备收到后会回复TCA置位的TCN BPDU,然后继续复制一份TCN发给上游一直到根桥,根桥收到TCN BPDU后会向下游泛洪TC置位的TCN BPDU,下游收到TC置位的报文后会立刻清空自己的MAC地址表。
    RSTP做出的改变:为本交换设备的所有非边缘指定端口启动一个TC While Timer,该计时器值是Hello Time的两倍。在这个时间内,清空状态发生变化的端口上学习到的MAC地址。同时,由这些端口向外发送RST BPDU,其中TC(Topology Change)置位。一旦TC While Timer超时,则停止发送RST BPDU。其他交换设备接收到RST BPDU后,清空所有端口学习到MAC地址,除了收到RST BPDU的端口。然后也为自己所有的非边缘指定端口和根端口启动TC While Timer,重复上述过程。边缘端口DOWN掉并不会触发拓扑变更机制。

    保护功能

    BPDU保护

    即边缘端口的保护功能,如果一个黑客连接上配置了边缘端口的交换机接口,并向端口发送BPDU,边缘端口收到BPDU后会变为正常的STP端口并参与STP计算,这时候网络拓扑发生改编,全网重新进行一次收敛。如果配置了BPDU保护功能后,边缘端口收到BPDU时会立即被关闭,关闭后可通过管理员手动重启,也可以配置自动重启。

    根保护

    黑客在运行了RSTP网络中接入一台新的设备并且设置桥优先级为最优,这时候现网中的根桥收到一个优先级比自己还优的BPDU会重新进行生成树计算选举新的根桥,这会导致整个网络 拓扑发生改变。如果在现网根桥中的指定端口上配置了根保护功能,一旦指定端口收到优先级比自己的高的BPDU则会进入discarding状态不转发数据,若一段时间内未收到更优的BPDU报文则会自动转为forwarding状态。

    TC-BPDU泛洪保护

    黑客连接上运行了RSTP的交换机后,频繁的发送TC-BPDU报文给交换机,交换机收到后会频繁的删除自己的接口MAC地址表项,给网络的稳定带来很大隐患。在交换机上配置TC-BPDU保护功能后交换机只会在单位时间内处理配置的次数TC报文,缺省单位时间为2秒,次数为3次。即交换机只在2S内处理3次TC报文,在2S内收到超过3次的TC报文不作处理,2S过后在进行3次处理,这样可以避免频繁的删除MAC地址表项。

    环路保护

    在运行RSTP协议的网络中,根端口和其他阻塞端口状态是依靠不断接收来自上游设备的RST BPDU维持。当由于链路拥塞或者单向链路故障导致这些端口收不到来自上游设备的RST BPDU时,此时设备会重新选择根端口。原先的根端口会转变为指定端口,而原先的阻塞端口会迁移到转发状态,从而造成交换网络中可能产生环路。在启动了环路保护功能后,如果根端口或Alternate端口长时间收不到来自上游的RST BPDU时,则向网管发出通知信息(如果是根端口则进入Discarding状态)。而阻塞端口则会一直保持在阻塞状态,不转发报文,从而不会在网络中形成环路。直到根端口或Alternate端口收到RST BPDU,端口状态才恢复正常到Forwarding状态。

    展开全文
  • rstp代码的实现及注释

    2018-09-07 18:29:50
    资料包含rstp代码的实现,采用C语言编写的。并对代码中的一些关键部分作了注释,便于理解
  • RSTP实验说明指导

    2011-10-24 18:29:51
    实验五 RSTP 一、实验拓扑: 二、实验设备: 三层交换机一台 二层交换机一台 导线若干 三、实验步骤: 1、SW1、SW2上做基本设置(trunk、Vlan设置IP地址) SW1: sw1(config)# intface fastethernet 0/1 sw1(config...
  • rstp_802.1w-2001.zip

    2020-09-04 22:50:11
    RSTP协议文档 802.1W,讲述RSTP协议相关的规范,介绍各个状态机; 配合开源代码librstp 更快更深的了解rstp协议
  • 华为培训课件:HC110112002 RSTP原理与配置.ppt
  • 之前写过一篇《图解 RSTP 和 MSTP 》的文章,但是篇幅有限,只描述了技术原理,现在专门写一篇网络实验,便于更好的理解 RSTP 和 MSTP 相关内容。 RSTP 功能 替代接口 我们用 3 台交换机搭建一个网络环境,部署 ...

    学习网络最重要的步骤之一,就是敲实验。通过动手做实验,可以把抽象的知识变得具体化,也能快速掌握其中的原理和使用场景,还能学会网络设备的实操命令。

    之前写过一篇《图解 RSTP 和 MSTP 》的文章,但是篇幅有限,只描述了技术原理,现在专门写一篇网络实验,便于更好的理解 RSTP 和 MSTP 相关内容。

    上帝视角

    RSTP 功能

    替代接口

    我们用 3 台交换机搭建一个网络环境,部署 RSTP 对网络进行破环,验证 RSTP 新增的替代接口角色。替代接口是根接口的备份。

    实验拓扑

    实验拓扑图

    实验要求

    三台交换机( SW )配置 RSTP 功能,在 SWC 上使用命令查看替代接口。

    操作步骤
    1. 三台 SW 按照网络拓扑图,对相应的接口进行连接。SW 默认的生成树工作模式是 MSTP 。

    SW默认状态

    1. 在三台交换机上分别配置工作模式从默认的 MSTP 改成 RSTP ,并且启动 STP 功能。stp mode 命令用来修改交换机的工作模式。

    配置RSTP

    功能验证
    1. 在设备上使用 display stp 命令查看 RSTP 状态 ,发现 SWB 的 MAC 地址最小,选举为根桥。SWB 的桥 ID 是 32768.4c1f-cc61-1681,其中 32768 是 SWB 的优先级值,4c1f-cc61-1681 是 SWB 的 MAC 地址。根桥的 MAC 地址是 SWB 的 MAC 地址,说明 SWB 就是根桥。

    查看RSTP状态

    1. SWC 有两个接口接入网络,由于从 GE0/0/2 到达根桥的 RPC 更小,因此 GE0/0/2 成为 SWC 的根接口,GE0/0/1 成为替代接口。使用 display stp brief 命令查看 RSTP 接口的状态 。Role 为 ROOT 时表示根接口,Role 为 DESI(即 Designated )时表示指定接口,SWB 的 GigabitEthernet0/0/1ALTE(即 Alternate )表示替代接口。接口状态符合预期,实验成功!

    查看RSTP接口状态

    1. 还可以抓包查看替代接口的 BPDU 报文,详细分析字段代表的含义,深入理解 RSTP 。

    抓包分析

    备份接口

    RSTP 新增了备份接口角色,是指定接口的备份,搭建网络实验进行验证。

    实验拓扑

    拓扑图

    实验要求

    在替代接口的实验拓扑基础上,新增一台 HUB ,连接 SWC 的两个接口,使用命令查看备份接口

    操作步骤
    1. 按照网络拓扑图,新增一台 HUB ,并连接相应的接口。对应 SWC 来说,它的 Ethernet0/0/1Ethernet0/0/2 接口形成环路,RSTP 能够检测到,并在两个接口中选择一个阻塞。
    功能验证
    1. 在 SWC 中,Ethernet0/0/1 接口的接口 ID 更小,成为指定接口,而 Ethernet0/0/2 接口成为备份接口,备份接口被阻塞。在 SWC 上使用 display stp brief 命令查看接口状态,接口状态符合预期,实验成功!

    查看接口状态

    边缘接口

    RSTP 新增的边缘接口角色不参与生成树的计算,当边缘接口开启后,立即切换到转发状态并开始收发流量,而不用

    实验拓扑

    拓扑图

    实验要求
    • 在替代接口的实验拓扑基础上,新增两台 PC ,分别连接 SWC 的两个接口,其中一个接口使用默认配置,观察接口状态。
    • 另一个接口配置边缘接口,查看接口状态变化。
    操作步骤
    1. 新增 PC1 ,连接 SWC 的 Ethernet0/0/1 接口。

    2. 在 SWC 的 Ethernet0/0/2 接口使用命令 stp edged-port enable 配置成边缘接口。新增 PC2 连接 Ethernet0/0/2 接口。

    边缘接口配置

    功能验证
    1. 新增 PC1 时,使用display stp brief 命令查看 SWC 的 Ethernet0/0/1 接口状态。未配置边缘接口时,接口状态从 DiscardingLearning 15秒时间,Learning 再到 Forwarding 15秒时间。

    E0/0/1接口状态

    1. 新增 PC2 时,使用display stp brief 命令查看 SWC 的 Ethernet0/0/2 接口状态。配置边缘接口时,接口直接切换到 Forwarding 状态并开始收发数据,而不用经历 Forward Delay 时间。

    E0/0/2接口状态

    RSTP 保护功能

    BPDU 保护( BPDU Protection )

    边缘接口收到 BPDU 后,会变成一个普通 RSTP 接口,可能会引发网络中的 RSTP 重新计算,对网络造成影响。

    为了防止误接交换机或 BPDU 攻击对网络造成影响,可开启 BPDU 保护功能解决问题。如果边缘接口收到 BPDU ,那么交换机立马把接口关闭,同时触发告警。

    实验拓扑

    拓扑图

    实验说明

    对比未开启 BPDU 保护功能和开启 BPDU 保护功能的区别。

    操作步骤
    1. 未开启 BPDU 保护时:在替代接口的实验拓扑基础上,SWC 的 Ethernet0/0/1 接口开启了边缘接口功能,未开启 BPDU 保护功能。新增一台 SWD 连接 SWC 的 Ethernet0/0/1 接口。SWD 的 MAC最优,在 SWC 上使用 display stp briefdisplay stp 命令查看,根桥从 SWB 变成了 SWD ,所有接口状态也发生相应变化。

    未开启 BPDU 保护

    1. 开启 BPDU 保护时:在 SWC 执行 stp bpdu-protection 命令,即所有边缘接口开启 BPDU 保护功能,立马产生告警信息。在 SWC 上使用 display stp briefdisplay stp 命令查看,根桥又从 SWD 变成了 SWB ,Ethernet0/0/1 接口关闭。

    开启BPDU保护

    功能分析
    1. 边缘接口收到 BPDU 后,变成一个普通 RSTP 接口,由于 SWD 的 MAC 最小,RSTP 重新计算,SWD 成为根桥,所有交换机的接口状态进行相应改变,产生网络震荡。
    2. 边缘接口开启 BPDU 保护功能后,收到 BPDU 就会把接口关闭,同时产生告警。
    3. 边缘接口关闭后不会自动恢复,需要在接口上执行 undo shutdown 命令,或者使用 restart 命令恢复接口。

    根保护( Root Protection )

    完成收敛的 RSTP 网络中,如果根桥发生变化,那么势必导致 RSTP 重新计算,网络转发受到影响。通常会在根桥的指定接口开启根保护功能,如果收到更优的 BPDU ,就会丢弃这些 BPDU ,并把接口切换到丢弃状态。

    在替代接口实验的基础上,新增一台 SWD ,接入到根桥 SWB 的 Ethernet0/0/1 接口,SWD 的 MAC 最优。

    实验拓扑

    拓扑图

    实验说明

    对比未开启根保护功能和开启根保护功能的区别。

    操作步骤
    1. 未开启根保护时:在替代接口的实验拓扑基础上,新增一台 SWD 连接 SWB 的 Ethernet0/0/1 接口。SWD 的 MAC 地址最优,在 SWB 上使用 display stp briefdisplay stp 命令查看,根桥从 SWB 变成了 SWD ,SWB 上的所有接口状态也发生相应变化。

    未开启根保护

    1. 开启根保护时:在 SWB 的 Ethernet0/0/1 接口上使用 shutdown 命令关闭接口,然后使用 stp root-protection 命令配置接口的根保护功能,再使用 undo shutdown 命令开启接口。使用 display stp briefdisplay stp 命令查看,根桥是 SWB ,SWB 的 Ethernet0/0/1 接口变成丢弃状态,并且 Protection 字段显示为 ROOT

    开启根保护

    功能分析
    1. 未开启根保护时,mac 地址更优的 SWD 接入 SWB 的 Ethernet0/0/1 接口后,RSTP 重新计算,SWD 成为根桥,接口状态进行相应改变,并产生网络震荡。
    2. SWB 的 Ethernet0/0/1 接口开启根保护后,会忽略收到的 SWD 的更优 BPDU ,并把接口切换到丢弃状态。

    环路保护( Loop Protection )

    当链路出现单向故障或网络拥塞时,非根桥的根接口或替代接口收不到 BPDU ,导致交换机重新计算 RSTP ,接口会成为指定接口并切换成转发状态,发送流量,导致网络中出现环路。

    我们可以使用环路保护功能来规避这个问题。在接口下使用 stp loop-protection 命令开启环路保护功能,这个接口可以是根接口,也可以是替代接口。配置完成后,使用 display stp brief 命令可以看到 Protection 字段显示为 LOOP 。接口没有收到 BPDU 后,会将接口调整为指定接口,并保持在丢弃状态,从而避免出现环路。

    模拟器无法搭建网络环境,无实验内容。

    拓扑变更保护( TC Protection )

    网络拓扑出现变化,TC BPDU 会泛洪全网,TC BPDU 又会使交换机执行 MAC 地址删除操作,消耗交换机大量性能。

    交换机使用 stp tc-protection 命令开启拓扑变更保护功能,交换机默认会在 2 秒内只处理 1 次 TC BPDU ,如果这段时间内,收到更多的 TC BPDU ,那么只能在 2 秒后才进行处理。

    MSTP 功能

    MSTP 多实例

    三台交换机构成一个三角的二层环路,部署 MSTP 可实现网络的无环化。

    实验拓扑

    拓扑图

    实验要求

    VLAN 2 - 10 在 SWA 和 SWC 之间的链路传输,VLAN 11 - 20 在 SWB 和 SWC 之间的链路传输。创建两个实例:Instance1Instance2 ,将 VLAN2 至 10 映射到 Instance1 ,将 VLAN11 至 20 映射到 Instance2 ,其余 VLAN 保留在默认的 Instance0 里。

    把 SWA 规划成 MSTI1 的主根桥,SWB 规划为次根桥,确保 VLAN2 至 10 的流量在 SWA 和 SWC 之间的链路传输。将 SWB 规划成 MSTI2 主根桥,SWA 规划为次根桥,确保 VLAN11 至 20 的流量在 SWB 和 SWC 之间的链路传输。

    操作步骤
    1. 对 SWA 进行配置。

    SWA配置

    使用 stp region-configuration 命令进入设备的 MST 域视图,在这个视图下进行 MST 域的相关配置。region-name 命令用于修改 MST 域名,默认 MST 域名是设备的 MAC 地址。默认这些命令未生效,需要使用 active region-configuration 命令进行激活。stp instance 1 root primary 命令是将 SWA 设置为 MSTI1 的主根桥,stp instance 2 root secondary 命令是将 SWA 设置为 MSTI2 的次根桥。

    1. 对 SWB 进行配置。

    SWB配置

    1. 对 SWC 进行配置。

    SWC配置

    功能验证

    完成所有交换机配置后,查看 SWC 的接口状态。

    SWC接口状态

    在 MSTI1 中,SWC 的 G0/0/2 接口处于丢弃状态,那么 MSTI1 的流量是在 SWA 和 SWC 的链路进行传输。在 MSTI2 中,SWC 的 G0/0/1 接口处于丢弃状态,那么 MSTI2 的流量是在 SWB 和 SWC 的链路进行传输。结果符合预期,实验成功!

    结尾

    交换机开启后,生成树协议有一些参数会有默认值,不用手动、自动生成的配置。具体参数默认值如下:

    2021090501

    维护 RSTP/MSTP 命令

    日常网络设备调试时,不仅要知道配置命令,还需要了解维护命令,才能完全正确使用 RSTP/MSTP 。

    • reset stp [ interface interface-type interface-number ] statistics ,这条命令用于清除生成树的统计信息。

    • reset stp error packet statistics ,这条命令用于清除生成树协议的错误报文计数。

    • display stp topology-change ,这条命令用于查看 RSTP/MSTP 拓扑变化相关的统计信息。

    • display stp [ interface interface-type interface-number | slot slot-id ] tc-bpdu statistics ,这条命令用于查看端口TC/TCN报文收发计数。

    • display stp [ interface interface-type interface-number | slot slot-id ][ brief ] ,这条命令用于查看生成树的状态信息与统计信息。

    terface-type interface-number* | slot slot-id ] tc-bpdu statistics ,这条命令用于查看端口TC/TCN报文收发计数。

    • display stp [ interface interface-type interface-number | slot slot-id ][ brief ] ,这条命令用于查看生成树的状态信息与统计信息。

    关注公众号:网络技术平台,回复 “ 资料 ” 获取视频、培训教程、实验手册、电子书。

    展开全文

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 7,286
精华内容 2,914
关键字:

rstp

友情链接: rs232.rar