
STP
一、STP解决的问题
- 二层环路问题
- 广播风暴:泛洪的数据帧在设备间无限循环,导致设备性能下降甚至死机。
- MAC地址表震荡:MAC地址频繁更新,数据无法正常转发。
- STP的作用
- 通过阻塞部分端口,构建一棵无环的逻辑树,消除环路。
- 阻塞的端口仍能接收BPDU,并在网络拓扑变化时自动切换为转发状态。
二、基本概念
BPDU(桥协议数据单元)
STP用于选举和传递拓扑信息的协议报文。
关键字段:
字段 说明 根桥ID(Root ID) 全网唯一的根桥标识,始终为根桥的BID。 根路径开销(RPC) 本设备到根桥的累计路径开销,越小越优。 发送设备BID 发送BPDU的设备的桥ID。 发送端口PID 发送BPDU的端口ID(由4位优先级+12位端口号组成,默认优先级128)。
端口角色
- 根端口(RP):非根设备上离根桥最近的端口,每台非根设备有且只有一个。
- 指定端口(DP):每条链路上最优的转发端口,根桥的所有端口都是DP。
- 阻塞端口:既非RP也非DP的端口,不转发数据但监听BPDU。
三、BPDU(Bridge Protocol Data Unit)报文字段详解

| 字段名 | 长度 | 说明 |
|---|---|---|
| Protocol ID | 2字节 | 协议标识符,固定为0x0000(表示STP协议)。 |
| Version ID | 1字节 | 协议版本: • 0x00:STP • 0x02:RSTP • 0x03:MSTP |
| BPDU Type | 1字节 | BPDU类型: • 0x00:配置BPDU(用于拓扑计算) • 0x80:TCN BPDU(拓扑变更通知) |
| Flags | 1字节 | 标志位,包含: • TC(Topology Change,拓扑变更) • TCA(Topology Change Acknowledgment,拓扑变更确认) |
| Root ID | 8字节 | 根桥ID,由两部分组成: • 前2字节:根桥优先级(默认32768) • 后6字节:根桥MAC地址 |
| Root Path Cost (RPC) | 4字节 | 根路径开销,表示本端口到根桥的累计路径开销(越小越优)。 |
| Bridge ID | 8字节 | 发送设备的BID,结构同Root ID: • 2字节优先级 + 6字节MAC地址 |
| Port ID | 2字节 | 发送端口的PID,由两部分组成: • 高4位:端口优先级(默认128) • 低12位:端口号 |
| Message Age | 2字节 | BPDU已存活时间(秒),每经过一台设备+1,超过Max Age则丢弃。 |
| Max Age | 2字节 | BPDU最大存活时间(默认20秒),超时后重新计算拓扑。 |
| Hello Time | 2字节 | BPDU发送间隔(默认2秒)。 |
| Forward Delay | 2字节 | 端口状态切换延迟时间(默认15秒),防止临时环路。 |
四、STP选举流程
选举根桥
规则:比较BID,值小者优。
- BID = 16位优先级(默认32768) + 48位MAC地址。
- 优先级需为4096的倍数(如0、4096、8192等)。
配置命令:
1
2
3[Huawei] stp root primary # 设置本设备为根桥(优先级自动置0)
或
[Huawei] stp priority 4096 # 手动指定优先级建议:现网中手动指定根桥,避免因设备接入引发重新收敛。
选举根端口(RP)
- 比较顺序:
- 根路径开销(RPC):累计到根桥的路径开销,越小越优。
- 上行设备BID:若RPC相同,比较上行设备的BID(越小越优)。
- 上行设备PID:若BID相同,比较上行端口的PID(越小越优)。
- 本设备PID:极端情况下比较自身端口PID。
- 比较顺序:
选举指定端口(DP)
- 规则(每条链路选一个DP):
- 比较本端设备的根路径开销(RPC)。
- 比较本端设备的BID(越小越优)。
- 比较本端端口的PID(越小越优)。
- 规则(每条链路选一个DP):
五、STP端口状态
| 状态 | 行为 |
|---|---|
| 阻塞(Blocking) | 不转发数据,仅接收BPDU。 |
| 侦听(Listening) | 参与STP计算,但不转发数据。 |
| 学习(Learning) | 开始学习MAC地址,但仍不转发数据。 |
| 转发(Forwarding) | 正常转发数据,参与通信。 |
六、配置示例
查看STP信息
1
2[Huawei] display stp brief # 查看端口角色和状态
[Huawei] display stp # 查看全局STP信息修改优先级
1
[Huawei] stp priority 8192 # 设置优先级为8192
边缘端口配置(连接PC的端口跳过STP计算)
1
2[Huawei] interface GigabitEthernet 0/0/1
[Huawei-GigabitEthernet0/0/1] stp edged-port enable
七、关键总结
- 根桥选举:全网BID最小的设备。
- 根端口选举:非根设备上离根桥最近的端口。
- 指定端口选举:每条链路上最优的转发端口。
- 阻塞端口:消除环路的“备用”端口。
- 现网建议:
- 手动指定根桥和备份根桥。
- 连接终端的端口配置为边缘端口(
stp edged-port enable)。
本文是原创文章,采用CC BY-NC-SA 4.0协议,完整转载请注明来自憨憨的小站
评论