RSTP定义两种新的端口角色:
1. 备用端口(Backup Port)
2. 预备端口(Alternate Port)
Alternate Port: 学习到其它网桥发送的配置BPDU报文而阻塞的端口
Backup Port: 学习到自己发送的配置BPDU报文而阻塞的端口。
用户流量:
Alternate Port: 根端口的备份
Backup Port: 指定端口的备份
STP端口状态 | RSTP端口状态 | 端口状态对应的行为 |
Disabled | Discarding | 如果不转发用户流量也不学习MAC地址,那么端口状态就是Discarding状态。 |
Blocking | ||
Listening | ||
Learning | Learning | 如果不转发用户流量但是学习MAC地址,那么端口状态就是Learning状态。 |
Forwarding | Forwarding | 如果既转发用户流量又学习MAC地址,那么端口状态就是Forwarding状态。 |
Listening、Learning和Blocking状态并没有区别,都同样不转发用户流量
P/A机制 (1)
特点:由于有来回确认机制和同步变量机制,就无需依靠计时器来保障无环。
P/A机制要求两台交换设备之间链路必须是点对点的全双工模式。一旦P/A协商不成功,指定端口的选择就需要等待两个Forward Delay,协商过程与STP一样。
设备刚刚启动,RSTP协议刚刚启用,所有交换机都认为自己是根桥,向其他交换机发送P置位的BPDU,并把发送P消息的端口变成DP口,同时接口处在Discarding状态
阶段二:交换机SWA收到SWB和SWC的P消息会置之不理,因为他的桥优先级最高。交换机SWB和SWC收到SWA的P消息后,由于认同SWA是最优的根桥,会根据P/A协商流程回复A消息,并把发送端口变成RP端口,同时接口处在Forwarding状态
阶段三:SWA与SWB,SWA与SWB的P/A协商已经完成,接下来是SWB和SWC的P/A协商
SWB和SWC都会发送根桥为SWA的P消息给对方
SWC收到SWB的P消息后,发现P消息里虽然根桥和自己认可的一样,但是发送者的桥ID比自己高,(SWB>SWC),所以立即停止发送P消息,但是已经有端口时RP端口,不会回A消息
SWB收到SWC的P消息后,发现P消息虽然根桥和自己的认可一样,但是发送者的桥优先级比自己低,(SWB>SWC),会不停地发送P消息
等待2的forward delay 时间后,SWB的DP端口,处于forwarding,SWC的AP端口处于discarding
根端口快速切换机制
次等BPDU处理机制
SWB和SWA的直连链路故障,SWC的AP端口切换到DP端口进入转发状态秒级完成收敛
边缘端口的引入
![](https://img-blog.csdnimg.cn/direct/64ecd86c64824411b5c3335f98b67bad.png)
RSTP中,交换机连接终端的接口可以立即进入转发状态
拓扑变更机制的优化
检测到拓扑发生变化
清空状态发生变化的端口上学习到的MAC地址
同时,由这些端口向外发送RST BPDU,其中TC置位。一旦TC While Timer超时,则停止发送RST BPDU。
当SWB的E1口出现故障:
1.SWB重新计算生成树,选举E2为新的根端口
2.SWB删除MAC地址表中E1所对应的表项
3.生成树重新计算完成后,SWB的所有非边缘端口向外发送TC置位的RST BPDU
注意:边缘端口down掉不会触发拓扑变更,而且故障恢复后,同样也不会触发拓扑变更
BPDU保护
如果边缘端口收到BPDU报文,边缘端口将会被立即关闭
根保护
一旦启用Root保护功能的指定端口收到优先级更高的RST BPDU时,端口状态将进入Discarding状态,不再转发报文。在经过一段时间,如果端口一直没有再收到优先级较高的RST BPDU,端口会自动恢复到正常的Forwarding状态
Root保护功能只能在指定端口上配置生效。
TC-BPDU泛洪保护 (1)
启用防TC-BPDU报文攻击功能后,在单位时间内,RSTP进程处理TC类型BPDU报文的次数可配置(缺省的单位时间是2秒,缺省的处理次数是3次)。如果在单位时间内,RSTP进程在收到TC类型BPDU报文数量大于配置的阈值,那么RSTP进程只会处理阈值指定的次数;对于其他超出阈值的TC类型BPDU报文,定时器到期后,RSTP进程只对其统一处理一次。这样可以避免频繁的删除MAC地址表项,从而达到保护交换机的目的。