RSTP
RSTP引入
STP可以消除二层网络中的环路并为网络提供冗余性,但是STP的收敛时间最长需要50s,相对于三层协议OSPF或VRRP秒级的收敛速度,STP无疑成为影响网络性能的一个瓶颈。为解决STP收敛速度慢的问题,IEEE在STP协议的基础之上进行了改进,推出了快速生成树版本——RSTP。
RSTP(RapidSpanning Tree Protocol,快速生成树协议)的IEEE标准为802.1W,其消除环路的基本思想和STP保持一致。RSTP具备了STP的所有功能,支持RSTP的网桥可以和支持STP的网桥一同运行。
和STP相比,RSTP的改进之处包括如下内容。
(1) RSTP减少了端口状态。
(2) RSTP增加了端口角色。
(3) RSTP配置BPDU的格式和发送方式有所改变。
(4) 当网络拓扑变化时,RSTP的处理方式不同。
RSTP的端口状态
RSTP将端口状态分为Discarding、Learning和Forwarding状态。STP中的Disabled、Blocking和Listening状态在RSTP中都对应为Discarding。
进行RSTP计算时,端口会在Discarding状态完成角色的确定,当端口确定为根端口和指定端口后,经过Forward Delay 端口会进入Learning状态;当端口确定为Alternate端口后端口会维持在Discarding状态。
处于Learning状态的端口其处理方式和STP相同,此状态期间端口开始学习MAC地址并在Forward Delay后进入Forwarding状态开始收发数据。
在实际运行中,由于RSTP提供了快速收敛机制,端口从Discarding状态转换到Forwarding状态的时间通常小于30s。
RSTP的端口角色
RSTP中根端口和指定端口角色的定义和STP相同。每一个非根桥都有一个根端口,从该端口出发到达根桥的路径,是本网桥到达根桥的所有路径最优的。每一个Physical Segment(物理网段)都会选举一个指定桥,指定桥在Physical Segment上的端口即本Physical Segment的指定端口,指定端口拥有该Physical Segment上最优的配置BPDU。
RSTP将STP中的Alternate端口角色进一步分为两种,其中一种角色为Backup,另一种角色名称将仍为Alternate.
(1) 当阻塞端口收到更优的配置BPDU来自其他网桥时,该端口为Alternate端口。
(2) 当阻塞端口收到更优的配置BPDU来自本网桥时,该端口为Backup端口。
RSTP的BPDU格式及发送方式
在STP中,通常情况下只有根桥可以产生配置BPDU,非根桥从根端口接收配置BPDU并更新为自己的配置BPDU,然后从指定端口发出,非根桥不会主动产生并发送配置BPDU。
RSTP对BPDU的发送方式做了改进,RSTP中网桥可以自行从指定端口发送RST BPSU,不需要等待来自根桥的RST BPDU,BPDU的发送周期为Hello Time。
由于RSTP中网桥可以自行从指定端口发送RST BPDU,所以在网桥之间可以提供一种保活机制,即在一定时间内网桥没有收到对端网桥发送的RST BPDU,即可认为和对端网桥的连接中断。
STP不支持这种保活机制,因为STP中配置BPDU仅由根桥产生,其他网桥仅对配置BPDU进行中继,传递路径上的任何故障都可能导致接受者无法收到配置BPDU,所以网桥在一段时间收不到配置BPDU不能判断为与对端连接中断。
RSTP规定,若在3个连续的HelloTime时间内没有收到对端指定桥发送的RST BPDU,则网桥端口保存的RST BPDU老化,认为与对端网桥连接中断。新的老化机制大大加快了拓扑变化的感知,从而可以实现快速收敛。
在STP中只有在指定端口收到低优先级的配置BPDU时,才会立即回应,处于阻塞状态的端口不会对低于优先级的配置BPDU做出响应。
RSTP的快速收敛
在STP中,为了避免临时环路,端口从使能到进入转发状态需要等待默认30s的时间,如果想要缩短这个时间,只能通过手动方式将Forward Delay设置为较小的值。但是Forward Delay是由Hello Time和网络直径共同决定的一个参数,如果将Forward Delay设置太小可能会导致临时环路的产生,影响网络的稳定性。
RSTP从根本上进行了改进,定义了多种快速收敛机制,包括边缘端口机制、根端口快速切换机制、指定端口快速切换机制。其中,指定端口快速切换机制也称为P/A机制。
边缘端口
当端口直接与用户终端相连,而没有连接到其他网桥或局域网网端上时,该端口即为边缘端口。
边缘端口连接的是终端,当网络拓扑变化时,边缘端口不会产生临时环路,所以边缘端口可以略过两个Forward Delay的时间,直接进入Forwarding状态,无须任何延时。
由于网桥无法自动判断端口是否直接与终端相连,所以用户需要手动将与终端连接的端口配置为边缘端口。
根端口快速切换
RSTP定义了Alternate端口,为根端口做备份。当旧的根端口进入阻塞状态时,网桥会选择优先级最高的Alternate端口作为新的根端口,如果当前新根端口连接的对端网桥的指定端口处于Forwarding状态,则新根端口可以立刻进入转发状态。
指定端口快速切换
当网络中增加新的链路或故障链路恢复时,链路两端必然有一个端口的角色是指定端口,在STP中,该指定端口需要等待默认30s时间才会进入Forwarding状态。
RSTP定义了Proposal/Agreement(P/A机制),指定端口可以通过与对端网桥进行一次握手,即可快速进入转发状态,期间不需要任何定时器。p/A机制的前提条件是:握手必须在点到点链路中进行。有点到点链路作为前厅,P/A机制可以实现网络拓扑的逐连理收敛,而不必像STP,需要被动等待默认30s的时间以确保全网实现收敛。
当新联路连接时,链路两端的端口初始都为指定端口并处于阻塞状态。当指定端口处于Discarding状态和Learning状态时,其所发送的STP BPDU中的Proposal位将被置位,端口角色位为11,表示端口为指定端口。收到Proposal置位的RST BPDU后,网桥会判断接收端口是否为根端口,如果是网桥会启动同步过程。同步过程指网桥阻塞除边缘端口之外的所有端口,在本网桥层面消除环路产生的可能。
RSTP中的拓扑改变处理
在STP中,端口变为Forwarding状态,或从Forwarding状态到Blocking状态均会触发拓扑改变处理过程。和STP相比,RSTP优化了拓扑改变触发条件,其拓扑改变触发条件只有一个;非边缘端口转变为Forwarding状态。在RSTP中,链路中断将不会直接触发拓扑改变处理过程。
RSTP和STP的兼容
RSTP是STP的改进版本,可以支持STP的所有功能,也可以和STP兼容运行。当运行RSTP的网桥的端口连续3次接收到配置BPDU时,网桥认为该端口和STP网桥相连,该端口将切换到STP协议运行。
切换到STP协议的RSTP端口将丧失快速收敛机制特性,机从阻塞到转发需要等待默认30s的时间。建议当网络中出现STP和RSTP混用情况时,将STP设备放在网络边缘,从而将影响范围降到最小。
(注意:RSTP可以兼容STP但是STP无法兼容RSTP)
本篇不附实验