Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

生成树协议概述

生成树协议的工作原理

如果引入环路,以太网网络容易受到广播风暴的影响。但是,以太网网络需要包含环路,因为它们在链路故障时提供冗余路径。生成树协议解决了这两个问题,因为它们在提供链路冗余的同时防止了不必要的环路。

瞻博网络设备通过生成树协议 (STP)、快速生成树协议 (RSTP)、多生成树协议 (MSTP) 和 VLAN 生成树协议 (VSTP) 提供第 2 层环路防御。RSTP 是用于防止以太网网络上出现环路的默认生成树协议。

本主题将介绍如下内容:

使用生成树协议的好处

生成树协议具有以下优点:

  • 提供链路冗余,同时防止不必要的环路

  • 防止广播风暴

  • 使用边缘端口连接到不支持 STP 的设备,例如未连接到其他交换机的 PC、服务器、路由器或集线器

生成树协议有助于防止广播风暴

生成树协议通过为整个桥接网络创建一个树形拓扑(生成树),在树根和树叶之间只有一条可用路径,从而智能地避免网络中的环路。所有其他路径都会强制进入备用状态。树 是网络中的一个开关,由 STA(生成树算法)选择,用于计算整个网络的网桥和根网桥之间的最佳路径。帧在网络中沿着分支传输到目的地(如最终用户 PC 等 )。 树枝是 网桥之间的网段或链路。通过 STP 生成树转发帧的交换机称为 指定网桥

注意:

如果将 Junos OS 用于支持增强型第 2 层软件 (ELS) 配置样式的 EX 系列和 QFX 系列交换机,则可以通过设置 force-version 强制运行原始 IEEE 802.1D 生成树协议 (STP) 版本来代替 RSTP 或 VSTP。

了解选择根网桥和指定网桥的网桥优先级

使用网桥优先级来控制哪座网桥被选为根网桥,还可以控制在初始根网桥发生故障时选择哪座网桥作为根网桥。

每个生成树协议实例的根网桥由网桥 ID 确定。网桥 ID 由可配置的网桥优先级和网桥的 MAC 地址组成。网桥 ID 最低的网桥被选为根网桥。如果网桥优先级相等,或者未配置网桥优先级,则 MAC 地址最低的网桥将被选为根网桥。

网桥优先级还可用于确定哪个网桥成为 LAN 网段的指定网桥。如果两座网桥到根网桥的路径开销相同,则网桥 ID 最低的网桥成为指定网桥。

网桥优先级只能以 4096 为增量进行设置。

端口角色确定生成树中的参与

每个端口都有一个角色和一个状态。端口 的角色 决定了它如何参与生成树。RSTP 中使用的五个端口角色是:

  • 根端口 — 最靠近根网桥的端口(与网桥的路径成本最低)。这是从根网桥接收帧并将帧转发到根网桥的唯一端口。

  • 指定端口 — 将流量从根网桥转发到叶的端口。指定的网桥为其服务的每个链路连接都有一个指定的端口。根网桥从其所有端口转发帧,这些端口用作指定端口。

  • 备用端口 — 当根端口发生故障并处于放弃状态时,该端口将提供通往根网桥的备用路径。此端口不是活动生成树的一部分,但如果根端口发生故障,备用端口将立即接管。

  • 备份端口 — 当指定端口发生故障并处于放弃状态时,该端口将提供指向生成树叶的备用路径。只有当两个或多个网桥端口连接到网桥作为指定网桥的同一局域网时,备份端口才能存在。如果指定端口发生故障,指定端口的备份端口会立即接管。

  • 禁用端口 — 端口不是活动生成树的一部分。

端口状态决定端口如何处理帧

每个端口都有一个状态和一个角色。端口 的状态 决定了它处理帧的方式。RSTP 将指定网桥的每个端口置于以下三种状态之一:

  • 丢弃 — 端口丢弃所有 BPDU。处于此状态的端口会丢弃它接收到的所有帧,并且不会学习 MAC 地址。

  • 学习 — 端口通过检查接收到的帧的位置信息来准备转发流量,以构建其 MAC 地址表。

  • 转发 — 端口过滤和转发帧。处于转发状态的端口是活动生成树的一部分。

边缘端口连接到不能属于生成树的设备

生成树还定义了 边缘端口的概念,边缘端口是连接到不支持 STP 的设备(如未连接到其他交换机的 PC、服务器、路由器或集线器)的指定端口。由于边缘端口直接连接到终端站,因此无法创建网络环路,因此可以立即转换为转发状态。您可以手动配置边缘端换机还可以通过注意到终端站的通信缺失来检测边缘端口。

边缘端口本身会将网桥协议数据单元 (BPDU) 发送到生成树。如果您很清楚这些对网络的影响,则可以在边缘端口接口上修改 RSTP。

BPDU 维护生成树

生成树协议使用称为桥接协议数据单元 (BPDU) 的帧来创建和维护生成树。BPDU 帧是从一台交换机发送到另一台交换机的消息,用于传达有关自身的信息,例如其网桥 ID、根路径开销和端口 MAC 地址。交换机之间 BPDU 的初始交换决定了根网桥。同时,BPDU 用于传达分支设备之间每个链路的成本,该成本基于端口速度或用户配置。RSTP 使用此路径开销来确定数据帧从一个叶传输到另一个叶的理想路由,然后阻止所有其他路由。如果边缘端口收到 BPDU,它会自动转换为常规 RSTP 端口。

当网络处于稳定状态时,当生成树算法 (STA) 识别根网桥和指定网桥,且所有端口均处于转发或阻塞状态时,生成树就会收敛。为了维护树,根网桥继续以 hello时间 间隔(默认为2秒)发送BPDU。这些 BPDU 继续与当前树拓扑进行通信。当端口收到hello BPDU时,它会将信息与已为接收端口存储的信息进行比较。当交换机收到 BPDU 时,会发生以下三种操作之一:

  • 如果 BPDU 数据与 MAC 地址表中的现有条目匹配,则端口会将名为 max age 的计时器重置为零,然后将包含当前活动拓扑信息的新 BPDU 转发到生成树中的下一个端口。

  • 如果 BPDU 中的拓扑已更改,则 MAC 地址表中的信息将更新, 最大期限 再次设置为零,并且新的 BPDU 将与当前的活动拓扑信息一起转发到生成树中的下一个端口。

  • 当一个端口三次没有收到 hello BPDU时,如果该端口是根端口,则将发生生成树的完全返工 - 请参阅 当根网桥发生故障时。另一方面,如果网桥是任何非根网桥,RSTP 会检测到连接的设备无法发送 BPDU,并将该端口转换为边缘端口。

当根网桥发生故障时

当指向根端口的链路出现故障时,将向 BPDU 添加一个名为拓扑更改通知 (TCN) 的标志。当此 BPDU 到达 VLAN 中的下一个端口时,将刷新 MAC 地址表,并将 BPDU 发送到下一个网桥。最终,VLAN 中的所有端口都刷新了其 MAC 地址表。然后,RSTP 配置新的根端口。根端口或指定端口发生故障后,备用端口或备份端口在称为提议-协议握手的 BPDU 交换后接管。RSTP 通过 点对点链路传播此握手,点对点链路是将一个端口连接到另一个端口的两个网络节点或交换机之间的专用链路。如果本地端口成为新的根端口或指定端口,它将使用提议-协议握手与最近的相邻交换机上的接收端口协商快速转换,以确保无环路拓扑。

链路故障后,设备必须重新学习 MAC 地址

由于链路故障会导致所有关联端口刷新其 MAC 地址表,因此网络在泛洪以重新学习 MAC 地址时可能会变慢。有一种方法可以加快这个重新学习过程。在 TCN 传播期间,交换机的第 2 层转发表被刷新,从而导致数据包泛洪。地址解析协议 (ARP) 功能可使交换机主动发送针对 ARP 缓存(由于第 3 层 VLAN 接口而存在)中的 IP 地址的 ARP 请求。启用 STP 上的 ARP 后,当回复通过时,交换机会构建第 2 层转发表,从而限制以后的泛洪。在 STP 上启用 ARP 对于防止使用 RVI 的大型第 2 层网络中的过度泛洪最为有用。

注意:

对于支持增强型第 2 层软件 (ELS) 配置样式的 EX 系列交换机,Junos OS 不提供 ARP 功能。

选择生成树协议

选择生成树协议时,请考虑两个基本问题:

  • 我需要哪些 STP 功能?

  • 将使用什么交换机或路由器?

生成树功能的比较

表 1 描述了生成树协议 STP、RSTP、MSTP 和 VSTP 之间的差异。

表 1:选择生成树协议
协议 优势 劣势

RSTP

  • 快速生成树协议是默认的交换机配置,建议用于大多数网络配置,因为它在发生故障后会比 STP 更快地收敛。

  • 与 STP 相比,语音和视频在 RSTP 中的效果更好。

  • RSTP 向后兼容 STP;因此,并非所有交换机都必须运行 RSTP。

  • RSTP 支持的端口比 MSTP 或 VSTP 更多。

  • 在 MX 和 ACX 路由器上,您可以将 RSTP、MSTP 和 VSTP 实例接口配置为边缘端口。

提示:

set rstp interface使用配置语句指示哪些逻辑接口参与 RSTP。看

.

提示:

如果 RSTP 已被强制作为原始 STP 版本运行,则可以通过从 强制 IEEE 802.1D STP 还原为 RSTP 或 VSTP 来还原为 RSTP。

STP

  • 生成树协议适用于 802.1D 1998 网桥。

  • RSTP 向后兼容 STP;因此,您可以在一些交换机上运行 RSTP,而在其他使用 802.1D 1998 网桥的交换机上运行 STP。

  • STP 和 RSTP 仅限于任何物理接口上的单个实例。 set stp interface 使用语句配置参与 RSTP 实例的接口。

  • STP 比 RSTP 慢。

  • 不建议将 STP 用于多个 VLAN 网络,因为它不是 VLAN,因此,LAN 中的所有 VLAN 共享同一生成树。这限制了数据流量的转发路径数。请改用 MSTP。

  • 尽管 STP 提供了基本的环路防御功能,但在发生拓扑变化时,它不提供快速的网络融合。用于确定网络状态转换的 STP 过程比 RSTP 过程慢,因为它是基于计时器的。RSTP 收敛速度更快,因为它使用基于点对点链路的握手机制,而不是 STP 使用的基于计时器的过程。

  • 配置原始 IEEE 802.1D STP 时,不支持边缘端口。如果在[edit protocols stp]层次结构级别指定edge,软件将忽略该选项。

提示:

set stp interface使用语句配置接口以参与 STP 实例。请参阅在 EX 系列交换机上配置 STP (CLI 过程)。

MSTP

  • 多生成树协议适用于大多数 VLAN。

  • MSTP 支持单个物理接口上的多个实例。

  • 在 MX 和 ACX 路由器上,您可以将 RSTP、MSTP 和 VSTP 实例接口配置为边缘端口。

  • 某些协议要求 MSTP 未提供的兼容性。在这种情况下,请使用 VSTP。

  • MSTP 支持有限数量的端口。一个 MSTP 区域最多支持 64 个 MSTI,每个实例支持 1 到 4094 个 VLAN

  • MSTP 使用的 CPU 比 RSTP 多,收敛速度不如 RSTP。

提示:

set mstp interface使用配置语句指示哪些逻辑接口参与 MSTP。请参阅在交换机上配置 MSTP

VSTP

  • VSTP 适用于需要设备兼容性的 VLAN。在可以接收 VSTP 桥接协议数据单元 (BPDU) 的所有 VLAN 上启用 VSTP。

  • VSTP 和 RSTP 是唯一可以在交换机上同时配置的生成树协议。

  • 对于 VSTP,可以在全局级别或 VLAN 级别配置接口。将为所有配置的 VLAN 启用在全局 VSTP 级别配置的接口。如果接口同时配置在全局和 VLAN 级别,则 VLAN 级别的配置将覆盖全局配置。

  • 在 MX 和 ACX 路由器上,您可以将 RSTP、MSTP 和 VSTP 实例接口配置为边缘端口。

  • 使用 VSTP,每个 VLAN 只能有一个 STP 实例,而 MSTP 允许您将多个 VLAN 组合在一个实例中。

  • 与 RSTP 相比,VSTP 支持的端口数量有限。

  • 您最多可将 VSTP 配置为 509 个 VLAN。但是,拥有大量 VSTP 和 RSTP 实例可能会导致拓扑不断变化。作为性能解决方法,将 VSTP 实例数减少到小于 190。

  • 不支持对 RSTP 和 VSTP 使用相同的 VLAN。例如,如果在 VSTP 下配置 VLAN,则不支持将 RSTP 配置为包含相同 VLAN 的接口。

  • 如果同时配置 VSTP 和 RSTP,并且交换机具有超过 253 个 VLAN,则仅为前 253 个 VLAN 配置 VSTP。对于其余 VLAN,仅配置 RSTP。

  • 使用 set protocol vstp vlan vlan-id interface interface-name 命令配置 VSTP 时,名为 default 的 VLAN 将被排除。您必须手动配置名称为 default VLAN 才能运行 VSTP。

提示:

使用 VSTP 时,建议在所有可以接收 VSTP 桥接协议数据单元 (BPDU) 的 VLAN 上启用 VSTP。

提示:

使用 set protocol vstp vlan all 命令配置 VSTP 时,不会设置 VLAN ID 1;将其排除在外,以便配置与 Cisco PVST+ 兼容。如果您希望将 VLAN ID 1 包含在交换机上的 VSTP 配置中,则必须使用 set protocol vstp vlan 1 命令单独进行设置。有关详细信息,请参阅知识库文章 KB15138 和 KB18291,网址为 https://kb.juniper.net/InfoCenter/index

提示:

交换机上 VSTP 支持的最大 VLAN 数取决于您是将 Junos OS 用于支持增强型第 2 层软件 (ELS) 配置样式的 EX 系列和 QFX 系列交换机,还是不支持 ELS 的 Junos OS。

您可以在同一网络中使用具有 VSTP 的瞻博网络交换机以及具有 PVST+ 和 Rapid-PVST+ 的 Cisco 交换机。Cisco 支持专有的每 VLAN 生成树 (PVST) 协议,该协议为每个 VLAN 维护一个单独的生成树实例。每个 VLAN 一个生成树可以实现细粒度负载平衡,但随着 VLAN 数量的增加,需要更多的 BPDU CPU 处理。PVST 在瞻博网络不支持的 Cisco 专有 ISL 中继上运行。瞻博网络交换机只能与 PVST+ 和 Rapid-PVST+ 互操作。

提示:

生成树协议都会生成自己的 BPDU。在 PC 上运行的用户桥接应用程序也可以生成 BPDU。如果交换机上运行的 STP 应用程序选取这些 BPDU,则可能会触发 STP 计算错误,而这些计算错误可能会导致网络中断。请参阅 在生成树接口上配置 BPDU 保护

注意:

如果要为任何生成树协议(STP、MSTP、RSTP 和 VSTP)配置接口,interface all则当使用flexible-vlan-tagging系列选项配置接口时,vlan all、和vlan-group选项将不可用。

交换机和路由器生成树支持和限制

并非所有交换机和路由器都支持完全相同的功能和配置。 表 2 列出了已知差异。

表 2:生成树硬件注意事项

路由器或交换机

考虑

MX 系列路由器

只有 MX 系列路由器才能使用虚拟交换机路由实例类型将 LAN 分段与其生成树实例隔离,并分隔其 VLAN ID 空间。请参阅 在 MX 系列路由器上配置虚拟交换机路由实例

使用全局 traceoptions 语句在 ACX 和 MX 路由器上提供了跟踪和全局跟踪功能 — 请参阅 了解生成树协议跟踪选项

从版本 14.1R1 开始,MX 系列路由器支持以下 STP 日志增强功能:

  • 在内部环形缓冲区中记录有关生成树(如 STP、MSTP、RSTP 或 VSTP)等事件的信息 接口角色或状态更改,而无需配置 STP traceoptions。

  • 捕获有关触发生成树角色或状态更改的因素的信息。

在 MX 和 ACX 路由器上,您可以将 RSTP、MSTP 和 VSTP 实例接口配置为边缘端口,以实现比原始 STP 版本更快的融合速度。边缘端口直接转换为转发状态,因此协议无需等待边缘端口接收到 BPDU。

在提供商网络中运行 RSTP 或 MSTP 的 MX 系列路由器上,您可以在 RSTP 或 MSTP 实例中启用提供商网桥参与 — 请参阅 了解 RSTP 或 MSTP 实例中的提供商网桥参与

提示:

对于 MX 系列和 M Series 路由器上的 802.1ad 提供商桥接网络(堆叠 VLAN),单标记接入端口和双标记中继端口可以共存于单个生成树上下文中。在此模式下,VLAN 生成树协议 (VSTP) 可以在千兆以太网 (ge)、10 千兆以太网 (xe) 和聚合以太网 (ae) 接口上发送和接收未标记的快速生成树协议 (RSTP) 桥接协议数据单元 (BPDU)。未标记的 RSTP BPDU 可与通过双标记中继端口发送的带标记的 VSTP BPDU 进行互操作。双标记对互联网服务提供商很有用,允许他们在内部使用 VLAN,同时混合来自已进行 VLAN 标记的客户端的流量。

ACX 系列路由器

在 MX 和 ACX 路由器上,您可以将 RSTP、MSTP 和 VSTP 实例接口配置为边缘端口,以实现比原始 STP 版本更快的融合速度。边缘端口直接转换为转发状态,因此协议无需等待边缘端口接收到 BPDU。

使用全局 traceoptions 语句在 ACX 和 MX 路由器上提供了跟踪和全局跟踪功能 — 请参阅 了解生成树协议跟踪选项

QFX 系列交换机

请参阅 配置 STP

如果您的网络包括 IEEE 802.1D 1998 网桥,请删除 RSTP 并显式配置 STP — 请参阅 强制 RSTP 或 VSTP 作为 IEEE 802.1D STP 运行(CLI 过程)。显式配置 STP 时,QFX 系列产品使用 IEEE 802.1D 2004 规范,强制版本 0。此配置运行与经典基本 STP 兼容的 RSTP 版本。如果您使用虚拟 LAN (VLAN),则可以在网络上启用 VSTP。

为 QFX 系列提供的 STP 支持包括:

  • IEEE 802.1d

  • 802.1W RSTP

  • 802.1s MSTP

在 QFX 系列的网络侧使用快速生成树协议 (RSTP),以提供比基本生成树协议 (STP) 更快的收敛时间。RSTP 将某些链路识别为点对点。当点对点链路发生故障时,备用链路可以转换为转发状态,从而加速融合。

接口可以配置为根保护或环路保护,但不能同时配置两者。

在运行支持 ELS 的 Junos OS 的 EX 系列(EX9200 除外)和 QFX 系列交换机上,VSTP 最多可支持 510 个 VLAN。

如果您的 EX 系列或 QFX 系列交换机与运行 Rapid per VLAN 生成树 (Rapid PVST+) 的 Cisco 设备互操作,我们建议您在 EX 系列或 QFX 系列接口上同时启用 VSTP 和 RSTP。

EX 系列交换机

  • EX 系列交换机有两个版本。请确保对每个版本使用正确的命令。有些 EX 交换机运行的瞻博网络 Junos 操作系统 (Junos OS) 支持增强型第 2 层软件 (ELS) 配置(例如,EX4300、EX2300、EX3400 和 EX4600 支持 ELS),有些则不支持 ELS 配置。

  • 配置为使用 STP 的 EX 系列交换机实际上运行与 STP 兼容的 RSTP 强制版本 0。如果将 Junos OS 用于支持 ELS 的 EX 系列交换机,则可以强制运行原始 IEEE 802.1D 生成树协议 (STP) 版本来代替 RSTP 或 VSTP。请参阅 强制 RSTP 或 VSTP 作为 IEEE 802.1D STP (CLI 过程)运行。

  • 在运行支持 ELS 的 Junos OS 的 EX 系列(EX9200 除外)和 QFX 系列交换机上,VSTP 最多可支持 510 个 VLAN。但是,在 EX9200 交换机上,VSTP 最多只能支持 253 个 VLAN。

  • EX 系列交换机 EX4300、EX4600 和 QFX 平台 QFX5100、QFX3500 QFX3600 在 VSTP 上支持 510 个 VLAN。

  • 在 EX9200 交换机上 — VSTP 最多可支持 4000 个 VLAN。

  • 如果运行的 Junos OS 不支持 ELS,则 EX 系列交换机最多可支持 253 个 VLAN。

  • EX4300 交换机只能通过启用 RSTP 并强制其充当 STP 来配置 STP。从 RSTP 配置页选中强制 STP 复选框。

  • 接口可以配置为根保护或环路保护,但不能同时配置两者。

  • 如果您的 EX 系列或 QFX 系列交换机与运行 Rapid per VLAN 生成树 (Rapid PVST+) 的 Cisco 设备互操作,我们建议您在 EX 系列或 QFX 系列接口上同时启用 VSTP 和 RSTP。

  • ARP 功能不适用于支持增强型第 2 层软件 (ELS) 配置样式的 EX 系列交换机。

提示:

EX 系列交换机在 VSTP 上最多可以有 253 个 VLAN。因此,要拥有尽可能多的生成树协议 VLAN,请同时使用 VSTP 和 RSTP。然后,RSTP 将应用于超出 VSTP 限制的 VLAN。由于 RSTP 默认处于启用状态,因此只需额外启用 VSTP。

QFabric

虽然不需要在 QFabric 系统中运行 STP,但您可以将 QFabric 系统连接到另一个第 2 层设备并使用 STP。只能在网络节点组上处理 STP 流量。其他节点组(如冗余服务器节点组和服务器节点组)会丢弃 STP 网桥协议数据单元 (BPDU) 流量并自动禁用接口。服务器节点组仅处理面向主机的协议,而网络节点组处理所有支持的协议。

SRX 系列防火墙

  • 仅通过 STP、RSTP 或 MSTP 提供第 2 层环路防御。SRX 平台不支持 VSTP。

  • SRX 系列防火墙有两个版本。请确保对每个版本使用正确的命令。有些 SRX 系列防火墙运行的瞻博网络 Junos 操作系统 (Junos OS) 支持增强型第 2 层软件 (ELS) 配置,有些则不支持 ELS 配置。

  • 从 Junos OS 版本 15.1X49-D70 开始,生成树协议 (STP) 在 SRX300、SRX320、SRX340、SRX345、SRX550M 和 SRX1500 设备上受支持。从 Junos OS 15.1X49-D40 版到 Junos OS 15.1X49-D60 版不支持生成树协议 (STP)。

  • 接口可以配置为根保护或环路保护,但不能同时配置两者。