什么是 RSTP?

RSTP (IEEE 802.1w) 是 802.1D 标准的一种发展。802.1w STP 的术语大部分都与 IEEE 802.1D STP 术语一致。绝大多数参数都没有变动,所以熟悉 STP 的用户能够对此新协议快速上手。

上图中显示了一个采用 RSTP 的网络。交换机 S1 是根桥,它有两个处于转发状态的指定端口。RSTP 支持一种新的端口类型。交换机 S2 上的端口 F0/3 是处于丢弃状态的替换端口。注意此处没有阻塞端口。RSTP 没有阻塞端口状态。RSTP 定义的端口状态包括三种:丢弃、学习和转发。

RSTP 的特征

RSTP 能够在第 2 层网络拓扑变更时加速重新计算生成树的过程。若网络配置恰当,RSTP 能够达到相当快的收敛速度,有时甚至只需几百毫秒。RSTP 重新定义了端口的类型及端口状态。如果端口被配置为替换端口或备份端口,则该端口可以立即转换到转发状态,而无需等待网络收敛。以下简要介绍了 RSTP 的特征:

·要防止交换网络环境中形成第 2 层环路,最好选择 RSTP 协议。其许多变化都是由 Cisco 专有的 802.1D 增强技术所带来的。这些增强功能(例如承载和发送端口角色信息的 BPDU 仅发送给邻居交换机)不需要额外配置,而且通常执行效果比早期的 Cisco 专有版本更佳。此类功能现在是透明的,已集成到协议的运行当中。

·Cisco 专有的 802.1D 增强功能(例如 UplinkFast 和 BackboneFast)与 RSTP 不兼容。

·RSTP (802.1w) 用于取代 STP (802.1D),但仍保留了向下兼容的能力。大量 STP 术语仍继续使用,大多数参数都未变动。此外,802.1w 能够返回到 802.1D 以基于端口与传统交换机互操作。例如,RSTP 生成树算法选举根桥的方式与 802.1D 完全相同。

·RSTP 使用与 IEEE 802.1D 相同的 BPDU 格式,不过其版本字段被设置为 2 以代表是 RSTP,并且标志字段用完所有的 8 位。

·RSTP 能够主动确认端口是否能安全转换到转发状态,而不需要依靠任何计时器来作出判断。

RSTP BPDU

RSTP (802.1w) 使用第 2 类、第 2 版 BPDU,所以 RSTP 网桥能够与 802.1D 在任何共享链路上通信,而且能够与运行 802.1D 的任何交换机通信。RSTP 发送 BPDU 以及填充标志字节的方式与 802.1D 略有差异:

如果连续三段 hello 时间(默认为 6 秒)内没有收到 hello 消息,或者当最大老化时间计时器过期时,协议信息可立即过期。
由于 BPDU 被用作保持活动的机制,连续三次未收到 BPDU 就表示网桥与其相邻的根桥或指定网桥失去连接。信息快速老化意味着故障能够被快速检测到。


注:与 STP 类似,RSTP 网桥会在每个 hello 时间段(默认为 2 秒)发送包含其当前信息的 BPDU ,即使 RSTP 网桥没有从根桥收到任何 BPDU。

附件中显示了 RSTP 所用的第 2 版 BPDU 中所含的标志字节:

与 802.1D 一样,第 0 位和第 7 位用于拓扑更改通知和确认。
第 1 位和第 6 位用于“建议同意”过程(用于快速收敛)。
2-5 位通过代码指示产生 BPDU 的端口的角色和状态。
第 4 位和第 5 位使用 2 位代码指示端口角色。


边缘端口

RSTP 边缘端口是指永远不会用于连接到其它交换机设备的交换机端口。当启用时,此类端口会立即转换到转发状态。

PortFast 端口会立即转换到 STP 转发状态,跳过耗时的侦听和学习状态。被配置的边缘端口立即变为转发转发状态,无论边缘端口还是启用 PortFast 的端口,两者都不会在转换到禁用或启用状态时引起拓扑更改。

与 PortFast 不同的是,如果 RSTP 边缘端口接收到 BPDU,则该端口立刻丧失边缘端口的属性,而成为普通的生成树端口。

Cisco 版本的 RSTP 保留了 PortFast 关键字,其使用 spanning-tree portfast 命令来执行边缘端口配置。这样可以让整个网络更为顺畅的转换到 RSTP 上。如果在处于同步状态时将边缘端口配置为连接到其它交换机,则可能对 RSTP 造成负面影响,因为此时可能生成临时的环路,因环路流量与 BPDU 竞争而减缓 RSTP 收敛。

RSTP 端口状态

RSTP 能够在发生故障或重新建立交换机、交换机端口或链路期间实现快速收敛。RSTP 拓扑更改会导致相应的交换机端口通过显式握手或“建议与同意”阶段和同步操作转换到转发状态。

在 RSTP 下,端口的角色与端口的状态独立开来。例如,指定端口可以暂时处于丢弃状态下,尽管其最终状态是转发。右图显示了三种可能的 RSTP 端口状态:丢弃、学习和转发。

RSTP 端口角色

端口角色定义了交换机端口的最终作用以及端口处理数据帧的方式。端口角色和端口状态能够不依靠对方独立转换。由于包含额外的端口角色,因此 RSTP 能够在发生故障或拓扑更改之前定义待命交换机端口。当网段上的指定端口发生故障时,替换端口便进入转发状态。

RSTP 建议或同意过程

在 IEEE 802.1D STP 中,当一个端口被生成树选举为指定端口时,它必须经过两次转发延迟才能转换到转发状态。RSTP 显著加速了拓扑更改后的重新计算过程,因为它能够逐条链路收敛,而无需依靠导致端口状态转换的计时器。只有边缘端口和点对点链路才能快速转换到转发状态。在 RSTP 中,此情况相当于处于丢弃状态的指定端口。