生成树协议——RSTP基础(day 5)
RSTP(STP 优化)
思维导图:
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里,位于网络边缘的指定端口被称为边缘端口。
- 边缘端口一般与用户终端设备直接连接,不与任何交换设备连接。边缘端口不接收配置BPDU报文,不参与RSTP运算,可以由Disabled状态直接转到Forwarding状态,且不经历时延,就像在端口上将STP禁用了一样。但是,一旦边缘端口收到配置BPDU报文,就丧失了边缘端口属性,成为普通STP端口,并重新进行生成树计算,从而引起网络震荡。
2.5 RSTP收敛过程
RSTP BPDU:RSTP对此进行了改进,即在拓扑稳定后,无论非根桥设备是否接收到根桥传来的配置BPDU报文,非根桥设备都会仍然按照Hello Timer规定的时间间隔发送配置BPDU,该行为完全由每台设备自主进行。
- 每一台交换机启动RSTP后,都认为自己是“根桥”,并且发送RST BPDU。所有端口都为指定端口,
处于Discarding状态
。 - 交换机互相发送Proposal置位的RST BPDU。每个认为自己是“根桥”的交换机生成一个RST BPDU报文来协商指定网段的端口状态,此RST BPDU报文的Flags字段里面的Proposal位需要置位。当一个端口收到RST BPDU报文时,此端口会比较收到的RST BPDU报文和本地的RST BPDU报文。如果本地的RST BPDU报文优于接收的RST BPDU报文,则端口会丢弃接收的RST BPDU报文,并发送Proposal置位的本地RST BPDU报文来回复对端设备。
- **交换机使用同步机制来实现端口角色协商管理。**当收到Proposal置位并且优先级高的BPDU报文时,接收交换机必须设置所有下游指定端口为Discarding状态。
如果下游端口是Alternate端口或者边缘端口,则端口状态保持不变
。 - 当确认下游指定端口迁移到Discarding状态后,设备发送RST BPDU报文回复上游交换机发送的Proposal消息。在此过程中,端口已经确认为根端口,因此RST BPDU报文Flags字段里面设置了Agreement标记位和根端口角色。
- 在P/A进程的最后阶段,上游交换机收到Agreement置位的RST BPDU报文后,指定端口立即从Discarding状态迁移为Forwarding状态。然后,下游网段开始使用同样的P/A进程协商端口角色。
2.6 链路故障/根桥失效
-
在STP中,当出现链路故障或根桥失效导致交换机收不到BPDU时,交换机需要等待Max Age时间后才能确认出现了故障。
-
在STP中,当出现链路故障或根桥失效导致交换机收不到BPDU时,交换机需要等待Max Age时间后才能确认出现了故障。
-
而在RSTP中,如果交换机的端口在连续3次Hello Timer规定的时间间隔内没有收到上游交换机发送的RST BPDU,便会确认本端口和对端端口的通信失败,从而需要重新进行RSTP的计算来确定交换机及端口角色。