原理简述:
1.Hello Time定时器:为周期发送BPDU来维护生成树的稳定的时间,默认为2s。如果交换机在配置的超时时间内没有收到上游交换机发送的BPDU,则会重新进行生成树的计算。在根交换机上配置的Hello Time将作为整个生成树内所有的交换机的Hello Time使
2.Max Age定时器:BPDU的最大生存时间,默认为20s。交换机通过比较从上游交换机收到的BPDU中携带的Messgae Age(配置BPDU的生存时间,若配置BPDU是根桥发出的,则Message Age为0,每经过一台交换机增加1)和Max Age,来判断这个BPDU是否超时。如果收到的BPDU超时,交换机会将该BPDU老化,同时阻塞接收该BPDU的接口,并开始发出以自己为根桥的BPDU。这种老化机制可以有效的控制生成树的半径。在根交换机上配置的Max Age将作为整个生成树内所有的交换机的Max Age。
3.Forward Delay 定时器:延迟时间为Forward Delay定时器的时间,默认为15s。STP采用了一种端口状态迁移机制,寻选出的根端口和指定端口要经过2倍的Forward Delay延时后才能进入转发状态,这个延时保证了新的配置消息传遍整个网络,使所有参与STP计算的交换机都能正确的知晓网络的状态,可以有效的防止临时环路的产生。在华为交换设备上,由于默认生成树的模式为MSTP,当手工更改生成树模式为STP时,STP端口的状态只有Discarding、Learning、Forwarding3种。在根交换机上配置的延时时间将作为整个生成树内所有的交换机的延时时间。
超时时间=3*Hello Time*Timer Factor(时间利用系数)。
如果交换机在配置的超时时间内没有收到上游发送的BPDU,就会认为上游交换机发生了故障,然后会重新进行生成树拓扑的计算。但是,有时交换机在较长时间内收不到上游发送的BPDU,是因为上游交换机的繁忙造成的,在这样的情况下一般不应该重新进行生成树的计算。
在稳定的网络中,应该讲超时时间配置较长一些,以减少网络资源的浪费。建议将Timer Factor的值设置为5~7,以增强网络稳定性。
根交换机的Hello Time、Forward Delay、Max Age3个时间参数之间的取值关系公式:
2*(Forward Delay -1.0 second)>=Max Age; Max Age>=2*(Hello Time+1.0 second)
实验内容:
每台交换机都运行STP生成树协议,配置S1为根交换机,S2为备份根交换机。在交换机上更改STP定时器,将所有定时器调整到最优值,完成STP的加速收敛。
实验目的:
(1)理解STP定时器的作用;
(2)掌握STP定时器的配置命令;
(3)掌握查看STP定时器的生效方法;
(4)理解STP定时器的最佳配置方法。
实验拓扑:
实验中交换机的MAC地址:
设备及型号 | 全局MAC地址 |
S1(S3700) | 4c1f-ccad-37c0 |
S2 | 4c1f-ccfe-4656 |
S3 | 4c1f-cc59-7d02 |
S4 | 4c1f-ccb9-09b8 |
实验操作:
1.基础配置:按照实验要求完成相应的IP地址的配置,测试各直连链路的连通性。
2.STP定时器的配置方法:
在各台交换机上配置所使用的STP,并将S1配置为根交换机,S2为备份根交换机。配置后,使用display stp命令查看配置信息。
[S1]dis stp
-------[CIST Global Info][Mode STP]-------
CIST Bridge :0 .4c1f-ccad-37c0
Config Times :Hello 2s MaxAge 20s FwDly 15s MaxHop 20 //当前设备配置的计时器
Active Times :Hello 2s MaxAge 20s FwDly 15s MaxHop 20 //正在生效的计时器
......
使用stp timer命令,在S1上修改Forward Delay时间为2000cs,默认情况下为1500cs(cs:百分之一秒)。强调:只有在根交换机上配置才可生效。
[S1]stp timer forward-delay 2000
Apr 2 2019 08:34:06-08:00 S1 DS/4/DATASYNC_CFGCHANGE:OID 1.3.6.1.4.1.2011.5.25.
191.3.1 configurations have been changed.
//配置已生效
查看配置过后的定时器的值。
[S1]dis stp
-------[CIST Global Info][Mode STP]-------
CIST Bridge :0 .4c1f-ccad-37c0
Config Times :Hello 2s MaxAge 20s FwDly 20s MaxHop 20
Active Times :Hello 2s MaxAge 20s FwDly 20s MaxHop 20
注意:若在非根交换机上进行配置,则Config Times配置值会发生改变,但是Active Times实际运行的值不会改变。
更改STP的Hello Time时间或其他的计时器会出现大量丢包的现象,所以不建议使用命令直接修改定时器时间。建议使用stp bridge-diameter命令设置网络直径,交换机会根据网络直径自动的计算出3个时间参数的最优值。同样地,该命令也需要在根交换机上配置才可行。
[S1]stp bridge-diameter 3 //设置网络直径为3
[S1]dis stp
-------[CIST Global Info][Mode STP]-------
CIST Bridge :0 .4c1f-ccad-37c0
Config Times :Hello 2s MaxAge 12s FwDly 9s MaxHop 20
Active Times :Hello 2s MaxAge 12s FwDly 9s MaxHop 20
//计算出各参数的最优值
注意:在华为交换机设备上,当MSTP模式切换到STP模式,运行STP协议的设备上端口支持的端口状态仍保持和MSTP支持的端口状态一样,仅仅包含Forwarding、Learning、Discarding这3种状态。
思考:交换机端口在发生状态转换时,都有哪些状态会经历一个Forwrad Delay时间?
在正常端口发生状态转换时会在Listening、Learning这两个状态时经历一个转发延迟。有的特殊端口,例如:Portfast端口则会跳过这两个状态直接的进入转发。