一、RSTP的产生
前面的文章写到了当网络拓扑发生变化时,STP的收敛速度大约需要花费30秒-50秒的时间才会继续转发数据。这样在实际生产环境中花费的时间是非常长的,这样RSTP(快速生成树协议)便应运而生。
二、RSTP与STP的区别
1、端口角色的区别
在RSTP中,新增两个两个端口角色(Backup与Alternate)。其中,Backup端口作为非桥设备的备份指定端口。Alternate端口作为非桥设备的备份根端口。正常情况下,Alternate端口与Backup端口作为Disabeld状态。当非根桥设备上的根端口或指定端口出现问题时,会立马启用最为新的根端口或指定端口。
2、特殊的“指定”端口
在RSTP中,将特殊的指定端口改为边缘端口。边缘端口一般情况下是桥设备与主机的连接端口,不会接收到配置BPDU报文,也不参与RSTP的运算。如果 RSTP 边缘端口接收到 BPDU,则该端口立刻丧失边缘端口的属性,而成为普通的生成树端口。可以直接由Disabeld(关闭)状态直接转换为Forwarding(转发)状态(不经历端口状态改变的延时) 。
三、STP配置BPDU报文中的Flags字段在RSTP中得到应用。
四、RSTP收敛过程。
1、选举根桥。
开始时,所有的桥设备都认为自己是根桥,所有的端口都处于Discarding状态,端口角色为指定端口。并向外发送自己的RST BPDU。当桥设备的一个端口收到来自其他桥设备发送的RST BPDU,该桥设备就会与自身的RST BPDU做一个对比。若本身的RST BPDU比收到的RST BPDU更优,就会将其丢弃,同时会回复自身的RST BPDU。若收到的RST BPDU比自身的RST BPDU更优,就会停止发送RST BPDU,将收到的RST BPDU替换成原来自己本身的RST BPDU,接收桥设置所有的下游所有指定端口为Discarding状态,如果下游端口是Alternate或者边缘端口,则端口状态保持不变。
2、选举根端口
当桥设备下游端口全部为Discarding状态后,此桥会向根桥发送一个回复RST BPDU。此BPDU中Flags字段内设置了Agreenment标记位和端口角色。此过程中,按照STP的根端口选举方式选举的根端口立刻由Discarding状态变为Forwarding状态。
3、选举指定段口
与STP的指定端口选举方式一致。当上游桥设备接收到Agreement置位的BPDU后,指定端口的状态立刻由Discarding状态变为Forwarding状态。端口角色变为指定端口。
4、阻塞端口
当选择出根端口与指定端口后,剩余的所有非边缘端口全部为Discarding状态,作为根端口的备份与指定端口的备份。一般情况下为阻塞状态。
注:①边缘端口一般情况下是桥设备与主机的连接端口,不会接收到配置BPDU报文,也不参与RSTP的运算。如果 RSTP 边缘端口接收到 BPDU,则该端口立刻丧失边缘端口的属 性,而成为普通的生成树端口。
②当拓扑稳定之后,无论非根桥交换机是否接收来自根桥的BPDU,非根桥交换机都会按照Hello Time时间间隔(默认2秒)向外发送配置BPDU。
五、故障
在RSTP中,当桥设备在3次Hello Time的时间内(共6秒)没有收到上游交换机发送的BPDU,便会认为与上游桥设备通信失败,这时会向外发送TC BPDU,通知上游桥设备清除其MAC地址表项,当上游桥设备接收到TC BPDU后,会清除除接收端口之外的端口的MAC地址表项并继续向外发送此TC BPDU。在此期间故障或检测到故障的桥设备会重新进行RSTP计算,来确定根端口及其他端口。
六、RSTP可与STP兼容
两者是可以兼容的,但是不推荐。因为这样因为STP的原因导致RSTP收敛速度变慢,从而失去RSTP的快速性。
七、RSTP的三种“保护”
1、环路的保护。
与STP一样,由于有阻塞端口的存在,这样使得桥设备之间既保持了网络拓扑的环路、桥设备之间的冗余与安全性,又避免了类似于广播风暴这样的环路带来的问题。
2、边缘端口的保护。
边缘端口是会收到BPDU报文,也不会不参与RSTP计算的。当边缘端口收到恶意攻击,收到了BPDU报文,生成树便会重新进行计算,从而引起网络的震荡。面对这一问题,可设置边缘端口保护,当边缘端口接收到BPDU报文时,会立刻关闭此端口,可设置为自动恢复或者需要由管理员进行手动恢复。
3、根保护
在生成树中,根桥的配置BPDU是最优的,但是也不排除会有错误配置或者恶意攻击,从而发送更优的配置BPDU,从而使得生成树的重新计算而引起的网络震荡、流量拥塞。所以有了根保护的功能解决此问题。
根保护是通过维持指定端口角色而进行对根桥的保护。一旦启用了此功能的指定端口接收到优先级更高的配置BPDU时,端口状态会立刻进入Discarding(STP中Listening)状态,不转发数据。在一段时间内(通常为两倍的Forward Delay)端口没用再次收到更优的配置BPDU,端口就会恢复为Forwarding状态。
根保护功能仅仅在指定端口生效,不能配置在边缘端口或者阻塞端口上。