二层交换网络中,为了保证网络的可靠性,会引入冗余链路来避免单点故障。冗余结构带来的环路问题,会导致广播风暴、MAC 地址表震荡和数据帧重复转发,严重影响网络运行。
生成树协议STP就是为了解决这一问题而设计的。它运行在交换机数据链路层,通过阻塞部分冗余端口,使整个交换网络形成一个无环路、逻辑上的树形结构,从而实现链路冗余与环路避免的平衡。
一、STP的核心概念
BPDU ( Bridge Protocol Data Unit ): 网桥协议数据单元,用于 STP 协议信息交换。
Bridge ID : 桥 ID,由优先级(Bridge Priority)和 MAC 地址组成,是交换机在 STP 选举中的唯一标识。
Root Bridge : 根桥,STP 计算的逻辑中心。
Cost : 开销。
Root Path Cost : 根路径开销。
Port ID (接口 ID ): 端口优先级 + 接口号。
二、STP 计算与选举过程
1. 选举根桥
比较 Bridge ID(先比优先级,再比 MAC 地址,越小越优先);
默认优先级为32768,优先级相同时,MAC 地址更小的交换机当选;
整个连续的 STP 交换网络中只会有一个根桥,且根桥角色是可抢占的。
2. 选择根端口
每台非根桥交换机都会选择一个到根桥路径开销最小的端口作为根端口。
比较规则:
根路径开销最小;
若相同,则比较对端的 Bridge ID,越小优先级越高;
若仍相同,比较本端端口 ID,越小优先级越高。
3. 每个网段选举指定端口
在每条物理链路上,距离根桥路径开销最小的端口被选为指定端口。
在根桥上,所有端口都是指定端口。
4. 阻塞非根端口和非指定端口
确定了根端口(RP)和指定端口(DP)后,其他端口进入阻塞状态(Discarding),防止环路。
非指定端口可以接收并处理 BPDU,但不转发用户数据帧。
三、STP 的端口状态
STP 端口可能处于的以下几种状态:
Discarding (丢弃): 不转发用户数据帧,可接收 BPDU。
Learning (学习): 学习 MAC 地址,不转发用户数据。
Forwarding (转发): 转发用户数据帧并接收/发送 BPDU。
-Edge Port (边缘端口): 直接连接终端设备的端口,不参与 STP 计算,可快速进入转发状态。
Alternate Port (替代端口) /Backup Port (备份端口): 作为冗余链路备用,不转发数据。
四、常用的 STP 配置命令
Huawei\] stp enable #启用 STP
\[Huawei\] stp root secondary #配置交换机为备份根桥
\[Huawei\] stp priority \