STP拓扑改变过程
STP拓扑改变过程
TCN BPDU用于通告网络拓扑的变化。当交换机的端口启动或关闭(或者端口从转发或监听状态转换到阻塞状态等情况)时,拓扑发生变化交换机就会在其根端口上发送TCN BPDU,以保证信息最终到达根网桥。需要注意,TCN BPDU只通知拓扑发生变化而没有拓扑变化数据,并且如果端口配置了PortFast则不会发送TCN BPDU。
根网桥接收到相关BPDU后,更改BPDU中拓扑变更标记,然后向全网进行发送以指出拓扑发生了变化。在交换机接收到TCN BPDU信息后需要进行确认,否则发送TCN BPDU信息的交换机会每个Hello时间发送一个TCN BPDU。
以图4.1所示网络拓扑,讲解两种拓扑改变后STP的会聚过程。
图4.1 STP拓扑改变会聚过程示意图
1、断开SW1和SW3的链路
1)交换机SW1和SW3检测到链路出现故障,SW3删除从F0/23口收到的“最佳”BPDU信息。
2)交换机SW3将向根网桥发送TCN BPDU,但是SW3的根端口处于Down状态,所以无法发送;SW1为根网桥所以不需要发送TCN BPDU信息。
3)交换机SW1从F0/24口发送一条设置了TCN位的BPDU信息,收到BPDU信息后交换机将进行转发,保证网络中所有交换机都知道拓扑发生了变化。
4)交换机SW2和SW3都会接收到SW1发送的BPDU;交换机SW3只从F0/24口收到根网桥的信息,而此信息是从根网桥收到的“最佳”BPDU,所以STP重新计算此端口最终将成为根端口。在成为根端口前需要经历监听状态、学习状态和转发状态,默认情况下大约会花费30秒左右。
2、断开SW1和SW2的链路
1)交换机SW1和SW2检查到链路出现故障,SW2删除从F0/24口收到的“最佳”BPDU信息。
2)交换机SW2将向根网桥发送TCN BPDU;SW1为根网桥所以不需要发送TCN BPDU信息。
3)交换机SW1从F0/23口发送一条设置了TCN位的BPDU信息,收到BPDU信息后交换机将进行转发,保证网络中所有交换机都知道拓扑发生了变化。但是SW3的F0/24口处于阻塞状态,其只接收BPDU不发送BPDU,所以SW2不会收到SW1的BPDU信息。
4)交换机SW2无法收到任何BPDU信息,而其知道拓扑发生变化,所以STP重新计算认为自己是根网桥向外发送BPDU,而SW3的F0/24口还保留这“最佳”的BPDU信息,所以SW3从F0/24收到的BPDU不是“最佳”BPDU。经过20秒后SW3的F0/24端口的“最佳”BPDU信息被删除,这时在收到SW2的BPDU信息后更新BPDU信息,进行STP选举过程。在成为指定端口前需要经历监听状态、学习状态和转发状态,再加上最大老化时间,默认情况下大约会花费50秒左右。
一台普通的主机接入到Cisco交换机,大约需要经过30秒左右的时间,端口才能成为转发状态。