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 保护配置为忽略在不应期望的接口(例如,网络边缘上没有其他网桥的 LAN 接口)上收到的 BPDU。如果在受保护接口上接收到 BPDU,则该接口将被禁用并停止转发帧。默认情况下,所有接口上都接受并处理所有 BPDU。

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

边缘端口不支持操作丢弃。如果边缘端口接收到 BPDU,则边缘 BPDU 块将禁用接口。您必须清除错误才能恢复接口。

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

  • 以太网网桥

  • 以太网-VPLS

  • 扩展 VLAN 网桥

  • VLAN-VPLS

  • VLAN 网桥

  • extended-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 语句:

注意:

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

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

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

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

注意:

在生成树协议的讨论中,术语 bridgeswitch 通常可以互换使用。

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

代表 l2cpd 进程传输定期数据包由定期数据包管理 (PPM) 执行,默认情况下,该管理 (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. 验证接口上是否正确配置了 BPDU 保护 (et-0/0/0.0):
    • 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 数据包并允许剩余流量通过,同时将接口状态保留为 up,请执行以下操作:

注意:

确保要配置 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 保护

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

配置为边缘接口的接口可以立即转换为转发状态,因为它们无法创建网络环路。交换机会注意到终端站没有通信,从而检测边缘端口。由于边缘端口连接到终端设备,因此必须在边缘端口上配置 BPDU 保护以避免环路。如果在边缘接口上启用了 BPDU 保护,则接口在遇到 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. 验证是否已在边缘接口上正确配置 BPDU 保护 (et-0/0/0.0):
    • 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 接口上未禁用默认生成树协议 (RSTP) 时,此示例将在交换机 2 接口 ge-0/0/5.0ge-0/0/6.0 上配置下游 BPDU 保护。启用 BPDU 保护后,默认情况下将启用该 shutdown 语句,如果便携式计算机生成的 BPDU 尝试访问交换机 2,交换机接口将关闭。

在第二种情况下,此示例在交换机 2 接口 ge-0/0/5.0ge-0/0/6.0 上配置下游 BPDU 保护(当这些接口上未配置生成树协议时)。使用该语句启用 drop BPDU 保护后,交换机接口将仅丢弃 BPDU,同时允许剩余流量通过,并在笔记本电脑生成的 BPDU 尝试访问交换机 2 时将其状态保留为 up。

谨慎:

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

拓扑学

图 1:BPDU 保护拓扑 BPDU Protection Topology

表 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 disableset protocols rstp interface all disable命令全局delete protocols rstp禁用 RSTP。

分步过程

要为 drop 语句配置 BPDU 保护,请执行以下操作:

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

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

结果

检查配置结果: