Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

生成树协议的 BPDU 保护

了解生成树实例接口的 BPDU 保护

ACX 系列路由器、MX 系列路由器、PTX 系列路由器、EX 系列交换机和 QFX 系列交换机支持生成树协议,通过创建整个桥接网络的树拓扑(生成树),防止网络中出现环路。所有生成树协议都使用一种称为桥接协议数据单元 (BPDU) 的特殊类型的帧进行相互通信。

生成树协议 (STP) 系列旨在打破第 2 层桥接网络中可能出现的环路。环路预防可避免可能使网络失用的破坏性广播风暴。网桥上的 STP 进程交换 BPDU,以确定 LAN 拓扑、确定根网桥、停止某些端口上的转发等。但是,行为不正常的用户应用或设备可能会干扰 STP 协议的运行并导致网络问题。

BPDU 块是一种功能,可保护 STP 拓扑免受行为不当的用户、应用或设备或威胁的影响。您必须在不应接收任何 BPDU 的接口上启用 BPDU 保护。

如果接口配置为边缘端口,则接口将直接转换为转发状态。此类端口连接到终端设备,预计不会接收 BPDU。因此,为避免环路,必须通过启用 bpdu-block-on-edge 来保护边缘端口。

在支持 STP 的路由器和交换机上,您可以配置 BPDU 保护,以忽略在不应预期的接口上接收的 BPDU(例如,网络边缘上不存在其他网桥的 LAN 接口)。如果在受保护的接口上收到 BPDU,则该接口将被禁用并停止转发帧。默认情况下,所有接口上都接受并处理所有 BPDU。

您可以通过多种方式实现 BPDU 保护。默认情况下,如果接口上启用了bpdu-block,则在接收BPDU时,接口将被禁用,并且接口上的所有流量转发都将停止。但是,如果您不想禁用该接口,也不想让该接口参与 STP 计算,则可以配置操作丢弃。如果配置了操作丢弃,则接口将保持开启运行,并且流量将继续流动;但是,BPDU 会被丢弃。

边缘端口不支持操作丢弃。如果边缘端口接收到 BPDU,则 BPDU-block-on-edge 将禁用接口。您必须清除错误才能重新启用接口。

您可以在具有以下封装类型的接口上配置 BPDU 保护:

  • 以太网网桥

  • 以太网-VPLS

  • 扩展 VLAN 网桥

  • VLAN-VPLS

  • VLAN 网桥

  • 扩展 vlan-vpls

您可以在网桥的单个接口或所有边缘端口上配置 BPDU 保护。

使用层次结构下的set protocols (mstp|rstp|vstp)命令,bpdu-block-on-edge在配置为边缘端口的接口上启用 BPDU 保护。如果尚未将端口配置为边缘端口,仍可使用层次结构下的set protocols layer2-control命令在bpdu-block接口上配置 BPDU 保护。您还可以使用该bpdu-block命令在为生成树配置的接口上配置 BPDU 保护。

了解 STP、RSTP 和 MSTP 的 BPDU 保护

网络经常同时使用多个协议来实现不同的目标,在某些情况下,这些协议可能会相互冲突。其中一种情况是当网络上处于活动状态的生成树协议时,称为桥接协议数据单元 (BPDU) 的特殊类型的交换帧可能会与在其他设备(例如 PC)上生成的 BPDU 发生冲突。不同类型的 BPDU 不兼容,但仍可被使用 BPDU 并导致网络中断的其他设备识别。您需要保护任何识别 BPDU 的设备不会拾取不兼容的 BPDU。

不同类型的 BPDU

生成树协议 (STP)、快速生成树协议 (RSTP)、VLAN 生成树协议 (VSTP) 和多生成树协议 (MSTP) 等生成树协议会生成自己的 BPDU。这些对等 STP 应用使用其 BPDU 进行通信,最终,BPDU 的交换将决定哪些接口阻止流量,哪些接口成为根端口。根端口和指定端口转发流量;备用端口和备用端口会阻塞流量。

为单个生成树实例接口配置 BPDU 保护

要在一个或多个生成树实例接口上配置 BPDU 保护,请包含以下 bpdu-block 语句:

注意:

如果还包含 optional disable-timeout seconds 语句,则 受保护的接口 将在指定的时间间隔后自动清除,除非间隔为 0。

了解用于在网桥之间交换信息的 BPDU

在第 2 层网桥环境中,生成树协议使用称为网桥协议数据单元 (BPDU) 的数据帧在网桥之间交换信息。

对等系统上的生成树协议交换 BPDU,其中包含有关端口角色、网桥 ID 和根路径成本的信息。在每个路由器或交换机上,生成树协议使用此信息来选择根网桥,为每个交换机识别根端口,为每个物理 LAN 段识别指定端口,并修剪特定的冗余链路以创建无环路树拓扑。生成的树拓扑可在任意两个终端站之间提供单个活动的第 2 层数据路径。

注意:

在生成树协议的讨论中,术语 bridge 和 switch 经常互换使用。

BPDU 的传输由 MX 系列 5G 通用路由平台上的第 2 层控制协议进程 (l2cpd) 控制。

代表 l2cpd 进程的定期数据包传输由定期数据包管理 (PPM) 执行,默认情况下,该管理配置为在数据包转发引擎上运行。数据包转发引擎上的 ppmd 进程可确保即使在 l2cpd 不可用的情况下也能传输 BPDU,并在统一不中断服务的软件升级(统一 ISSU)期间保持远程邻接保持活动状态。但是,如果您希望分布式 PPM (ppmd) 进程在路由引擎而不是数据包转发引擎上运行,则可以在数据包转发引擎上禁用 ppmd 进程。

在具有冗余路由引擎(安装在同一路由器中的两个路由引擎)的路由器和交换机上,可以配置不间断桥接。不间断桥接使路由器能够从主路由引擎切换到备用路由引擎,而不会丢失第 2 层控制协议 (L2CP) 信息。不间断桥接使用与平滑路由引擎切换 (GRES) 相同的基础架构来保留接口和内核信息。但是,不间断桥接还通过在备份路由引擎上运行 l2cpd 进程来保存 L2CP 信息。

注意:

要使用不间断桥接,必须先启用 GRES。

以下第 2 层控制协议支持不间断桥接:

  • 生成树协议 (STP)

  • 快速生成树协议 (RSTP)

  • 多生成树协议 (MSTP)

了解 EVPN-VXLAN 的 BPDU 保护

EVPN-VXLAN 数据中心交换矩阵具有许多内置的以太网环路防御机制,如水平分割、指定转发器和非指定转发器选择等。在部署新 IP EVPN 交换矩阵的某些现有数据中心环境中,您可能需要在叶至服务器接口上配置 BPDU 保护,以避免由于 xSTP 计算错误而导致网络中断。服务器和叶接口之间的布线不正确,或两个或多个 ESI-LAG 接口之间的任何后门第 2 层链路,可能会导致计算错误,进而导致以太网环路。如果没有 BPDU 保护,BPDU 可能无法被识别,并且会在 VXLAN 接口上作为未知的第 2 层数据包泛洪。使用 BPDU 保护时,当在 EVPN-VXLAN 环境中的边缘端口上收到 BPDU 时,边缘端口将被禁用并停止转发所有流量。您还可以配置 BPDU 保护以丢弃 BPDU 流量,但在接口上转发所有其他流量,而无需配置生成树协议。

配置接口以使用端口关闭模式进行 BPDU 保护

要在交换机的边缘接口上配置 BPDU 保护:

注意:

确保交换机已连接到终端设备。

  1. 在交换机上配置任何生成树协议(如果尚未配置)。RSTP 将在此过程中配置。
  2. 在特定接口上启用 RSTP 并为接口设置优先级,例如, et-0/0/0.0:
  3. 在接口上 et-0/0/0.0 启用 BPDU 保护:
  4. 提交配置:
  5. 验证接口et-0/0/0.0上是否正确配置了BPDU保护():
    • 运行 show ethernet-switching interfaces 操作模式命令以查看接口上配置的 STP 状态:

      在此输出中,请注意 et-0/0/0.0 接口处于阻止状态,因为它已从终端设备接收 BPDU。

    • 运行 show spanning-tree interfaces 操作模式命令以确保 et-0/0/0.0 接口被阻止:

    • 运行 show interfaces interface-name 操作模式命令以验证接口是否已禁用:

    物理链路已关闭,并检测到 BPDU 错误。

配置接口以使用 BPDU 丢弃模式进行 BPDU 保护

对于某些接入交换机,您可能希望交换机上的接口在遇到不兼容的 BPDU 数据包时不会关闭;相反,仅丢弃不兼容的 BPDU 数据包,同时允许剩余流量通过。此类接口上不得配置生成树协议,这样通过接口的数据包就不会导致 STP 配置错误和随之而来的网络中断。

要为接口配置 BPDU 保护,使其仅丢弃不兼容的 BPDU 数据包并允许其余流量通过,同时将接口状态保留为运行:

注意:

确保配置 BPDU 保护的交换机已连接到对等设备。

  1. 删除或禁用交换机或任何接口上配置的任何生成树协议(例如,如本过程所示的 RSTP)。
    • 要删除整个交换机上的生成树协议,请执行以下操作:

      或者,

    • 要删除交换机上特定接口(例如 et-0/0/0.0)上的生成树协议,请执行以下操作:

  2. 在接口上启用 BPDU 保护(此过程中为 et-0/0/0.0)以丢弃 BPDU 数据包:
  3. 提交配置:
  4. 验证接口上是否配置了 BPDU 保护操作丢弃:
    • 运行 show ethernet-switching interfaces 操作模式命令,确保接口的 STP 状态为转发:

      在此输出中,请注意 et-0/0/0.0 接口已开启,即使它收到了不兼容的 BPDU 数据包,因为为此接口配置了 丢弃 功能。

    • show interfaces interface-name运行操作模式命令,确保输出中显示 et-0/0/0.0 接口,且接口的状态为 Up:

    物理链路已开启,没有BPDU错误。

    注意:要显示所有已配置接口的 BPDU 保护状态,请输入以下命令: 此命令显示每个接口的配置操作(关闭或丢弃)、恢复超时信息和 BPDU 统计信息。此命令通过提供所有已配置接口的 BPDU 保护状态摘要来补充特定于接口的验证命令。

为边缘接口配置 BPDU 保护

在生成树拓扑中,如果交换机是接入交换机,则该交换机上的接口将连接到未连接到其他交换机的终端设备,例如 PC、服务器、路由器或集线器。您可以将这些接口配置为边缘接口,因为它们直接连接到终端设备。

配置为边缘接口的接口可以立即转换为转发状态,因为它们无法创建网络环路。交换机通过注意到终端站没有通信来检测边缘端口。由于边缘端口连接到终端设备,因此必须在边缘端口上配置 BPDU 保护以避免环路。如果在边缘接口上启用了 BPDU 保护,则接口将在遇到 ae BPDU 时关闭,从而阻止任何流量通过该接口。您可以通过发出 clear error bpdu interface interface-name 操作模式命令来重新启用接口。该 clear error bpdu interface interface-name 命令只会重新启用接口,但接口的BPDU配置将继续存在,除非您显式删除BPDU配置。

要在交换机的边缘接口上配置 BPDU 保护:

注意:

确保交换机已连接到终端设备。

  1. 在交换机上配置任何生成树协议(如果尚未配置)。RSTP 将在此过程中配置。
  2. 在特定接口上启用 RSTP 并为接口设置优先级,例如, et-0/0/0.0:
  3. 将接口配置 et-0/0/0.0 为边缘接口,并在该接口上启用 BPDU 保护:
  4. 提交配置:
  5. 验证边缘接口 ()et-0/0/0.0 上是否正确配置了 BPDU 保护:
    • 运行 show ethernet-switching interfaces 操作模式命令以查看接口上配置的 STP 状态:

      在此输出中,您注意到 et-0/0/0.0 接口处于阻塞状态,因为它已从终端设备接收了 BPDU。

    • 运行 show spanning-tree interfaces 操作模式命令以确保 et-0/0/0.0 接口被阻止:

    • 运行 show interfaces interface-name 操作模式命令以验证接口是否已禁用:

    物理链路已关闭,并检测到 BPDU 错误。

示例:阻止接口上的 BPDU 600 秒

以下示例与使用聚合以太网的完整网桥配置一起使用时,会在接口 ae0 上阻止 BPDU 10 分钟(600 秒),然后再次启用该接口:

示例:在接口上配置 BPDU 保护

注意:

此示例将 Junos OS 用于不支持增强型第 2 层软件 (ELS) 配置样式的 EX 系列交换机。有关 ELS 的详细信息,请参阅 使用增强型第 2 层软件 CLI。

启用 BPDU 保护后,当遇到任何不兼容的 BPDU 时,接口会关闭或丢弃 BPDU 数据包,从而防止生成树协议生成的 BPDU 到达交换机。当接口配置为丢弃 BPDU 数据包时,除不兼容的 BPDU 之外,所有流量均可通过该接口。

注意:

只能在未配置生成树协议的接口上指定 BPDU 丢弃功能。

此示例在连接到两台 PC 的 STP 交换机下游接口上配置 BPDU 保护:

要求

此示例使用以下硬件和软件组件:

  • RSTP 拓扑中的一台 EX 系列交换机

  • 一台不在任何生成树拓扑中的 EX 系列交换机

  • 适用于 EX 系列交换机的 Junos OS 9.1 或更高版本

在交换机 2 上配置接口以保护 BPDU 之前,请确保您已:

  • 确保 RSTP 在交换机 1 上运行。

  • 在交换机 2 上禁用或启用 RSTP(取决于您计划实施的配置。)

    如果想要启用BPDU关断功能,则可以选择禁用接口上的生成树协议。

注意:

默认情况下,所有 EX 系列交换机均启用 RSTP。

概述和拓扑

此示例说明如何在接口上配置 BPDU 保护。

图 1 显示了此示例的拓扑结构。交换机 1 和交换机 2 通过中继接口连接。交换机 1 配置为 RSTP,而交换机 2 在第一种情况下配置了生成树协议,而在第二种情况下未配置生成树协议。

在第一种情景中,此示例会在交换机 2 接口 ge-0/0/5.0 和 ge-0/0/6.0 上配置下游 BPDU 保护,前提是这些接口上未禁用默认生成树协议 (RSTP)。启用 BPDU 保护时,默认情况下会启用该 shutdown 语句,如果笔记本电脑生成的 BPDU 尝试访问交换机 2,交换机接口将关闭。

在第二个场景中,此示例会在交换机 2 接口 ge-0/0/5.0 和 ge-0/0/6.0 上配置下游 BPDU 保护,前提是这些接口上未配置生成树协议。使用语句启用 drop BPDU 保护后,交换机接口仅丢弃 BPDU,同时允许剩余流量通过,并在笔记本电脑生成的 BPDU 尝试访问交换机 2 时将其状态保留为运行状态。

注意:

在没有生成树的接口上配置 BPDU 保护且连接到具有生成树的交换机时,请注意不要在 所有 接口上配置 BPDU 保护。这样做可能会阻止在交换机接口(如中继接口)上接收 BPDU,而您打算从具有生成树的交换机接收 BPDU。

拓扑结构

图 1:BPDU 保护拓扑 Network topology with Rapid Spanning Tree Protocol showing Distribution Layer with RSTP Switch 1 and Access Layer with RSTP Switch 2 connected via trunk link. Access ports ge-0/0/5.0 and ge-0/0/6.0 connect to devices. Dashed blue lines indicate BPDU transmission.

表 1 显示了将为 BPDU 保护配置的组件。

表 1:用于在 EX 系列交换机上配置 BPDU 保护的拓扑组件

属性

设置

交换机 1(分布层)

交换机 1 通过中继接口连接到交换机 2。交换机 1 配置为 RSTP。

交换机 2(接入层)

交换机 2 有两个连接到笔记本电脑的下游接入端口:

  • ge-0/0/5.0

  • ge-0/0/6.0

配置

要在接口上配置 BPDU 保护:

过程

CLI 快速配置

这是解释默认BPDU块配置的第一个场景(操作: shutdown)。要在交换机 2 上快速配置 BPDU 保护,请复制以下命令并将其粘贴到交换机终端窗口中:

分步程序

要为 shutdown 语句配置 BPDU 保护:

  1. 在交换机 2 上的下游接口 ge-0/0/5 上配置 BPDU 块(操作: shutdown):

  2. 在交换机 2 上的下游接口 ge-0/0/6 上配置 BPDU 块(操作: shutdown):

结果

检查配置结果:

过程

CLI 快速配置

这是解释语句配置 drop 的第二个场景。要在交换机 2 上为语 drop 句快速配置 BPDU 保护,请复制以下命令并将其粘贴到交换机终端窗口中:

注意:

如果接口上启用了xSTP,则必须先将其禁用,然后再配置BPDU丢弃操作:块。您可以使用 、 set protocols rstp disable、 或 命令set protocols rstp interface all disable对 delete protocols rstpRSTP 进行全局禁用。

分步程序

要为 drop 语句配置 BPDU 保护:

  1. 在交换机 2 上的下游接口 ge-0/0/5 上配置 BPDU drop 语句:

  2. 在交换机 2 上的下游接口 ge-0/0/6 上配置 BPDU drop 语句:

结果

检查配置结果: