「STP」- 计算过程

概述介绍

当运行 STP 协议后:

在初始化的过程中,每个 Switch 都假设自身为 Root Bridge,并主动发送 CFG BPDU 数据帧。在 Switch 间,通过传递 CFG BPDU 来选举 Root Bridge,以及确定每个交换机端口的角色和状态。

在网络拓扑稳定后,只有 Root Bridge 周期性发送 CFG BPDU,当其他 Switch 在收到上游传来的 CFG BPDU 后,才会发送自己的 CFG BPDU;

初始化的过程……

第一步、选举根桥

选举范围:在整个交换网络中,选举根桥

选举方法
1)当交换机启动 STP 后,都会认为自己是 Root Bridge;
2)然后,Switch 向接口发送 BPDU 数据帧以选举 Root Bridge;
3)最后,经过对比,BID 最小的交换机成为 Root Bridge;

交换机比较 BID 的方法:先比较 Priority 参数,较小者胜出;如果相同,再比较 MAC 地址参数;

设备状态:在网络中仅有一个根桥设备,其他交换机为非根桥。

注意事项
1)根桥的角色是可抢占的。
2)为了确保交换网络的稳定,建议提前规划 STP 组网,并将规划为 Root Bridge 的交换机的桥优先级设置为最小值 0。

第二步、选举根端口

选举范围:在非根交换机上,在多个端口(接收到 BPDU 的端口)间选举根端口,为转发状态;而根桥不会存在根端口;

选举方法(选举根端口):
1)路径代价(路径开销):Port 到 Root Bridge 的开销;
2)如果(1)相同,则查看 对端 BID 参数 进行选举;
3)如果(2)相同,则使用 对端 PID 参数 进行选举;
4)如果(3)相同,则使用 本地 PID 参数 进行选举;

设备状态:端口为 Forwarding 状态;

路径代价(路径开销)有不同的标准,不同设备应该使用相同的标准。

第三步、选举指定端口

选举范围:在每个链路中,选举一个指定端口(发送 BPDU 的端口);

选举方法
1)到 Root Bridge 的开销:通常根桥的端口都为指定端口,因为开销为零;
2)如果(1)相同,则 端口所在交换机 的 BID 参数,小的成为指定端口;
3)如果(2)相同,则查看 端口所在交换机 的 PID 参数;例如,同个交换机的两个端口相接。

设备状态:端口为 Forwarding 状态;并由 DP 向下泛洪 BPDU 数据帧(只有 DP 泛洪 BPDU 报文);

第四步、阻塞预备端口

设备状态:端口为 Blocking(Discarding)状态; AP 端口不会向下泛洪 BPDU 帧,但是能够处理 BPUD 帧;

在华为产品的实现中,被阻塞的非指定端口表现为 Alternate Port。

网络拓扑稳定……

在此之后(即 STP 树形成后的稳定期),只有根桥会周期性地(缺省为 2s)主动产生并发送 CFG BPDU 。

相应的,非根桥交换机会从自己的根端口周期性地接收到 CFG BPDU,并立即触发产生自己的 CFG BPDU ,然后从自己的指定端口发出。

这一过程看起来就像是,根桥发出的 CFG BPDU 逐跳地“经过”了其他的交换机。