STP – 生成树协议详解

什么是STP?

STP 是一种链路管理协议,旨在支持冗余链路,以阻止STP网络中的交换环路。它是一种二层协议,运行在交换机和路由器上,应在交换机接口上启用。STP协议由IEEE标准化为IEEE 802.1D。STP的全称是生成树协议(Spanning Tree Protocol)。

我们为什么需要STP?

以下是一些生成树协议很重要的场景

  • 通过引入冗余,网络的可靠性(容错能力)呈指数级提高。
  • 当流量需要发送到尚未识别的目的地时,交换机会将流量泛洪到所有端口。
  • 广播和组播流量会转发到每个端口,除了流量到达的那个端口。
  • 生成树协议用于从存在环路的物理拓扑中创建无环路的逻辑拓扑。

STP如何工作?示例

生成树使用一种算法来搜索LAN中的冗余链路并选择最佳路径。它主要用于将所有链路置于转发或阻塞状态。

在此过程之后,所有没有冗余链路的链路都可能处于转发状态。未被选中的冗余链路将处于阻塞状态。生成树从不使用到同一目的地的多条链路。生成树不具备负载分担功能。

STP的类型

这里有不同类型的生成树协议

标准 描述 缩写
IEEE 802.1D。 环路预防
在任何更改的情况下自动重新配置树
收敛缓慢(高达 50 bps)
STP
IEEE 802.1w 快速生成树协议

  • 改进的STP,收敛更快
  • 向后兼容STP
RSTP
IEEE 802.1Q 虚拟局域网
为所有VLAN定义1个通用的生成树
CST
Cisco
专有
每VLAN生成树

  • 每个VLAN一个STP实例
  • PVST+是PVST的改进版本
PVRST+ 或 R-PVST+
Cisco
专有
每VLAN快速生成树 PVRST+ 或 R-PVST+
IEEE 802.1s 多生成树协议
多个VLAN实例映射到一个STP。
MSTP 或 Ml STP

生成树的标准

生成树环路的三个标准有助于决定接口是否处于转发状态

  • 根桥上的所有接口应置于转发状态。
  • 对于非根桥的其他桥接设备,离根桥最近的端口应置于转发状态。
  • 到根桥的管理距离最低的桥接设备称为指定桥。

STP协议的阶段

生成树端口的四个阶段是

Stages of STP
STP阶段

阻塞状态

阻塞状态是一个非指定端口,它从不参与帧转发。其时间限制为20秒或无限。启用STP时,接口始终进入阻塞状态。

侦听状态

侦听状态是第一个状态。它是接口在阻塞状态之后进入的状态。该接口有助于确定该接口是否应参与帧转发。

侦听状态执行以下功能

  • 丢弃接收到的端口帧
  • 不学习地址
  • 接收BPDU

学习状态

学习状态有助于为参与帧转发做好准备。接口允许我们从侦听状态进入学习状态。

学习状态执行以下功能

  • 丢弃接收到的端口帧
  • 接收BPDU
  • 学习地址

转发状态

处于转发状态的接口将转发帧。此接口从学习状态进入转发状态,并执行以下功能

  • 接收和转发接收到的端口帧
  • 学习地址
  • 接收BPDU

禁用状态

此状态不参与生成树环路,因为该端口已被管理员禁用,其时限也是无限的。

禁用接口执行以下功能

  • 丢弃接收到的端口帧
  • 不学习地址
  • 不接收BPDU

生成树协议中使用的重要术语

这里是一些重要的术语

桥接

桥是一个重要的VTP组件,它连接两个或多个LAN段。

根桥(RB)

它是为所有网段提供互连点的桥。LAN中的所有桥都有通往根的路径。STP允许您自动选择根桥。但是,如果STP网络管理员愿意,他或她可以根据网络更改RB。

非根桥(NRB)

非根桥是指不是根桥的任何桥。

根端口(RP)

根端口是通往根桥的端口。

指定端口(DP)

每个LAN网段都有1个指定端口。每座桥也从DP接收帧,并通过其RP转发到根桥。

端口ID

端口ID有助于您决定根端口。它由一个可配置的1字节优先级值和一个每个桥的唯一端口号组成。

路径成本(PC)

路径成本,也称为PC,有助于就转发速度方面决定最佳拓扑。STP使用路径成本的概念。

指定端口

指定端口是禁用端口,并由网络管理员阻止。该端口无法将数据包发送到另一台交换机。它也不会在MAC表中填充MAC地址。

非指定端口

非指定端口是已阻塞的交换机端口。它也称为阻塞端口,或有时称为备用端口。它无法将数据包转发到下一台交换机。它也不会在MAC表中填充MAC地址。

RSTP

快速生成树协议(RSTP)是一种网络协议,可确保以太网网络的无环路拓扑。

桥接协议数据单元(BPDU)

生成树协议要求STP网络设备交换消息,以帮助形成无环路的逻辑拓扑。这些消息称为BPDU(桥接协议数据单元)。每个网络设备都会发送BPDU,这有助于交换拓扑信息。

BPDU帮助交换机执行以下操作

  • 选择一台交换机作为生成树的根
  • BPDU还有助于计算其到根交换机的最短路径,从而为每个LAN网段指定离根最近的交换机之一。
  • 选择其一个端口作为根端口(如果不是交换机)
  • 拾取属于称为指定端口的生成树算法的端口。
  • 阻塞非指定端口。

配置BPDU

它是网络拓扑中根设备的唯一桥ID。它充当发送桥的桥ID,以及发送端口的标识符。

拓扑变更通知(TCN)BPDU

选择一个网络设备作为根桥。应根据路径成本为每个网络设备计算到根桥的最短距离。

为每个LAN网段选择一个指定桥。这通常也是离根桥最近的网络设备,因此应将其转发到根。这是提供从桥到任何根桥的最佳路径的端口。

STP和RSTP之间的区别

STP RSTP
在STP中,桥仅在从RB(根桥)接收到其RP(根端口)的BPDU后才发送BPDU。 RSTP允许交换机在每个Hello时间发送BPDU。
STP包括两种端口类型:根端口和指定端口 RSTP方法包括其他端口:备用端口和备份端口。

摘要

STP协议被定义为一种链路管理协议,旨在支持冗余链路,以阻止STP网络中的交换环路。

状态 描述 处理BPDU 学习MAC
初始化 端口初始化。 NO NO
禁用 不参与STP标准操作的管理状态。 NO
阻塞 端口不转发以太网帧。 是(仅接收和处理BPDU)
侦听 在此STP状态下进行无环路拓扑计算。端口被分配其角色。 是(发送和接收BPDU) NO
学习 这是一个额外的状态,用于延迟以太网帧的转发,这有助于避免网络泛洪。 是(填充MAC地址表)
转发 转发以太网帧的正常操作。