RSTP协议原理与配置

RSTP协议原理与配置

前言:STP生成树协议虽然能够解决环路的问题,但是存在着网络拓扑收敛较慢,无法适应网络拓扑结构的频繁变化等缺点,基于以上不足,IEEE在2001年发布的802.1w标准定义了RSTP(快速生成树协议)。

一、STP的不足

问题一: 初始状态收敛时间过长

RSTP协议原理与配置_第1张图片
在STP中,交换机从初始状态到收敛状态至少需要30s,过程如下所示:
RSTP协议原理与配置_第2张图片
第一个15s(Listening->Learning):STP为了避免路由环路,必须等待足够长的时间(确保BPDU能够同步发送至全网各个节点)确保全网的状态全部确定才能进入转发。
第二个15s(Learning->Forwarding):在STP进入转发前还需根据收到的用户流量构建MAC地址表,等待计时器超时才能进入转发状态。

问题二:BP端口进入转发状态时间长
  • 直接链路收敛
    RSTP协议原理与配置_第3张图片
    如上图所示,SWA与SWC之间的直连链路断开,于是SWC上的BP端口开始由Blocking(阻塞)状态向Forwarding(转发)状态改变。由于BP在SW2上,故收敛时不需要等待20s的老化时间,先是直接由Blocking(阻塞)状态变为Learning(学习)状态,再完成对Forwarding(转发)状态的改变。
    RSTP协议原理与配置_第4张图片
  • 间接链路收敛
    RSTP协议原理与配置_第5张图片
    当出现上图的情况时,SW2上的BP端口就还需要经过一个BPDU老化时间20s,从Blocking(阻塞)状态变为Forwording(状态)就需要经过50s的时间。
    RSTP协议原理与配置_第6张图片
问题三:交换机连接用户终端的场景

RSTP协议原理与配置_第7张图片
如图所示,在STP中,交换机连接PC端的链路进入转发状态也需要等待30s,事实上,交换机连接终端的这段链路是不会出现环路的,因此这段等待时间其实并不需要。

问题四:STP的拓扑变更机制

RSTP协议原理与配置_第8张图片
拓扑变更的处理过程:

  • 在网络拓扑发生变化后,下游设备会不间断地向上游设备发送TCN BPDU报文。
  • 上游设备收到下游设备发来的TCN BPDU报文后,只有指定端口处理TCN BPDU报文。其它端口也有可能收到TCN BPDU报文,但不会处理。
  • 上游设备会把配置BPDU报文中的Flags的TCA位设置1,然后发送给下游设备,告知下游设备停止发送TCN BPDU报文。
  • 上游设备复制一份TCN BPDU报文,向根桥方向发送。
  • 重复上述步骤,直到根桥收到TCN BPDU报文。
  • 根桥把配置BPDU报文中的Flags的TC位置1后发送,通知下游设备直接删除桥MAC地址表项。
STP的端口状态
STP端口状态 行为
Disabled 不转发用户流量也不学习MAC地址
Blocking 不转发用户流量也不学习MAC地址
Listening 不转发用户流量也不学习MAC地址
Learning 不转发用户流量但学习MAC地址
Forwording 既转发用户流量又学习MAC地址

可以看出,上面三种状态从用户使用的角度来看都相同,却对应着不同的状态,反而增加了使用的难度。

二、RSTP对STP的改进

端口角色的重新划分

RSTP定义了两种全新的端口角色:Backup Port(备份端口)和Alternate Port(预备端口)。

  • Backup Port(备份端口):Backup Port就是由于学习到自己发送的配置BPDU报文而阻塞的端口,为指定端口的备份,提供了另外一条从根节点到叶节点的备份通路。
  • Alternate Port(预备端口):Alternate Port就是由于学习到其它网桥发送的配置BPDU报文而阻塞的端口,提供了从指定桥到根的另一条可切换路径,作为根端口的备份端口。
端口状态的重新划分

RSTP将原来的5中状态变为3种

STP端口状态 RSTP端口状态 端口状态对应的行为
Disabled Discarding 如果不转发用户流量也不学习MAC地址
Blocking
Listening
Learning Learning 不转发用户流量但学习MAC地址
Forwording Forwording 既转发用户流量也学习MAC地址
快速收敛机制

P/A机制
Proposal/Agreement机制,其目的是使一个指定端口尽快进入Forwarding状态。
P/A机制要求两台交换设备之间链路必须是点对点的全双工模式。一旦P/A协商不成功,指定端口的选择就需要等待两个Forward Delay,协商过程与STP一样。
事实上对于STP,指定端口的选择可以很快完成,主要的速度瓶颈在于:为了避免环路,必须等待足够长的时间,使全网的端口状态全部确定,也就是说必须要等待至少两个Forward Delay,所有端口才能进行转发。
RSTP协议原理与配置_第9张图片
特点:使用来回确认机制和同步变量机制,就无需依靠计时器来保证无环。
P/A协商的过程

  • SWA向SWB发送p置位的BPDU包。
  • 同步变量(阻塞除边缘端口以外的其他端口,防止出现环路)。
  • SWB向SWA发送A置位的BPDU包。
  • SWA收到A置位的BPDU包后,端口立即进入Forwarding状态。

P/A机制的具体做法

阶段一:设备刚刚启动,RSTP协议刚刚启用,所有交换机都认为自己是根桥,向其他交换机发送P置位的BPDU,并把发送P消息的端口变成DP口,同时接口处在Discarding状态。
RSTP协议原理与配置_第10张图片
阶段二:交换机SWA收到SWB和SWC的P消息会置之不理,因为他的桥优先级最高。交换机SWB和SWC收到SWA的P消息后,由于认同SWA是最优的根桥,会根据P/A协商流程回复A消息,并把发送端口变成RP端口,同时接口处在Forwarding状态。
RSTP协议原理与配置_第11张图片
阶段三:SWA与SWB,SWA与SWB的P/A协商已经完成,接下来是SWB和SWC的P/A协商。
RSTP协议原理与配置_第12张图片
SWB和SWC的协商过程如下:

  • SWB和SWC都会发送根桥为SWA的P消息给对方。
  • SWC收到SWB的P消息后,发现P消息里虽然根桥和自己认可的一样,但是发送者的桥优先级比自己高(SWB>SWC),所有马上停止发送P消息,但是由于已经有端口是RP口,也不会回A消息。
  • SWB收到SWC的P消息后,发现P消息里虽然根桥和自己认可的一样,但是发送者的桥优先级比自己低(SWB>SWC),会不停的发送P消息。
  • 以上状态在等待2个Forward Delay时间后,SWB端口为DP端口,处在
    Forwarding状态, SWC端口为AP端口,处在Discarding状态。
    实际上SWB与SWC之间的协商等同于退回到STP的模式,但是反正是
    Discarding状态,根本不影响其他业务转发。
根端口快速切换机制

RSTP协议原理与配置_第13张图片
针对于前面提到的STP的问题二,在RSTP中,当SWA与SWC之间的直连链路down后,SWC上的AP端口会迅速切换成RP端口并进入转发状态。
RSTP协议原理与配置_第14张图片
若SWA与SWB之间的直连链路down掉,SWC上的AP端口会快速切换成DP端口并进入转发状态。

边缘端口的引入

RSTP协议原理与配置_第15张图片
在RSTP中,交换机连接终端的链路可以立即进入转发状态。当交换机上的改接口接收到BPDU后,就会失去边缘端口的属性,成为普通的STP口,并重新参与生成树的计算。

拓扑变更机制的优化

判断拓扑变化的唯一标准:一个非边缘端口迁移到Forwording状态。
一旦检测到拓扑发生变化,将进行如下处理:

  1. 为本交换设备的所有非边缘指定端口启动一个TC While Timer,该计时器值是HelloTime的两倍。在这个时间内,清空状态发生变化的端口上学习到的MAC地址。同时,由这些端口向外发送RST BPDU,其中TC置位。一旦TC While Timer超时,则停止发送RST BPDU。
  2. 其他交换设备接收到RST BPDU后,清空所有端口学习到MAC地址,除了收到RSTBPDU的端口。然后也为自己所有的非边缘指定端口和根端口启动TC While Timer,重复上述过程。 如此,网络中就会产生RST BPDU的泛洪。
保护机制–BPDU保护

RSTP协议原理与配置_第16张图片

应用场景: 防止有人伪造RST BPDU恶意攻击交换设备,当边缘端口接收到该报文时,会自动设置为非边缘端口,并重新进行生成树计算,引起网络震荡。
实现原理: 配置BPDU保护功能后,如果边缘端口收到BPDU报文,边缘端口将会被立即关闭。

保护机制–根保护

RSTP协议原理与配置_第17张图片
应用场景: 由于维护人员的错误配置或网络中的恶意攻击,网络中合法根桥有可能会收到优先级更高的RST BPDU,使得合法根桥失去根地位,从而引起网络拓扑结构的错误变动。
实现原理: 一旦启用Root保护功能的指定端口收到优先级更高的RST BPDU时,端口状态将进入Discarding状态,不再转发报文。在经过一段时间,如果端口一直没有再收到优先级较高的RST BPDU,端口会自动恢复到正常的Forwarding状态。(Root保护功能只能在指定端口上配置生效。)

保护机制–TC BPDU泛洪保护

RSTP协议原理与配置_第18张图片
交换机在接收到TC-BPDU报文后,会执行MAC地址表项的删除操作。如果有人伪造TC-BPDU报文恶意攻击交换机时,交换机短时间内会收到很多TC-BPDU报文,频繁的删除操作会给设备造成很大的负担,给网络的稳定带来很大隐患。
启用防TC-BPDU报文攻击功能后,在单位时间内,RSTP进程处理TC类型BPDU报文的次数可配置(缺省的单位时间是2秒,缺省的处理次数是3次)。如果在单位时间内,RSTP进程在收到TC类型BPDU报文数量大于配置的阈值,那么RSTP进程只会处理阈值指定的次数;对于其他超出阈值的TC类型BPDU报文,定时器到期后,RSTP进程只对其统一处理一次。这样可以避免频繁的删除MAC地址表项,从而达到保护交换机的目的。

RSTP配置实例

实验拓扑图如下所示:
RSTP协议原理与配置_第19张图片
在SWA上的配置

[SWA]stp enable  #全局开启stp
[SWA]stp mode rstp  #设置stp模式为rstp
[SWA]stp root primary  #将SWA设为根桥

在SWB上的配置

[SWB]stp enable 
[SWB]stp mode rstp 
[SWB]stp bpdu-protection  #开启BPDU保护,配合边缘端口使用
[SWB]interface GigabitEthernet 0/0/4     
[SWB-GigabitEthernet0/0/4]stp edged-port enable #将连接PC的端口设置为边缘端口

SWC与SWB配置一致就不再显示了。
检验配置:
在SWA上查看生成树情况:

在这里插入图片描述
在SWB上查看生成树情况:
在这里插入图片描述
在SWC上查看生成树情况:
在这里插入图片描述
可以看出来,SWC上的g0/0/4端口处于DISCARDING状态,即处于堵塞状态,消除了网络中的环路。

你可能感兴趣的:(路由交换)