在正常情况下,Switch C上右边的端口会处于Blocking状态,当L1的链路发生故障的时候,虽然说Switch C是检测不到,但是Switch B会认为自己的跟桥,然后通过L3链路发送BPDU。Switch C收到这个BPDU之后,发现是次级BPDU,所以确定有非直连链路的故障。Switch C会从根端口发送RLQ,Switch A(根桥)接到RLQ,以RLQ响应进行应答,Switch C收到SwitchA的RLQ响应,知道根桥还在,然后把右边的端口从blocking直接过去到Listening状态,如下图所示。
当L1链路恢复的时候,BackboneFast会马上把Switch C上右侧的端口的状态设为blocking。
从不同的端口收到次级BPDU的情况:
1. 当交换机从阻塞端口收到次级BPDU的时候,那么该交换机上的根端口和其他阻塞端口将成为到达根桥的替代路径。
2. 当交换机从根端口收到次级BPDU,那么当前所有的阻塞端口都将成为达到根桥的替代路径。
3. 当交换机从根端口收到次级BPDU,并且交换机上不存在阻塞端口的话,那么交换机认定到达根桥的链路已经down掉了,在老化时间到了之后,交换机将通过把自己宣告为根桥开始正常的STP选举过程。
配置BackboneFast
如果要启用BackboneFast特性,我们应该在网络中的所有交换机上都启用。
从不同的端口收到次级BPDU的情况:
1. 当交换机从阻塞端口收到次级BPDU的时候,那么该交换机上的根端口和其他阻塞端口将成为到达根桥的替代路径。
2. 当交换机从根端口收到次级BPDU,那么当前所有的阻塞端口都将成为达到根桥的替代路径。
3. 当交换机从根端口收到次级BPDU,并且交换机上不存在阻塞端口的话,那么交换机认定到达根桥的链路已经down掉了,在老化时间到了之后,交换机将通过把自己宣告为根桥开始正常的STP选举过程。
配置BackboneFast
Switch(config)#spanning-tree backbonefast注意事项
如果要启用BackboneFast特性,我们应该在网络中的所有交换机上都启用。
看完“从不同的端口收到次级BPDU的情况:”这3点后,我有一点自己的看法。:如果一个交换机可以通过3条开销不同的到达根桥的路径,比方说开销分别为1,2,3。那么开销为2和3的路径中,肯定有端口是blocked的。当非指定交换机从开销值为2的那条路径收到次级BPDU后,开销值为2的链路上的那个blocked端口最终会过度到forwarding状态。而开销值为3的链路上的那个blocked端口仍人会处于blocking状态,不会有任何变化。楼主分了3中情况来讨论,我觉得1和2可以归为一类,因为block端口本来就是替代路径。
希望得到楼主的答复!