STP重新收敛过程和补充内容

STP对次优BPDU的处理:

通常情况下,只有根桥交换机才会发送配置BPDU,其他非根网桥只从指定端口转发从根端口接收到的配置BDPU。但是在上图的环境下,S4新加入了环境中,认为自己是根,发送相应的BPDU。非根网桥指定端口只有在接收到次优BPDU时,才会主动发送最优BPDU,然后对方接收到以后,用更优先的BPUD更新自己的BPDU。
在这里插入图片描述
拓扑描述:
当S2收到S4的次优BPDU后,这是因为网桥都会保存当前最优的配置BPDU,会向S4发送最优的BPDU。S4收到了回应的BPDU后,将根桥设置为S1,连接入网络的端口设置为根接口。

补充:阻塞端口和根接口收到在次优的BPDU将不会处理。如果阻塞接口和根接口在MAX Age中一直收到次优的BPDU,而没有其他的BPDU,则超时后变为指定接口,再主动向下行发送自己计算出的BPDU。

STP临时环路的产生:

在这里插入图片描述
拓扑描述:
假设开始时拓扑如左侧所示,且路径开销均相同。交换机S1、S2和S3相连,根桥确定为S1,相应互联端口均处于转发状态。当S1和S2之间新增链路后,最开始两个接口都认为自己是指定接口,S2收到S1和S3发送的BPDU,经计算,S2确定与S1互联的端口为新的根端口,与S3互联的端口为指定端口。这样,所有端口要么是根端口,要么是指定端口,即均处于转发状态,于是便产生了环路。只有当配置BDPU传播到每个网桥,交换机S2经过计算阻塞与S3互联的端口,环路才会消除。

所以在一个端口从不转发状态进入转发状态之前(例如S2与S1的互连端口),需要等待一段足够长的时间(2个forward delay),以使需要进入阻塞状态的端口有足够的时间完成生成树计算,并停止转发数据。

STP环境中的收敛时长:30s或者48s-50s

在这里插入图片描述
根桥失效:
当S1出现故障(例如关闭了stp协议),S2和S3的根端口都不能收到来自根桥的BPDU报文,他们在等待最长max age时间后,才能发现根桥失效,进而进行新的根桥选举、根端口和指定端口的确定。所以到达最终的拓扑稳定需要经历BPDU的老化、2个forwarding delay(listening+learning)时长,即50秒。当然,指定接口没有收到BPDU报文是正常的情况,阻塞接口20s内没有收到对方的更优的BPDU自己会变为指定接口并且进入监听状态。48s指的是根端口已经收到2s以后,链路才发生故障,这样从故障到最终完成重新收敛为48s。

链路失效:
当S3连接S1的链路失效后,S3马上感知到这一情况的发生。S3的阻塞端口立即进入listening状态,并发送以自己为根的配置BPDU。S2收到S3的次优BPDU后,立即回复以S1为根的配置BPDU,因此S2连接S3的端口成为根端口,S3连接S2的端口成为指定端口。S3的面向S2的端口状态要经历listening、learning再到forwarding,即经历30秒。

链路失效或者链路增加均需要经历30秒,才能恢复故障。

当拓扑发送改变,STP重新计算的过程:

配置BPDU的FLAG字段:
在这里插入图片描述
第一位表示是TC的配置报文,第八位表示为TCA的配置报文,注意这是配置报文,并不是TCN BPDU,没有置位表示普通的配置BPDU。

配置BPDU和TCN BPDU:
配置BPDU 34个字节,且类型字段取值为固定的0x00,TCN BPDU只有4字节,也就是配置BPDU的前3个字段,并且类型字段取值为固定的0x80。

流程:

  1. 在网络拓扑发生变化后,有端口转为转发状态的下游设备会不间断地向上游设备发送TCN BPDU报文。
    上游设备收到下游设备发来的TCN BPDU报文后,只有指定端口处理TCN BPDU报文。其它端口也有可能收到TCN BPDU报文,但不会处理。
  2. 上游设备会把配置BPDU报文中的Flags的TCA位设置1,然后通过接收到TCN BPDU的接口发送给下游设备,告知下游设备停止发送TCN BPDU报文。
  3. 上游设备复制一份TCN BPDU报文,从根接口向根桥方向发送。
  4. 重复步骤1、2、3、4,直到根桥收到TCN BPDU报文。
  5. 根桥收到TCN BPDU后,会将下一个要发送的配置BPDU中的TCA位置位,从相应接收到的指定接口发送出去,作为对收到的TCN的确认,还会将该配置BPDU报文中的Flags的TC位置1,从自己所有的指定接口发送出去,用于通知所有网桥拓扑发生了变化。
  6. 根桥在之后的max age+forwarding delay时间内,将发送BPDU中的TC置位的报文,收到该配置BDPU的网桥,会将自身MAC地址老化时间缩短为forwarding delay。
  7. 当非根桥从自己的根端口接收到以后TC位为1的BPDU后将从自己的所有指定接口复制一份发送出去。
    在这里插入图片描述

拓扑描述:

  1. 拓扑中,经由STP计算,S1为根桥,S4的E1端口被阻塞。
  2. 当S3的面向PC1的链路断掉之后,网络中的STP将进行重算,S4的E1端口将转变为指定端口(经过20s对方没有发送BPDU报文),然后经过30s进入转发状态,此时S4会向上游发送TCN消息。这里如果拓扑没有PC机,而是两个交换机直接连接,一边断开后,另外一边的链路也down掉。
  3. S2收到S3的TCN消息之后,将下一个配置BPDU中的TCA置位并从端口E3发送给S4,S2也从自己的根端口E1向根发送TCN BPDU。
  4. S1收到S2发送的TCN消息之后,将下一个配置BPDU中的TCA和TC置位并从指定端口E1发送给S2。此后的(20秒+15秒)时间内,S1均将配置BPDU中的TC置位,各个网桥收到TC置位的BPDU后,将MAC地址的老化时间置为15秒。
  5. 于是网络拓扑改变后,网络中交换机上的MAC地址表将很快收敛,避免无效流量浪费带宽。

参考资料:华为HCIE培训文档

  • 2
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

格洛米爱学习

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值