为了网络稳定通常会有冗余链蕗。但冗余链路会导致环路、广播风暴和MAC表震荡STP则可以在提高网络稳定性的同时解决这些问题。
- 每个广播域选择一个根桥(根交换机);
- 每個非根桥上选择一个根端口(RProot port);发送最优的BPDU
- 既不是根端口也不是指定端口的端口成为预备端口(AP,alternated port)处于阻塞状态,不转发任何报文
BPDU——橋接协议数据单元
为了计算生成树,交换机之间需要交换信息和参数这些信息和参数被封装在BPDU中。BPDU有两种类型:配置BPDU和TCN BPDU
- 配置BPDU:包含了橋ID、路径开销、端口ID等参数。STP协议中交换机通过发送配置BPDU来选举根桥,以及确定每各交换机端口的角色和状态在初始化过程中,每个橋都发送配置BPDU;当网络拓扑稳定后只有根桥主动发送配置BPDU其他桥只有收到上游的配置BPDU后,才发送自己的配置BPDU
- TCN BPDU(拓扑变更通告):下游交换機在网络拓扑发送变化时向上游发送的拓扑变化通知。
-
每一个STP交换机启动后都会认为自己时根桥STP正真的根桥通过比较根ID选举产生。每一個STP交换机都有一个桥ID
先比较桥优先级,优先级越小越优先默认优先级是32768。如果优先级相同再比较MAC地址,MAC地址越小越优先
注意:根橋一定要放在核心设备或性能更好的设备上
A. 最低的根桥ID;
B. 到达根桥的最低路径开销;路径开销是端口出方向到根桥的路径开销总和。非根橋交换机只能修改开销
C. 如果路径开销相同,则选择最低的发送者网桥ID;
D. 若网桥ID相同则选择最低的发送者端口ID。端口ID由端口优先级加端ロ序号组成优先级越低越优先,优先级相同接着比较端口序号,序号越低越优先端口优先级默认128。根交换机只能修改端口优先级端口优先级必须是16的倍数。
-
指定端口选举也是先比较根路径开销值累计根路径开销最小的端口就是指定端口。如果根路径开销相同则仳较端口所在的交换机的桥ID,桥ID最小则是指定端口如果桥ID相同则比较端口ID,端口ID最小的就是指定端口
- Fowarding——端口既转发用户流量也处理BPDU。只有根端口或指定端口才处于Fowarding状态
- Learning——端口会根据收到的用户流量建立MAC表,但不转发用户流量过渡状态,增加Learning状态防止临时环路Learning進入到Fowarding默认要15秒。
- Listening——确定端口角色选举出根桥、根端口、指定端口。过渡状态Listening进入 到Learning默认要15秒。
- Blocking——端口只处理BPDU不转发用户流量。阻塞端口的最终状态
- Disabled——端口既不处理BPDU,也不转发用户流量端口处于Down状态。