前言:在上一篇我们复习了stp,但是会发现存在一些问题,于是这次我们复习rstp
背景
- 可以发现STP收敛时间长,动不动就是10几秒,这会极大影响网络的体验感
- 对于STP来说,5个状态在功能上看有点重复,看上去很复杂
- 于是在不断的构思下,rstp诞生了,它把端口状态变为三种,同时新增两种端口类型,同时在RSTP中的配置BPDU中,有port role这个字段,明确端口角色
00表示未知端口,01表示替代或备份端口,10表示根端口,11表示指定端口
相关名词
- RSTP:快速生成树,拥有许多快速收敛的机制,例如P/A机制
- alternate port:预备接口,就是学习到其他网桥发送的配置BPDU,从而被阻塞的接口,是根接口的备份接口,链路发生故障,会经过15秒的侦听和学习,进入转发状态
- Back port:备份接口,是作为指定接口的备份接口,提供从根桥到指定网段的备份,从自己的指定接口发送的bpdu又能从另一接口收到,处于阻塞状态,拓扑发生变化,直接进入转发
- 边缘接口:默认不参与生成树计算,被激活后,会立即切换到转发状态并且开始接收业务流量,不需要经历转发延时
- Discarding状态,端口既不转发用户流量也不学习MAC地址
- Learning状态,端口不转发用户流量但是学习MAC地址
- Forwarding状态,端口既转发用户流量又学习MAC地址
原理
基本原理
在设备启动的时候,每一台设备都会认为自己是根桥,发送RST BPDU,所有端口都是指定端口,状态都是禁用状态,当收到之后,会进行比较,如果是对方更为优先,那么就停止发送配置BPDU,成为根端口,当根桥选举出来后,开始进行端口选举,最终拓扑是处于一个稳定的状态,在RSTP端口超时时间是3个hello time时间,也就是6秒
快速收敛机制
- RSTP处理次优BPDU报文不再依赖于任何定时器(即不再依赖于BPDU老化)解决拓扑收敛,同时RSTP的任何端口角色都会处理次优BPDU,从而加快了拓扑收敛
- RSTP中新增的两个接口类型,就是为了根端口和指定端口快速收敛
- 边缘端口是在用户上行配置的,可以加快收敛,不参与STP计算,直接进入转发,但是如果收到配置BPDU,那么网络会产生动荡,后面有一个边缘端口保护就是为了这个问题
- P/A机制:加快上游的指定端口快速进入forwarding状态,是非常重要的
当上游端口成为指定端口后,会发送P置位的RST BPDU,下游设备收到P置位的RST BPDU,会将自己所有的端口进入同步状态;同步完成后,下游端口都进入禁用状态,同时根端口进入转发状态,并向上游设备返回一个A置位的回应RST BPDU,上游设备收到后,会让指定端口马上进入转发状态
保护机制
边缘端口保护:配置后,边缘端口收到RST BPDU,边缘端口会进入error down特殊状态,但是边缘端口的属性还保留,可以在网管系统中获知,不引起网络拓扑变化
根端口保护:如果配置这个,那么这个端口就只能是指定端口了,特别注意根端口保护不是在根端口配置,是在指定端口配置。收到优先级更高的RST BPDU,会进入discarding状态,而不是成为根桥,如果经过30秒,没有再次收到,那么就恢复成为正常的
环路保护:在根端口上配置,如果根端口或者预备端口长时间没有收到上游设备的BPDU,,那么根端口会进入禁用状态,此时的根端口成为指定端口,预备端口也会成为成为指定端口;只是因为在RSTP中,根端口的状态就是依靠上游设备的RST BPDU来维护的
拓扑变更
防TC-BPDU攻击:配置后,可以配置在单位时间内设备处理TC BPDU的次数,超过数值的,定时器到齐后,会进行统一处理
在RSTP中,只有一个标准是拓扑发生变更,那么就是非边缘端口进入转发状态,这要依靠是TC while timer计时器,时间是4秒,会清空状态发生变化的端口上学到的MAC地址
实验
报文实例
配置命令
stp mode rstp
stp root primary//配置当前设备为根桥
stp root secondart//配置当前设备为备份根桥
stp priority 优先级//需要为4096倍数
stp cost 开销//接口视图,修改开销
stp priority 优先级//配置接口优先级
stp edged-port enable //配置边缘端口
stp bpdu-protection//配置BDPU保护(边缘端口保护),系统视图下配置
stp root-protection//配置根端口保护,接口视图下配置,根端口保护与环路保护不能配置在同一个端口下
stp loop-protection//配置环路保护,在根端口或者预备端口下配置