RSTP基础知识
因为STP收敛速度过慢,远远低于三层协议的收敛,所以,后来推出了快速STP。RSTP引入了一些新的功能:比如端口角色增加,端口状态减少,配置BPDU格式进行了修改,能实现快速收敛。
一、 新的端口角色
AP:如果该端口不属于所连接网段的指定交换机,则端口状态为预备端口,预备端口是根端口的备份
BP:对于非根非指定端口,如果这个端口属于所连接网段的指定交换机,则端口状态为备份端口,备份端口是指定端口的备份(BP能接收到自己发送的BPDU)
另一种解释:
从配置BPDU的角度来看:
AP就是由于学习到其它网桥发送的配置BPDU报文而阻塞的端口
BP就是由于学习到自己发送的配置BPDU报文而阻塞的端口
从用户流量角度来看:
AP提供了从指定桥到根的另一条可切换路径,作为根端口的备份
BP作为指定端口的备份,提供了另一条从根桥到相应网段的备份。
二、新的端口状态
forwarding:转发状态
learnning:学习状态
discarding: 华为的传统STP也discarding状态,而不是blocking。 在快速生成树中,discarding状态包括了 listening blocking和disbled 如果不转发用户流量也不学习MAC地址,端口状态是discarding.
三、如何实现快速收敛
1. RP端口的快速切换:如果一个交换机根端口丢失,且它有AP端口,那么它将快速切换AP为RP。
2. DP端口发起的提议/协定:在点到点的链路上,由指定端口发起proposal,根端口收到以后,会将本交换机除边缘端口以外的正在转发的接口置于discarding状态,然后向上游回复agreement,这样,这一对指定端口--根端口完成了收敛,接着再进行下一层的收敛。这个P/A收敛机制是从根桥一直向下游实现。
3. 三倍hello时间超时:华为的设备在标准的RSTP上,需要诚意一个时间因子,默认为3.即3倍hello超时为18秒。
4. 边缘端口引入,当一个端口被配置为边缘端口以后,它能立即进入转发状态。它不参与RSTP的运算。 如果一个边缘端口收到了BPDU,那么它将放弃边缘端口的属性,成为普通的STP端口。(当一个交换机的两个边缘端口连接到一台关闭了STP的华为交换机上,会形成环路。因为关闭了STP的华为交换机会过滤STP报文。实验表明:非边缘端口这样接也会引起环路。)
四、 配置BPDU的变化
1. 非根桥设备也可以发送配置BPDU
2. BPDU超时:3倍hello时间 * 时间因子(3),18秒
3. 对于次优BPDU的处理:当一个接口收到了上游指定交换机发送过来的RST配置BPDU后,该端口会将自身存储的BPDU与收到了BPDU进行比较。如果该端口存储的RST BPDU比收到的RST BPDU更优,那么该端口会直接丢弃收到的RST BPDU,并且将自己的RST BPDU回应给上游。当上游收到下游设备的RST BPDU以后,上游设备会根据收到的RST BPDU报文中相应的字段立即更新自己存储的RST BPDU。RSTP收到次级BPDU以后不依赖于任何定时器通过超时来解决拓扑收敛。
五、RSTP如何实现P/A快速收敛机制
RSTP通过对STP协议的改进,实现了快速收敛。
链路为点对点,RSTP按照P/A快速收敛进入转发状态:
- 上游设备发送Proposal报文,启动等待定时器。
- 下游设备堵塞全部其它端口,回应上游Agreement报文。
- 上游设备收到Agreement报文,端口进入转发状态。
通过一层一层的往下游请求,下游同意快速收敛,上游进入转发,实现整个RSTP网络快速收敛。
原文地址:http://blog.51cto.com/liu008qing/2147751