STP(Spanning Tree Protocol)是生成树协议的英文缩写,可应用于计算机网络中树形拓扑结构建立,主要作用是防止网桥网络中的冗余链路形成环路工作。
运行方式就是使用生成树算法(SAT)创建一个拓扑数据库,然后找出并关闭冗余链路
生成树协议运行生成树算法(STP)。生成树算法很复杂,但是其过程可以归纳为以下三个部分。
- 选择根网桥
- 选择根端口
- 选择指定端口
运行方式
根网桥依据
交换机的网桥优先级,网桥优先级是用来衡量网桥在生成树算法中优先级的十进制数,取值范围是0~65535.默认值是32768,网桥ID=网桥优先级+网桥MAC地址组成的,共有8个字节。由于交换机的网桥优先级都是默认,所以在根网桥的选举中比较的一般是网卡MAC地址的大小,选取MAC地址小的为根网桥。根端口依据
- 到根网桥路径开销最低。
根路径开销是两个网桥间的路径上所有链路的开销之和,也就是某个桥网到达根网桥的中间所有链路的路径开销之和。
- 最低的发送方网桥ID。
- 最低的端口ID。
由于端口的ID是由优先级和端口号组成,保证了根端口的唯一性。
指定端口依据
- 根路径开销较低
- 所在的交换机网桥ID值最小
- 端口号最小
端口状态
Blocking(阻塞状态)
此时,二层端口为非指定端口,也不会参与数据帧的转发。该端口通过接收BPDU来判断根交换机的位置和根ID,以及在STP拓扑收敛结束之后,各交换机端口应该处于什么状态,在默认情况下,端口会在这种状态下停留20秒钟时间。
Listening(侦听状态)
生成树此时已经根据交换机所接收到的BPDU而判断出了这个端口应该参与数据帧的转发。于是交换机端口就将不再满足于接收BPDU,而同时也开始发送自己的BPDU,并以此通告邻接的交换机该端口会在活动拓扑中参与转发数据帧的工作。在默认情况下,该端口会在这种状态下停留15秒钟的时间。
Learning(学习状态)
这个二层端口准备参与数据帧的转发,并开始填写MAC表。在默认情况下,端口会在这种状态下停留15秒钟时间。
Forwarding(转发状态)
这个二层端口已经成为了活动拓扑的一个组成部分,它会转发数据帧,并同时收发BPDU。
Disabled(禁用状态)
潜在故障
- 生成树算法不稳定
- 端口工作方式导致端口工作模式不匹配
- 单向链路故障
- 数据帧被损坏
- 网络设备资源不足引起故障
- 配置 PortFast 快速端口引起的故障