生成树协议——RSTP基础(day 5)

RSTP(STP 优化)

思维导图:

生成树协议——RSTP基础(day 5)

1 STP缺陷

STP生成树收敛需要依赖定时器计时,端口状态从Blocking到Forwarding至少需要两个forward relay的时间长度,收敛时间太长,一般都需要几十秒。IEEE 802.1w定义了RSTP(Rapid Spanning Tree Protocol)弥补了STP收敛时间慢的缺陷。

2 RSTP

2.1 RSTP端口角色

角色 描述
Backup Backup端口作为指定端口的备份,提供了另外一条从根桥到非根桥的备份链路。
Alternate Alternate端口作为根端口的备份端口,提供了从指定桥到根桥的另一条备份路径。

2.2 三种端口状态

RSTP中定义了三种端口状态:Discarding、Learning、Forwarding。

RSTP 端口状态 对应STP端口状态 说明
Forwarding Forwarding 可以转发用户数据帧,可以学习MAC地址
Learning Learning 不可以转发用户数据帧,但是可以学习MAC地址
Discarding Listening、Blocking、Disabled 不可以转发用户数据帧,不可以学习MAC地址

2.3 P/A机制

在RSTP中,一个端口被指定成为指定端口后,此端口会先进入discarding,然后通过**P/A(Proposal/Agreement)**机制主动与对端端口协商,通过协商后,就可以立即进入Forwarding状态。

2.4 边缘端口

生成树协议——RSTP基础(day 5)
  • RSTP里,位于网络边缘的指定端口被称为边缘端口。
  • 边缘端口一般与用户终端设备直接连接,不与任何交换设备连接。边缘端口不接收配置BPDU报文,不参与RSTP运算,可以由Disabled状态直接转到Forwarding状态,且不经历时延,就像在端口上将STP禁用了一样。但是,一旦边缘端口收到配置BPDU报文,就丧失了边缘端口属性,成为普通STP端口,并重新进行生成树计算,从而引起网络震荡。

2.5 RSTP收敛过程

RSTP BPDU:RSTP对此进行了改进,即在拓扑稳定后,无论非根桥设备是否接收到根桥传来的配置BPDU报文,非根桥设备都会仍然按照Hello Timer规定的时间间隔发送配置BPDU,该行为完全由每台设备自主进行。

生成树协议——RSTP基础(day 5)
  1. 每一台交换机启动RSTP后,都认为自己是“根桥”,并且发送RST BPDU。所有端口都为指定端口,处于Discarding状态
  2. 交换机互相发送Proposal置位的RST BPDU。每个认为自己是“根桥”的交换机生成一个RST BPDU报文来协商指定网段的端口状态,此RST BPDU报文的Flags字段里面的Proposal位需要置位。当一个端口收到RST BPDU报文时,此端口会比较收到的RST BPDU报文和本地的RST BPDU报文。如果本地的RST BPDU报文优于接收的RST BPDU报文,则端口会丢弃接收的RST BPDU报文,并发送Proposal置位的本地RST BPDU报文来回复对端设备。
  3. **交换机使用同步机制来实现端口角色协商管理。**当收到Proposal置位并且优先级高的BPDU报文时,接收交换机必须设置所有下游指定端口为Discarding状态。如果下游端口是Alternate端口或者边缘端口,则端口状态保持不变
  4. 当确认下游指定端口迁移到Discarding状态后,设备发送RST BPDU报文回复上游交换机发送的Proposal消息。在此过程中,端口已经确认为根端口,因此RST BPDU报文Flags字段里面设置了Agreement标记位和根端口角色。
  5. 在P/A进程的最后阶段,上游交换机收到Agreement置位的RST BPDU报文后,指定端口立即从Discarding状态迁移为Forwarding状态。然后,下游网段开始使用同样的P/A进程协商端口角色。

2.6 链路故障/根桥失效

生成树协议——RSTP基础(day 5)
  • 在STP中,当出现链路故障或根桥失效导致交换机收不到BPDU时,交换机需要等待Max Age时间后才能确认出现了故障。

  • 在STP中,当出现链路故障或根桥失效导致交换机收不到BPDU时,交换机需要等待Max Age时间后才能确认出现了故障。

  • 而在RSTP中,如果交换机的端口在连续3次Hello Timer规定的时间间隔内没有收到上游交换机发送的RST BPDU,便会确认本端口和对端端口的通信失败,从而需要重新进行RSTP的计算来确定交换机及端口角色。