Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

生成树协议的环路保护

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

环路保护可防止端口进入转发状态,从而提高 STP、RSTP 和 MSTP 的效率,因为转发状态会导致网络中出现环路打开。生成树协议环路保护增强了生成树协议对接口执行的常规检查。当非指定端口接口上未收到 BPDU 时,环路保护将执行指定作。您可以选择在端口上未收到桥接协议数据单元 (BPDU) 时阻止接口或发出警报。

环路保护的工作原理是什么?

生成树拓扑中的无环路网络通过交换称为桥接协议数据单元 (BPDU) 的特殊类型的帧来支持。在交换机接口上运行的对等 STP 应用程序使用 BPDU 进行通信。最终,BPDU 的交换决定了哪些接口将阻止流量(防止环路),哪些接口将成为根端口并转发流量。

但是,如果接口停止从分段上的指定端口接收 BPDU,则阻塞接口可能会错误地转换为转发状态。当交换机上出现硬件错误或交换机与其相邻交换机之间存在软件配置错误时,可能会发生此类转换错误。

启用环路保护后,生成树拓扑将检测根端口和阻塞端口,并确保这两个端口都继续接收 BPDU。如果启用了环路保护的接口停止从其指定端口接收 BPDU,其反应与应对此接口上的物理连接问题时相同。它不会将接口转换为转发状态,而是将其转换为环路不一致状态。接口将恢复,然后在收到 BPDU 后立即转换回生成树阻塞状态。

STP 协议环路保护的优势

默认情况下,停止接收桥接协议数据单元 (BPDU) 数据帧的生成树协议接口将转换为指定端口(转发)状态,从而形成潜在的环路。

什么作会导致循环?

生成树协议家族负责在具有冗余链路的网桥网络中分断环路。但是,硬件故障可能会产生转发环路(STP 环路),并导致重大网络中断。生成树协议通过阻塞端口(接口)来中断环路。但是,当被阻止的端口错误地转换为转发状态时,会发生错误。

理想情况下,只要连接的 LAN 分段存在到根网桥的优选路径,生成树协议网桥端口就会保持阻塞状态。此指定端口是通过从该端口上的对等方接收更高级的 BPDU 来确定的。当其他端口不再接收 BPDU 时,生成树协议会认为拓扑是无环路的。但是,如果被阻止的端口或备用端口进入转发状态,则会产生循环。

当 BPDU 没有到达时,环路保护可以做什么?

为了防止生成树实例接口将缺少收到的 BPDU 解释为代入指定端口角色的“误报”条件,您可以配置以下环路保护选项之一:

  • 将路由器配置为如果生成树实例接口在超时间隔内未收到 BPDU,则会引发告警条件。

  • 将路由器配置为在超时间隔内未收到 BPDU 时阻止生成树实例接口。

注意:

生成树实例接口环路保护已为接口上的所有生成树实例启用,但仅阻止或告警那些停止接收 BPDU 的实例。

何时应使用环路保护?

您可以配置生成树协议环路保护,以提高第 2 层网络的稳定性。建议仅在非指定接口(如根接口或备用接口)上配置环路保护。否则,如果在指定链路的两端都配置环路保护,则某些 STP 配置事件(例如,在具有多个环路的拓扑中将根网桥优先级设置为较低的值)可能会导致两个接口都转换为阻塞模式。

建议在所有可能成为根端口或备用端口的交换机接口上启用环路保护。在整个交换网络中启用环路保护时效果最佳。启用环路保护时,必须至少配置一个作(记录和/或阻止)。

注意:

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

如果我不使用环路保护会怎样?

默认情况下(即未配置生成树协议环路保护),停止接收 BPDU 的接口将承担指定的端口角色,并可能导致生成树协议环路。

使用生成树协议消除以太网 LAN 中的桥接环路

生成树协议 (STP) 是一种网络协议,用于消除以太网 LAN 中的桥接环路。STP 通过阻断冗余链路或路径来防止网络环路和相关的网络中断。冗余路径可用于在主链路发生故障时保持网络运行。

这些部分介绍了桥接环路以及 STP 如何帮助消除桥接环路。

了解桥接环路

要理解桥接环路,请考虑以下场景:四个交换机(或网桥)连接到四个不同的子部分(第 i、ii、iii 和 iv 小节),其中每个子部分都是网络节点的集合(参见 图 1)。为简单起见,将第一小节和第二小节合并为第1节。同样,第三小节和第四小节合并为第2小节。

图1:桥环的 Formation of Bridge Loops形成

交换机开机后,桥接表为空。如果第 i 小节中的用户 A 尝试向第 iv 小节中的用户 D 发送单个数据包 1,则处于侦听模式的所有交换机都将接收该数据包。交换机在其各自的桥接表中创建一个条目,如下表所示:

表 1:交换机在各自的桥接表中进行条目

桥 1

编号 |端口朝向

桥 2

编号 |端口朝向

3号桥

编号 |端口朝向

4号桥

编号 |端口朝向

数据包 1 |第1节

数据包 1 |第1节

数据包 1 |第1节

数据包 1 |第1节

此时,交换机不知道第 iv 小节在哪里,数据包被转发到除源端口以外的所有端口(这会导致数据包泛洪)。在此示例中,在第 1 小节发送数据包后,交换机在面向第 1 节的端口上接收数据包。因此,它们开始通过面向第 2 节的端口转发数据包。哪台交换机最先有机会发出数据包取决于网络配置。在此示例中,假设交换机 1 首先传输数据包。因为它从第 1 部分接收了数据包,所以会将数据包泛洪到第 2 部分。同样,同样处于侦听模式的交换机 2、3 和 4 在面向第 2 节的端口上接收来自交换机 1(最初从第 1 节发送)的相同数据包。它们很容易使用不正确的信息来更新其桥接表,如下表所示:

表 2:使用错误信息更新的桥接表

桥 1

编号 |端口朝向

桥 2

编号 |端口朝向

3号桥

编号 |端口朝向

4号桥

编号 |端口朝向

数据包 1 |第1节

数据包 1 |第2节

数据包 1 |第2节

数据包 1 |第2节

因此,当从第 1 节和第 2 节收到相同的数据包时,将创建一个环路。如 图 1 所示,交换机 1 的信息表明该数据包来自第 1 节中的第 i 小节,而所有其他交换机的错误信息表明同一数据包来自第 2 节。

当交换机 2 有机会传输原始数据包时,将重复整个过程。交换机 2 接收来自第 1 节的原始数据包,并将相同的数据包传输到第 2 节。最终,仍然不知道第 iv 小节所在位置的交换机 1 更新了其桥接表,如下表所示:

表 3:交换机 1 更新其桥接表

桥 1

编号 |端口朝向

桥 2

编号 |端口朝向

3号桥

编号 |端口朝向

4号桥

编号 |端口朝向

数据包 1 |第2节

数据包 1 |第2节

数据包 1 |第2节

数据包 1 |第2节

在复杂的网络中,由于重复发送同一个数据包,此过程会很快导致巨大的数据包传输周期。

STP 如何帮助消除环路

生成树协议通过关闭可能产生环路的其他路由来帮助消除网络中的环路。如果主路径被停用,则会自动启用被阻止的路由。

要了解 STP 在消除桥接环路方面所遵循的步骤,请考虑以下示例,其中三个交换机连接起来形成一个简单的网络(参见 图 2)。为了保持冗余,每台设备之间存在多条路径。交换机使用每 2 秒发送一次的桥接协议数据单元 (BPDU) 相互通信。

注意:

BPDU 是由网桥 ID、其起源的网桥端口、网桥端口的优先级、路径成本等组成的帧。BPDU 作为组播 MAC 地址 01:80:c2:00:00:00 发送。BPDU 可以有三种类型:配置 BPDU、拓扑更改通知 (TCN) BPDU 和拓扑更改确认 (TCA) BPDU。

图 2:具有冗余链接 Simple Network with Redundant Links的简单网络

要消除网络环路,STP 在此示例网络中执行以下步骤:

  1. 选择根网桥(或交换机)。 要选择根交换机,STP 使用网桥 ID。网桥 ID 长度为 8 个字节,由两部分组成。第一部分是 2 字节的信息,称为桥接优先级。默认网桥优先级为 32,768。在此示例中,默认值用于所有交换机。其余 6 个字节为交换机的 MAC 地址。在本示例中,Switch1 被选为根交换机,因为它的 MAC 地址最低。

  2. 选择根端口。 通常,根端口使用从一台交换机到另一台交换机的最低成本路径。在此示例中,假设所有路径的成本相似。因此,交换机 2 的根端口是通过交换机 1(成本 4)的直接路径接收数据包的端口,因为另一条路径是通过交换机 3(成本 4 + 4),如 图 3 所示。同样,对于交换机 3,根端口是使用来自交换机 1 的直接路径的端口。

    图 3:选择根端口 Electing Root Ports
  3. 选择指定的端口。 指定端口是唯一可以在根交换机以外的交换机上接收和转发帧的端口。它们通常是使用成本最低路径的端口。在 图 4 中,标记了指定的端口。

    图 4:选择指定端口并阻止冗余路径 Selecting Designated Ports and Blocking Redundant Paths

由于网络中涉及多条路径,并且根端口和指定端口已识别,因此 STP 可以暂时阻断交换机 2 和交换机 3 之间的路径,从而消除任何第 2 层环路。

支持的生成树协议类型

在第 2 层环境中,您可以配置各种生成树协议版本,以在第 2 层网络中创建无环路拓扑。

生成树协议是一种第 2 层控制协议 (L2CP),用于计算通过包含冗余路径的交换网络的最佳路径。生成树协议使用桥接协议数据单元 (BPDU) 数据帧与其他交换机交换信息。生成树协议使用 BPDU 提供的信息来选择根网桥,识别每个交换机的根端口,识别每个物理 LAN 分段的指定端口,并修剪特定的冗余链路,以创建无环路树拓扑。由此产生的树形拓扑可在任意两个终端站之间提供一条单独的活动第 2 层数据路径。

注意:

在讨论生成树协议时,术语 bridgeswitch 经常互换使用。

瞻博网络 MX 系列 5G 通用路由平台和 EX 系列交换机支持 STP、RSTP、MSTP 和 VSTP。

  • 原始生成树协议 (STP) 在 IEEE 802.1D 1998 规范中定义。称为快速生成树协议 (RSTP) 的较新版本最初在 IEEE 802.1w 规范草案中定义,后来并入 IEEE 802.1D-2004 规范中。称为多生成树协议 (MSTP) 的最新版本最初在 IEEE 802.1s 规范草案中定义,后来被纳入 IEEE 802.1Q-2003 规范中。VLAN 生成树协议 (VSTP) 与 Cisco Systems 路由器和交换机上支持的 Per-VLAN 生成树增强版 (PVST+) 和 Rapid-PVST+ 协议兼容。

  • RSTP 将某些链路识别为点对点,并使用协议握手消息而不是固定超时,从而提供比原始 STP 更快的重新融合时间。当点对点链路发生故障时,备用链路可以转换为转发状态,无需等待任何协议计时器过期。

  • MSTP 提供了以逻辑方式将第 2 层网络划分为多个区域的功能。每个区域都有一个唯一标识符,并且可以包含生成树的多个实例。所有区域都使用通用实例生成树 (CIST) 绑定在一起,CIST 负责 区域创建无环路拓扑,而多生成树实例 (MSTI) 控制区域 的拓扑。MSTP 使用 RSTP 作为融合算法,并且与早期版本的 STP 完全互作。

  • VSTP 为每个 VLAN 维护一个单独的生成树实例。不同的 VLAN 可以使用不同的生成树路径。当不同的 VLAN 使用不同的生成树路径时,随着配置的 VLAN 越多,消耗的 CPU 处理资源也会增加。VSTP BPDU 数据包使用相应的 VLAN 标识符进行标记,并传输至协议类型为 0x010b 的组播目的媒体访问控制 (MAC) 地址 01-00-0c-cc-cc-cd。VSTP BPDU 通过纯 IEEE 802.1q 网桥建立隧道。

注意:

仅使用一个生成树进程支持在 MX 系列路由器上配置的所有虚拟交换机路由实例。第 2 层控制协议进程称为 l2cpd。

示例:为生成树协议启用环路保护

此示例会在 BPDU 超时间隔到期后阻止并记录未指定的 RSTP 端口 ge-1/2/0

注意:

这不是一个完整的配置。您还必须完整配置 RSTP,包括 ge-1/2/0 接口。

配置生成树实例接口的环路保护

开始之前,您必须完全配置生成树协议,包括实例接口。您可以在以下层级配置 RSTP、MSTP 或 VSTP:

  • [edit protocols]

  • [edit routing-instances routing-instance-name protocols]

要配置增强环路保护,请执行以下作:

  1. 将语句与生成树协议接口的 blocklog 选项一起包含在bpdu-timeout-action内。
    • 对于物理接口上的 STP 或 RSTP 实例:

    • 对于物理接口上的所有 MSTP 实例:

    • 对于在全局级别或 VLAN 级别配置的物理接口上的所有 VSTP 实例:

  2. 要在接口上显示生成树协议环路保护特征,请使用 show spanning-tree interface 作命令。

示例:配置环路保护以防止接口在非 ELS EX 系列交换机上的生成树中从阻塞过渡到转发

EX 系列交换机通过生成树协议 (STP)、快速生成树协议 (RSTP) 和多生成树协议 (MSTP) 提供第 2 层环路防御。环路保护可防止接口进入转发状态,从而提高 STP、RSTP 和 MSTP 的效率,因为转发状态会导致网络中出现环路打开。

此示例介绍如何为 RSTP 拓扑中的 EX 系列交换机上的接口配置环路保护:

要求

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

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

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

在配置接口进行环路保护之前,请确保您具备以下条件:

  • 在交换机上运行的 RSTP。

注意:

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

概述和拓扑

生成树拓扑中的无环路网络通过交换称为桥接协议数据单元 (BPDU) 的特殊类型的帧来支持。在交换机接口上运行的对等 STP 应用程序使用 BPDU 进行通信。最终,BPDU 的交换决定了哪些接口将阻止流量(防止环路),哪些接口将成为根端口并转发流量。

如果阻塞接口停止从分段上的指定端口接收 BPDU,则阻塞接口可能会错误地转换为转发状态。当交换机上出现硬件错误或交换机与其相邻交换机之间存在软件配置错误时,可能会发生此类转换错误。发生这种情况时,生成树中会打开一个循环。第 2 层拓扑中的环路会导致广播、单播和组播帧连续环绕环路网络。当交换机在环路网络中处理大量帧时,其资源会耗尽,最终导致网络中断。

谨慎:

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

图 5 显示了三个 EX 系列交换机。在此示例中,它们针对 RSTP 进行了配置,并创建了一个无环路拓扑。接口 ge-0/0/6 阻塞交换机 3 和交换机 1 之间的流量;因此,流量通过交换机 2 上的接口 ge-0/0/7 进行转发。BPDU 从交换机 1 上的根网桥发送到这两个接口。

此示例说明如何在接口 ge-0/0/6 上配置环路保护,以防止其从阻塞状态转换为转发状态并在生成树拓扑中创建环路。

拓扑学

图 5:环路保护 Network Topology for Loop Protection网络拓扑

表 4 显示了将为环路保护配置的组件。

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

财产

设置

交换机 1

交换机 1 是根网桥。

交换机 2

交换机 2 的根端口为 ge-0/0/7

开关 3

交换机 3 通过接口 ge-0/0/6 连接到交换机 1。

生成树拓扑包含具有特定角色的端口:

  • 根端口负责将数据转发到根网桥。

  • 备用端口是根端口的备用端口。当根端口出现故障时,备用端口将成为活动根端口。

  • 指定端口将数据转发至下游网段或设备。

此配置示例使用 RSTP 拓扑。但是,您也可以在 [编辑协议mstp | STP)]层次结构级别。

配置

要在接口上配置环路保护,请执行以下作:

程序

CLI 快速配置

要在接口 ge-0/0/6 上快速配置环路保护:

分步过程

要配置环路保护,请执行以下作:

  1. 在交换机 3 上配置接口 ge-0/0/6

结果

检查配置结果:

验证

要确认配置工作正常,请执行以下任务:

显示触发环路保护前的接口状态

目的

在接口 ge-0/0/6 上触发环路保护之前,请确认接口正在阻塞。

行动

使用作模式命令:

意义

作模式命令 show spanning-tree interface 的输出显示 ge-0/0/6.0 是备用端口,处于阻塞状态。

验证接口上的环路保护是否有效

目的

验证接口 ge-0/0/6 上的环路保护配置。RSTP 已在交换机 1 上的接口 ge-0/0/4 上禁用。这将阻止 BPDU 被发送到接口 ge-0/0/6 ,并在接口上触发环路保护。

行动

使用作模式命令:

意义

作模式命令 show spanning-tree interface 显示接口 ge-0/0/6.0 检测到 BPDU 不再转发给它,并且已进入环路不一致状态。环路不一致状态会阻止接口转换为转发状态。接口在收到 BPDU 后立即恢复并转换回其原始状态。

示例:配置环路保护以防止接口在具有 ELS 的 EX 系列交换机上的生成树中从阻塞过渡到转发

注意:

此示例将 Junos OS 用于支持增强型第 2 层软件 (ELS) 配置样式的 EX 系列交换机。如果交换机运行的软件不支持 ELS,请参阅 示例:配置环路保护以防止接口在非 ELS EX 系列交换机上的生成树中从阻塞过渡到转发。有关 ELS 的详细信息,请参阅 使用增强型第 2 层软件 CLI

EX 系列交换机通过生成树协议 (STP)、快速生成树协议 (RSTP) 和多生成树协议 (MSTP) 提供第 2 层环路防御。环路保护可防止接口进入转发状态,从而提高 STP、RSTP 和 MSTP 的效率,因为转发状态会导致网络中出现环路打开。

此示例介绍如何为 RSTP 拓扑中的 EX 系列交换机上的接口配置环路保护:

要求

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

  • Junos OS 13.2X50-D10 或更高版本(适用于 EX 系列交换机)

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

在配置接口进行环路保护之前,请确保您具备以下条件:

  • 在交换机上运行的 RSTP。

注意:

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

概述和拓扑

生成树拓扑中的无环路网络通过交换称为桥接协议数据单元 (BPDU) 的特殊类型的帧来支持。在交换机接口上运行的对等 STP 应用程序使用 BPDU 进行通信。最终,BPDU 的交换决定了哪些接口将阻止流量(防止环路),哪些接口将成为根端口并转发流量。

如果阻塞接口停止从分段上的指定端口接收 BPDU,则阻塞接口可能会错误地转换为转发状态。当交换机上出现硬件错误或交换机与其相邻交换机之间存在软件配置错误时,可能会发生此类转换错误。发生这种情况时,生成树中会打开一个循环。第 2 层拓扑中的环路会导致广播、单播和组播帧连续环绕环路网络。当交换机在环路网络中处理大量帧时,其资源会耗尽,最终导致网络中断。

谨慎:

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

图 6 显示了三个 EX 系列交换机。在此示例中,它们针对 RSTP 进行了配置,并创建了一个无环路拓扑。接口 ge-0/0/6 阻塞交换机 3 和交换机 1 之间的流量;因此,流量通过交换机 2 上的接口 ge-0/0/7 进行转发。BPDU 从交换机 1 上的根网桥发送到这两个接口。

此示例说明如何在接口 ge-0/0/6 上配置环路保护,以防止其从阻塞状态转换为转发状态并在生成树拓扑中创建环路。

拓扑学

图 6:环路保护 Network Topology for Loop Protection网络拓扑

表 5 显示了将为环路保护配置的组件。

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

财产

设置

交换机 1

交换机 1 是根网桥。

交换机 2

交换机 2 的根端口为 ge-0/0/7

开关 3

交换机 3 通过接口 ge-0/0/6 连接到交换机 1。

生成树拓扑包含具有特定角色的端口:

  • 根端口负责将数据转发到根网桥。

  • 备用端口是根端口的备用端口。当根端口出现故障时,备用端口将成为活动根端口。

  • 指定端口将数据转发至下游网段或设备。

此配置示例使用 RSTP 拓扑。但是,您也可以在 [编辑协议 mstp ] 层次结构级别为 MSTP 拓扑配置环路保护。

配置

要在接口上配置环路保护,请执行以下作:

程序

CLI 快速配置

要在接口 ge-0/0/6 上快速配置环路保护:

分步过程

要配置环路保护,请执行以下作:

  1. 在交换机 3 上配置接口 ge-0/0/6

结果

检查配置结果:

验证

要确认配置工作正常,请执行以下任务:

显示触发环路保护前的接口状态

目的

在接口 ge-0/0/6 上触发环路保护之前,请确认接口正在阻塞。

行动

使用作模式命令:

意义

作模式命令 show spanning-tree interface 的输出显示 ge-0/0/6 是备用端口,处于阻塞状态。

验证接口上的环路保护是否有效

目的

验证接口 ge-0/0/6 上的环路保护配置。RSTP 已在交换机 1 上的接口 ge-0/0/4 上禁用。这将阻止 BPDU 被发送到接口 ge-0/0/6 ,并在接口上触发环路保护。

行动

使用作模式命令:

意义

作模式命令 show spanning-tree interface 显示接口 ge-0/0/6 检测到 BPDU 不再转发到它,并已进入环路不一致状态。环路不一致状态会阻止接口转换为转发状态。要清除 BPDU 错误,请在交换机上发出作模式命令 clear error bpdu interface 。接口在收到 BPDU 后立即恢复并转换回其原始状态。