STP – 生成树协议说明

什么是STP?
生成树协议(STP)是一种链路管理协议,旨在支持冗余链路,同时防止网络中出现交换环路。 图层2 该协议运行于网桥和交换机上,必须在交换机接口上启用。IEEE 将其标准化为 IEEE 802.1D。
为什么需要STP?
冗余链路可以提高容错能力,但如果没有环路预防机制,它们也可能造成危险的交换环路。以下情况需要用到生成树协议:
- 引入冗余后,网络的可靠性(容错性)显著提高。
- 当流量必须到达尚未确定的目的地时,交换机会将所有端口的流量都释放出去。
- 广播和组播流量会从除接收端口之外的所有端口转发出去。
- STP 从包含环路的物理拓扑结构创建无环路的逻辑拓扑结构。
STP 如何工作?示例
生成树使用一种算法来搜索冗余链路。 局域网 并选择最佳路径。它会将每个链路置于转发或阻塞状态。
经过此过程后,没有冗余备选路径的链路将保持转发状态。未被选为最佳路径的冗余链路将被设置为阻塞状态。生成树协议永远不会使用多条链路到达同一目的地,因此它不提供负载均衡。
STP 的类型
以下是不同类型的生成树协议:
| 标准版 | 描述 | 缩写 |
|---|---|---|
| IEEE 802.1D | 防止循环;每次更改后自动重新配置树;缓慢收敛(最多 50 秒) | STP |
| IEEE 802.1w — 快速生成树协议 | 改进的STP,收敛速度更快;向后兼容STP | RSTP |
| IEEE 802.1Q — 虚拟局域网 | 为所有VLAN定义一个通用的生成树 | CST |
| Cisco 专有 — 每个 VLAN 的生成树 | 每个 VLAN 一个 STP 实例;PVST+ 是 PVST 的改进版本。 | PVST+ |
| Cisco 专有 — 基于 VLAN 的快速生成树 | 快速的、基于VLAN的收敛 | PVRST+ / R-PVST+ |
| IEEE 802.1s——多生成树协议 | 多个 VLAN 映射到单个 STP 实例 | MSTP |
生成树的标准
决定哪些接口处于转发状态的标准有三个:
- 根桥上的所有接口都处于转发状态。
- 对于非根桥的桥接器,将距离根桥接器最近的端口(路径成本最低)置于转发状态。
- 在一段上,到根桥路径成本最低的桥被称为指定桥。
STP协议的各个阶段
如下图所示,生成树端口在转发流量之前会经历几个状态转换:
阻塞状态
阻塞端口是指未指定且从不参与帧转发的端口。其计时器设置为 20 秒(最大老化值)。启用 STP 后,接口始终进入阻塞状态。
聆听状态
监听状态是端口阻塞后进入的第一个过渡状态。在此状态下,端口决定是否参与帧转发。监听状态执行以下功能:
- 丢弃端口上收到的帧
- 无法学习 MAC 地址
- 接收 BPDU
学习状态
学习状态使端口做好参与帧转发的准备。端口从监听状态进入学习状态,并执行以下操作:
- 丢弃端口上收到的帧
- 接收 BPDU
- 可以学习 MAC地址
转发状态
处于转发状态的端口会转发帧。它从学习状态进入转发状态,并执行以下操作:
- 接收并转发端口上接收到的帧
- 学习 MAC 地址
- 接收 BPDU
禁用状态
已禁用的端口不参与生成树协议,因为它已被管理员关闭;其禁用时间不受限制。已禁用的接口执行以下操作:
- 丢弃端口上收到的帧
- 无法学习 MAC 地址
- 未收到 BPDU
生成树协议中使用的重要术语
以下是STP中使用的一些重要术语:
桥
网桥是 STP 的重要组成部分,用于连接两个或多个 LAN 网段。
根桥 (RB)
根桥为所有网段提供互连点,局域网中的每个网桥都与它有路径连接。STP 会自动选择根桥,但网络管理员也可以根据需要进行更改。
无根桥 (NRB)
非根桥是指除根桥以外的任何桥。
根端口(RP)
根端口是通向根桥的端口。
指定港口(DP)
每个局域网段都有一个指定的端口。每个网桥在其指定的端口接收帧,并通过其根端口将帧转发到根网桥。
端口 ID
端口 ID 用于确定根端口。它由一个可配置的 1 字节优先级值和一个每个网桥唯一的端口号组成。
路径成本(PC)
路径成本有助于根据转发速度确定最佳拓扑结构;带宽较低的链路成本较高。STP 使用路径成本来选择到达根桥的最短路径。
非指定港口
非指定端口是指被阻塞的交换机端口,也称为阻塞端口或备用端口。它无法将帧转发到下一个交换机,也不会填充 MAC 地址表。
RSTP
快速生成树协议 (RSTP) 是一种网络协议,它确保以太网网络无环拓扑结构,并且比原始的 STP 收敛速度快得多。
桥接协议数据单元 (BPDU)
生成树协议要求网络设备交换消息,以便形成无环逻辑拓扑结构。这些消息称为 BPDU(桥接协议数据单元)。每个网络设备发送 BPDU 来共享拓扑信息。
BPDU 帮助交换机执行以下操作:
- 选择一个交换机作为生成树的根交换机。
- 计算每个交换机到根交换机的最短路径,并为每个 LAN 网段指定一个距离根交换机最近的交换机。
- 在每个交换机上选择一个端口作为其根端口(如果它不是根交换机)。
- 将构成生成树的端口标识为指定端口。
- 屏蔽非指定端口。
配置BPDU
配置BPDU携带根设备的桥ID、桥ID和 transmitting 桥,以及 的标识符 transmitting 端口。
拓扑更改通知 (TCN) BPDU
当交换机检测到网络拓扑发生变化(例如链路启动或关闭)时,会向根桥发送TCN BPDU。根桥随后指示所有交换机缩短其MAC地址表的老化时间,以便快速清除过期的条目。
STP 和 RSTP 之间的区别
下表列出了STP和RSTP的主要区别:
| STP | RSTP |
|---|---|
| 在 STP 中,网桥只有在从根网桥的根端口收到 BPDU 时才会发送 BPDU。 | RSTP 使每个交换机都能在每个 hello 间隔发送 BPDU。 |
| STP定义了两种端口角色:根端口和指定端口。 | RSTP 增加了两个新角色:备用端口和备份端口。 |
STP端口状态参考表
下表总结了每个 STP 端口的状态,包括是否处理 BPDU 以及是否学习 MAC 地址:
| 州 | 描述 | 处理 BPDU | 了解 MAC |
|---|---|---|---|
| 在里面 | 端口的初始化。 | 没有 | 没有 |
| 残疾人 | 不参与标准STP运营的行政国家。 | 没有 | 没有 |
| 闭塞 | 该端口不转发以太网帧。 | 是的(仅接收和处理BPDU) | 没有 |
| 听力 | 在此状态下计算无环拓扑,并为端口分配其角色。 | 是的(发送和接收BPDU) | 没有 |
| 超越课堂 | 另一种状态,用于延迟帧转发以避免网络拥塞。 | 是 | 是的(填充 MAC 地址表) |
| 转发 | 正常运行,转发以太网帧。 | 是 | 是 |

