stp拓扑变化分类

Max Age 20s

Hellotime 2s

Forward delay 15

3、拓扑改变需要多长时间

1)根桥故障:需要50秒(Max age+2个forwarding delay)

2)非直连链路:

非直连故障

在稳定的STP网络,非根桥会定期收到来自根桥的BPDU报文。

若SW1与SW2之间的链路发生了某种故障(非物理故障),因此SW2一直收不到来自根桥SW1的BPDU报文,Max Age计时器(缺省: 20 s)就会超时,从而导致已经收到的BPDU报文失效。

此时,非根桥SW2会认为根桥失效,并且认为自己是根桥,从而发送自己的配置BPDU给SW3,通知SW3自己是新的根桥。

在此期间,SW3的预备端口一直收不到包含根桥ID的BPDU,Max Age计时器超时后,端口进入到Listening状态,开始向SW2"转发"从上游发来的包含根桥ID的BPDU。

因此,Max Age定时器超时后,SW2和SW3几乎同时收到对方发来的BPDU,再进行STP重新计算,SW2发现SW3发来的BPDU更优,就放弃宣称自己是根桥并重新确定端口角色。

端口状态:

SW3预备端口20s后会从Blocking状态进入到Listening状态,再进入Learning状态,最终进入到Forwarding状态,进行用户流量的转发。

收敛时间:

非直连故障会导致50s左右的恢复时间,等于Max Age加上2倍的Forward Delay收敛时间。

3)直连链路

直连链路故障:

当两台交换机间用两条链路互连时,其中一条是主用链路,另一条为备用链路。

当网络稳定时,交换机SWB检测到根端口的链路发生故障,则其备用端口会进入用户流量转发状态。

端口状态:

备用端口会从Blocking状态,迁移到Listening-Learning-Forwarding状态。

收敛时间:

直连链路故障,备用端口会经过30s后恢复转发状态。

4)拓扑改变,MAC地址表的处理方式

在交换网络中,交换机依赖MAC地址表转发数据帧。缺省情况下,MAC地址表项的老化时间是300秒。如果生成树拓扑发生变化,交换机转发数据的路径也会随着发生改变,此时MAC地址表中未及时老化掉的表项会导致数据转发错误,因此在拓扑发生变化后需要及时更新MAC地址表项。

本例中,SW2中的MAC地址表项定义了通过端口GigabitEthernet 0/0/3可以到达主机A,通过端口GigabitEthernet 0/0/3可以到达主机B。由于SW3的根端口产生故障,导致生成树拓扑重新收敛,在生成树拓扑完成收敛之后,从主机A到主机B的帧仍然不能到达目的地。这是因为MAC地址表项老化时间是300秒,主机A发往主机B的帧到达SW2后,SW3会继续通过端口GigabitEthernet 0/0/3转发该数据帧。

拓扑变化过程中,根桥通过TCN BPDU报文获知生成树拓扑里发生了故障。根桥生成TC用来通知其他交换机加速老化现有的MAC地址表项。

拓扑变更以及MAC地址表项更新的具体过程如下:

SW3感知到网络拓扑发生变化后,会不间断地向SWB发送TCN BPDU报文。

SW2收到SW3发来的TCN BPDU报文后,会把配置BPDU报文中的Flags的TCA位设置1,然后发送给SW3,告知SW3停止发送TCN BPDU报文。

SW2向根桥转发TCN BPDU报文。

SW1把配置BPDU报文中的Flags的TC位设置为1后发送,通知下游设备把MAC地址表项的老化时间由默认的300 s修改为Forward Delay的时间(默认为15 s)。

最多等待15 s之后,SW2中的错误MAC地址表项会被自动清除。此后,SW2就能重新开始MAC表项的学习及转发操作。

相关推荐
乌托邦的逃亡者4 小时前
Docker的/var/lib/docker/目录占用100%的处理方法
运维·docker·容器
ldj20204 小时前
Jenkins 流水线配置
运维·jenkins
Muxiyale7 小时前
使用spring发送邮件,部署ECS服务器
java·服务器·spring
12点一刻9 小时前
搭建自动化工作流:探寻解放双手的有效方案(2)
运维·人工智能·自动化·deepseek
未来之窗软件服务9 小时前
东方仙盟AI数据中间件使用教程:开启数据交互与自动化应用新时代——仙盟创梦IDE
运维·人工智能·自动化·仙盟创梦ide·东方仙盟·阿雪技术观
FreeBuf_9 小时前
微软365 PDF导出功能存在本地文件包含漏洞,可泄露敏感服务器数据
服务器·microsoft·pdf
lixzest10 小时前
C++ Lambda 表达式详解
服务器·开发语言·c++·算法
o不ok!10 小时前
Linux面试问题-软件测试
linux·运维·服务器
小小不董12 小时前
深入理解oracle ADG和RAC
linux·服务器·数据库·oracle·dba