什么是 STP?
STP 代表生成树协议。它是一种链路管理协议,旨在提供冗余连接,以暂停 STP 网络中的交换环路。它是一个在桥接和交换机上运行的第 2 层协议,必须在交换机接口上允许。
在 STP 环境中,交换机使用桥协议数据单元 (BPDU) 在彼此之间交换数据,然后将此 BPDU 消息接受到所有端口上。由于桥接器已开启,因此它必然认为自己是 STP 树中的根桥接器。
STP 应用选择一个根桥接器,并评估从下级桥接器到根桥接器的所有路径。如果冗余环境中的根桥接器发生硬件故障,则会选择一个新的根桥接器,并且可以重新计算端口路径。
根桥接器的选择过程在每次网络发生更改时都会发生,例如新交换机插入网络拓扑中,或当前交换机被删除,或者现有的根桥接器发生故障。
如果网络中的多个交换机在 20 秒内没有从根桥接器收到 BPDU,则它们认为根桥接器已发生故障。如果现有的根桥接器发生故障,则剩余的交换机必然会开始选举过程,以再次选择一个新的根桥接器。
这取决于连接的媒体链路。STP 为网络的每个端口创建一个值。此值称为端口成本值。STP 使用此值在多个链接在两个交换机之间可用时选择最佳路径。它可以选择端口成本值最小的端口。
路径成本是从根桥接器到网络中多个交换机的端口成本的累积值。它始终从根桥接器计算。根桥接器上的默认路径值为 0。BPDU 包含路径成本数据。
当根桥接器从其链路发送 BPDU 时,它会将路径值设置为 0。接收这些 BPDU 的交换机通过插入 BPDU 出现的端口的端口成本值来增加路径值。
指定端口是在给定网络上获取的端口成本值最小的端口,区别于该段上的多个端口。STP 将指定端口指示为提升端口。
非指定端口是端口成本大于指定端口的端口。STP 将非指定端口指示为阻塞端口,用于消除环路。
广告