目录
既使链路冗余,又防止环路。
经过计算后阻塞导致环路的接口,当正常线路故障时,重新启用阻塞接口。
数据帧不断增长
交换机收到目的 MAC 不在自己表中的数据帧时泛洪该数据帧,S1 发给 S2,S2 发给 S3,S3 发给 S1,S1 再发给 S2,如此循环,导致环路。
由于数据帧的泛洪,导致每个端口都会收到源 MAC,这时 MAC 表中地址对应的接口就不稳定。
桥 ID:交换机的 ID
用于选举「根桥」(只有一个),由「桥优先级」+ MAC 地址组成
越小越优,先比「桥优先级」,再比 MAC 地址。
桥优先级取值范围:0 ~ 61440,必须是 4096 的倍数
RPC:根路径开销
接口到根桥的距离
一条路径上所有入接口的 Cost 之和
Cost
用于计算 RPC
不同接口对应不同 Cost
Port ID
= 接口优先级 + 端口号
每个生成树交换机接口的 ID,越小越优
接口优先级取值范围:0 ~ 240,必须是 16 的倍数
BPDU
计算出的生成树信息
根端口
用于接收根桥发送的 BPDU
每台交换机上朝着根桥的端口(只有一个)
根桥上没有根端口。
指定端口
用于转发根桥发送的 BPDU
每条链路上有一个
阻塞端口
选择完根端口和指定端口后剩下的端口
只能接收 BPDU 不能发送
配置 BPDU
进行拓扑计算的内容
TCN BPDU
拓扑发生变化时才触发
Root ID:根桥 ID(不变)
PRD:到达根桥的 Cost(累加)
Bridge ID:桥 ID(转发此数据的交换机)
Port ID:发送数据的接口 ID
从上往下比较,越小越优。
若多条报文内容一样,则比较自己的 Port ID。
Message Age:消息寿命,从根桥发送数据到现在的时间(秒),每经过一个交换机 +1
Max Age:最大寿命,端口 BPDU 报文老化时间,20 秒。
Hello Time:根桥连续发送 BPDU 的间隔,默认 2 秒。
Forward Delay:处于「侦听」或「学习」停留的时间,默认 15 秒。
若「Message Age」大于「Max Age」则数据无法转发。
1、选出根桥
2、每个非根桥选出一个根端口
选举规则:收到 BPDU 最优的端口
3、每条链路选举出一个指定端口
选举规则:发送 BPDU 最优的端口
根端口对面一定为指定端口。
4、其余端口为阻塞端口
禁用
阻塞
侦听
学习
转发
从阻塞到转发需 50 秒
阻塞 → 侦听 20 秒
侦听 → 学习 20 秒
学习 → 转发 15 秒
只有转发状态可以收发数据包
根桥故障
当根桥故障时,阻塞端口 20秒(Max Age)没收到根桥的 BPDU,导致之前收到的 BPDU 老化,得知根桥故障,转为「侦听」状态,继而向「转发」状态变化(30 秒),共需 50 秒。
直连链路故障
与阻塞端口直连的链路发送故障,阻塞端口直接转为「侦听」状态,向「转发」状态变化,共 30 秒。
非直连链路故障
非直连链路故障时,发送故障的交换机由于收不到根桥发来的数据,就会认为自己是根桥,从而将自己的 BPDU 发送出去。当阻塞端口收到这个次优的 BPDU,就会向「转发」状态变化,需 50 秒。
拓扑变更导致的 MAC 地址表错误
拓扑变更时由于接口的变化会导致 MAC 表中的 MAC 地址与对应接口不一致,而 MAC 地址表的更新时间为 300 秒,为了快速更新,发生变更的交换机会发送 TCN BPDU,收到 TCN 的交换机帮忙转发到根桥,并回复 TCA。根桥收到 TCN 后,回复 TCA 并通知其他交换机将自己的 MAC 地址表的老化时间快进至 15 秒。
- stp enable !开启生成树(默认开启)
- stp disable !关闭生成树
- display stp brief !查看交换机接口类型、状态
- stp mode 「stp」或「rstp」或「mstp」(默认)
- !设置生成树模式
stp root primary !设置该交换机为根桥(将优先级设为 0)
stp root secondary !设置该交换机为备份根桥(将优先级设为 4096)
stp priority 「优先级」!设置交换机的优先级
stp cost 「开销值」!设置当前接口的开销值