STP协议虽然能够解决环路问题,但是收敛速度慢,影响了用户通信质量。如果STP网络的拓扑结构频繁变化,网络也会频繁失去连通性,从而导致用户通信频繁中断。IEEE于2001年发布的802.1w标准定义了快速生成树协议RSTP(Rapid Spanning-Tree Protocol),RSTP在STP基础上进行了改进,实现了网络拓扑快速收敛。
简单来说,就是STP收敛时间太长了,影响到用户体验。为了解决这一问题,所以引入了另一个生成树协议:RSTP。
RSTP
RSTP端口角色:
除了STP中的根端口、指定端口、预备端口外,RSTP中还存在另一种端口角色—Backup(备份端口)
除了以上端口角色以外,RSTP中还提供了另一种端口角色:边缘端口(Edge Port
)
边缘端口不用经过状态变迁,只要启动端口即为Forwarding状态。一般而言,为了用户上网感受,会将与用户主机相连的接口配置为边缘端口。
RSTP端口状态
如上图所示,RSTP中将STP中的前三个状态统称为Discarding(不转发)。
RSTP BPDU
STP的配置BPDU中Flag字段的中间6位在RSTP中得到了应用。(STP中只存在TCA和TC)。
RSTP中,非根桥设备无论是否接收到根桥发送的配置BPDU,都会按照hello timer规定的时间间隔发送配置BPDU。
STP中非根桥设备只有收到上游设备发送的配置BPDU才会触发配置BPDU。
RSTP收敛过程
1.
每一台交换机启动RSTP后,都认为自己是“根桥”,并且发送RST BPDU。所有端口都为指定端口,处于Discarding状态。
2.
交换机互相发送Proposal置位的RST BPDU。SWA收到SWB的RST BPDU(优先级低的),会忽略。
3.
SWB收到了更优的RST BPDU,于是停止发送RST BPDU,并开始执行同步(设置下游端口为指定端口、Discarding状态)。如图上所示。
4.
阻塞所有非边缘端口之后, SWB 将会发送一个Agreement 置位的RST BPDU。端口确认为根端口,并处于Forwarding状态。
5.
根桥收到agreement置位的RST BPDU后,指定端口立即从Discarding迁移到Forwarding。
P/A进程向下游继续传递,SWB 和SWC会继续进行收敛。
链路故障/根桥失效
链路故障或者根桥失效都会导致交换机收不到上游交换机发送的RST BPDU,在故障产生之后,交换机将会使用P/A机制进行重新协商。
在STP中,当出现链路故障或者根桥失效导致交换机收不到BPDU时,交换机需要等待max age时间后才能确定出现了故障。而在RSTP中,如果交换机的端口在连接3次hello timer规定的时间间隔内没有收到上游交换机发送的RST BPDU,便会确认对端口和本端口的通信失败,从而需要初始化P/A进程重新选举端口角色。
RSTP拓扑变化处理
其他交换机接收到TC置位的BPDU后,清空所有其他端口学习到的MAC地址,收到TC BPDU的端口不清空。
STP兼容
运行RSTP的交换设备在某端口上接收到运行STP的交换设备发出的配置BPDU,会把该端口转换到STP工作模式。一般而言,都会采用向下兼容(即向前面的版本进行兼容)
RSTP配置命令
stp mode rstp //配置RSTP模式(默认为MSTP)
display stp //配置验证
interface Ethernet */*/* //进入接口视图
stp edged-port enable //设置边缘端口
拓扑:
配置验证
根保护
根保护功能确保了根桥的指定端口不会因为一些网络问题而改变端口角色。比如说当SWA为根桥时,此时在SWA的另一个接口再接入一个优先级高的交换机(SWD),此时不想拓扑中的根桥发生变化,即可以在与SWA与SWD之间相连的接口配置根保护功能。保证SWA的根桥地位不变。
配置命令:
[SWA]interface GigabitEthernet */*/*
[SWA-GigabitEthernet0/0/1]stp root-protection
BPDU保护
配置BPDU保护功能后,如果边缘端口收到BPDU报文,边缘端口将会被立即关闭,并通知网管系统。被关闭的边缘端口可配置成自动恢复或管理员手动恢复。
配置命令:
[SWC]stp bpdu-protection
环路保护
根端口如果长时间收不到来自上游的BPDU,则进入Discarding状态,避免在网络中形成环路。
RSTP与STP的对比