STP和RSTP的区别

1、STP的不足

        STP协议虽然能够解决环路问题,但是网络拓扑收敛慢,如果网络中的拓扑结构频繁变化,网络就会频繁失去可达性,从而导致通信频繁中断。

不足点1:STP没有细致区分端口状态和端口角色。

        从使用者角度看,Listening、Learning和Blocking状态并没有区别,都同样不转发用户流量。

        从数据配置角度看,端口之间最本质的区别并不在于端口的状态,而是在于端口的角色。因为根端口和指定端口可以都处于Listening状态,也可能都处于Forwarding状态。

不足点2:STP算法是被动的算法,依赖定时器等待的方式判断拓扑变化,收敛速度慢。

不足点3:STP的算法要求在稳定的拓扑中,根桥主动发出配置BPDU报文,其他设备收到该配置BPDU后才进行处理,然后传递到整个STP网络。这也是导致拓扑收敛慢的主要原因之一。

2、RSTP对STP的改进:

1.端口角色的细化:

        RSTP的端口角色相对于STP增加了两种,共有4种:根端口、指定端口、Alternate端口和Backup端口。

Alternate端口和Backup端口的描述如下:

①从配置BPDU报文发送角度看:

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

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

②从流量角度来看:

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

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

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

2.端口状态的重新划分

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

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

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

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

3.配置BPDU格式的改变

        配置BPDU格式的改变,充分利用了STP协议报文中的Flag字段,明确了端口角色。在配置BPDU报文的格式上,除了保证和STP格式基本一致之外,RSTP作了一些小变化:

        ①Type字段,配置BPDU类型不再是0而是2,所以运行STP的设备收到RSTP的配置BPDU时会丢弃

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

4.配置BPDU的处理发生变化

        ①拓扑稳定后,配置BPDU报文的发送方式

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

        ②更短的BPDU超时计时

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

        ③处理次等BPDU

        当一个端口收到上游的指定桥发来的RST BPDU报文时,该端口会将自身存储的RST BPDU与收到的RST BPDU进行比较。

        如果该端口存储的RST BPDU的优先级高于收到的RST BPDU,那么该端口会直接丢弃收到的RST BPDU,立即回应自身存储的RST BPDU。当上游设备收到下游设备回应的RST BPDU后,上游设备会根据收到的RST BPDU报文中相应的字段立即更新自己存储的RST BPDU。

        由此,RSTP处理次等BPDU报文不再依赖于任何定时器通过超时解决拓扑收敛,从而加快了拓扑收敛。

5.快速收敛

        ①Proposal/Agreement机制

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

        ②根端口快速切换机制

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

        ③边缘端口的引入

        在RSTP里面,如果某一个指定端口位于整个网络的边缘,即不再与其他交换设备连接,而是直接与终端设备直连,这种端口叫做边缘端口。

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

6.保护功能

保护功能

场景

原理

BPDU保护

在交换设备上,通常将直接与用户终端(如PC机)或文件服务器等非交换设备相连的端口配置为边缘端口。正常情况下,边缘端口不会收到RST BPDU。如果有人伪造RST BPDU恶意攻击交换设备,当边缘端口接收到RST BPDU时,交换设备会自动将边缘端口设置为非边缘端口,并重新进行生成树计算,从而引起网络震荡。

交换设备上启动了BPDU保护功能后,如果边缘端口收到RST BPDU,边缘端口将被error-down,但是边缘端口属性不变,同时通知网管系统。

根保护

由于维护人员的错误配置或网络中的恶意攻击,网络中合法根桥有可能会收到优先级更高的RST BPDU,使得合法根桥失去根地位,从而引起网络拓扑结构的错误变动。这种不合法的拓扑变化,会导致原来应该通过高速链路的流量被牵引到低速链路上,造成网络拥塞。

对于启用Root保护功能的指定端口,其端口角色只能保持为指定端口。一旦启用Root保护功能的指定端口收到优先级更高的RST BPDU时,端口状态将进入Discarding状态,不再转发报文。在经过一段时间(通常为两倍的Forward Delay),如果端口一直没有再收到优先级较高的RST BPDU,端口会自动恢复到正常的Forwarding状态。

说明:

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

环路保护

在运行RSTP协议的网络中,根端口和其他阻塞端口状态是依靠不断接收来自上游交换设备的RST BPDU维持。

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

在启动了环路保护功能后,如果根端口或Alternate端口长时间收不到来自上游的RST BPDU时,则向网管发出通知信息(如果是根端口则进入Discarding状态)。而阻塞端口则会一直保持在阻塞状态,不转发报文,从而不会在网络中形成环路。直到根端口或Alternate端口收到RST BPDU,端口状态才恢复正常到Forwarding状态。

说明:

环路保护功能只能在根端口或Alternate端口上配置生效。

防TC-BPDU攻击

交换设备在接收到TC BPDU报文后,会执行MAC地址表项和ARP表项的删除操作。如果有人伪造TC BPDU报文恶意攻击交换设备时,交换设备短时间内会收到很多TC BPDU报文,频繁的删除操作会给设备造成很大的负担,给网络的稳定带来很大隐患。

启用防TC-BPDU报文攻击功能后,在单位时间内,交换设备处理TC BPDU报文的次数可配置。如果在单位时间内,交换设备在收到TC BPDU报文数量大于配置的阈值,那么设备只会处理阈值指定的次数。对于其他超出阈值的TC BPDU报文,定时器到期后设备只对其统一处理一次。这样可以避免频繁的删除MAC地址表项和ARP表项,从而达到保护设备的目的。

3、关于RSTP个人见解

1.端口角色:

        DP:流出BPDU

        RP:流入BPDU

        AP:流入BPDU,alternet 到达根桥的次优路径(第二近),AP是非指定交换机上的阻塞端口。(指定交换机、非指定交换机是针对某段链路来说的,PK四个参数) 作为RP的备份 通常用排除法最后确认AP (即如果某接口被阻塞 不是BP 则一定是AP或者 某接口不是DP RP BP 那一定是AP)

        BP :流入BPDU,backup port 自环才会出现 作为DP的备份 某端口收到了自己发出的bpdu该端口一定是BP ,BP是指定交换机上的阻塞端口,(指定交换机 非指定交换机 是针对某段链路来说 PK四个参数)或者BP是和DP端口在同一台交换机上的阻塞端口 。 (自己流出的bpdu自己又收到了) 或者 另一种思想:站在某段链路上看交换机,一定有一个指定交换机(PK四个参数),该段链路上的PC 通过该交换机到达根桥,该段链路上的端口(且属于指定交换机的接口)被阻塞,该端口一定是BP。(某段链路: BP是和DP端口在同一台交换机上的阻塞端口)

        AP和BP区别:都是阻塞端口,仅仅是位置不一样。BP是指定交换机上的阻塞接口,AP是非指定交换机上的阻塞接口。设置AP和BP的目的就是为了快速收敛,即当STP拓扑发生变化时,加快收敛速度。

        BP和DP 一定会出现在同一台交换机的同一段链路上,即都在指定交换机上。BP作为DP的备份即当DP故障,指定交换机会将BP作为新的DP。只有在自环的情况下才有可能出现BP,BP作为DP的备份。自环就是自己发出的BPDU,自己还能接收到。

        RP作为BPDU流入口,面向Root,RP的对端一定有个DP , 对端至少有一个口是流出,同样AP作为BPDU的流入口,面向Root,AP的对端也一定有个DP,对端至少有一个口是流出

        每段链路有且仅有一个DP,即有个向该段链路流入流量的接口。因为每段链路都有可能有PC。当然多条线接到一个HUB上面则视为一条链路。

RSTP和STP区别:

        1.相同点:RSTP和STP 在选举的结论上都是一样的

        2.RSTP快 STP 慢 ,尤其是当拓扑发生变化时,RSTP收敛会更快

RSTP 比STP 收敛快的改进之处 三种快收敛的措施:

        ① PA机制 :Proposal(问)/Agreement(答)机制:解决计时器问题(stp端口进入转发状态 每次都要等计时器30s,在RSTP中PA机制使得指定端口可以在秒级进入转发状态)

        ② 根端口快速切换机制

                两种端口不受协商机制的影响 :edge port 和 AP port

        ③ 边缘端口机制

后面针对RSTP的P/A机制详细聊聊!感兴趣的话可以关注一手哦!

猜你喜欢

转载自blog.csdn.net/qq_44940837/article/details/131631667