局域网交换 : 生成树协议

了解和配置 Catalyst 交换机上的 Backbone Fast

2015 年 8 月 28 日 - 机器翻译
其他版本: PDFpdf | 英语 (2015 年 4 月 22 日) | 反馈


目录


简介

快速骨干网是 Cisco 的专有功能,一旦在网桥网络的所有交换机上启动,就可以使交换机在从间接链路故障中恢复时节省最多 20 秒 (max_age)。在若干生成树协议基础快速回顾,您能看到快速骨干网适用后的确切的故障情景和如何为运行CatOS和思科IOS�软件的Catalyst交换机配置它。

开始使用前

规则

有关文档规则的详细信息,请参阅 Cisco 技术提示规则

先决条件

本文档没有任何特定的前提条件。

使用的组件

本文档中的信息基于以下软件和硬件版本:

  • 运行 Cisco IOS 软件版本 12.1(6)EA2 及以上的 Catalyst 2950 系列交换机

  • 运行 Cisco IOS 软件版本 12.1(4)EA1 及以上的 Catalyst 3550 系列交换机

  • 运行 CatOS 5.1(1a) 及以上的 Catalyst 4000 系列交换机

  • 运行 Cisco IOS 软件版本 12.1(8a)EW 及以上的 Catalyst 4500/4000 系列交换机

  • 运行 CatOS 版本 4.1(1) 及以上的 Catalyst 5500/5000 系列交换机

  • 运行 CatOS 版本 5.1(1)CSX 及以上的 Catalyst 6500/6000 系列交换机

  • 运行 Cisco IOS 软件版本 12.0-7XE 及以上的 Catalyst 6500/6000 系列交换机

BPDU 以及如何对其进行比较

网桥协议数据单元 (BPDU) 可以根据他们所运载的字段严格分类。这些字段包含根网桥 ID、到达根网桥的路径开销和发送方网桥 ID。认为某个 BPDU 比其他 BDPU 好的原因如下:

  • 当一个 BPDU 运载的根网桥 ID 比另一个好时。值越低,越好。

  • 如果根网桥 ID 值相等,则具有到达根的最低路径开销的 BPDU 更好。

  • 如果根网桥 ID 值相等,并且到达根的开销也相同,则具有更好的发送方网桥 ID 的 BPD 更好。值越低,越好。

还存在可作为评价孰优孰劣的其他标准。总之,BPDU 越好,就越能对最佳根网桥进行访问。

端口上接收 BPDU 的网桥比发送 BPDU 的网桥要好,将此端口设为阻塞模式,除非它是网桥的根端口。这意味着在连接到此端口的网段上,存在另一个网桥,而该网桥为指定网桥。网桥存储端口上当前指定网桥发送的 BPDU 值。

STP 如何从间接链路故障中恢复

这将说明 STP 必须在间接链路故障后重新计算时如何正常运行,即,当网桥因没有直接将链路附加到端口导致链路故障而必须更改其中一些端口的状态时。

http://www.cisco.com/c/dam/en/us/support/docs/lan-switching/spanning-tree-protocol/12014-18a.gif

请看此图,此图在完全网格化的拓扑中包含三个交换机 R、B 和 S。假设 R 是根网桥,B 是备用根网桥。S 阻塞其端口 P,而 B 是链路 L3 的指定网桥。

  1. 如果链路 L1 断开,交换机 B 将立即检测故障并假设它是根网桥。它开始向 S 发送 BPDU 并声称它是新的根网桥。

  2. 当 S 从 B 接收此新 BPDU 时,意识到它比所存储的适用于端口 P 的 BPDU 低级并将其忽略。

  3. 在 max_age 计时器(默认情况下为 20 秒)超时后,S 上存储的适用于端口 P 的 BPDU 将老化。端口会立即进行监听,并且 S 开始向 B 发送更好的 BPDU。

  4. B 一从 S 接收 BPDU,就将终止发送其 BPDU。

  5. 端口 P 从监听和学习状态转变为转发状态。这需要两倍的 fw_delay 值,即额外 30 秒。然后恢复完全连接。

从此间接链路故障中恢复需要的时间等于 max_age 值(20 秒)加上两倍的 fw_delay 值(2x15 秒)。默认参数为 50 秒。快速骨干网功能旨在缩短 max_age(20 秒)。为实现这一目标,它将在端口接收低级 BPDU 后立即老化。

对标准 STP 的快速骨干网增强

在前一个示例中,STP 使因间接链路故障而错误的信息变得无效。为实现这一目标,它被动地等待 max_age。为摆脱此 max_age 延迟,快速骨干网将引入两个增强功能:

  • 尽快检测间接链路故障的能力。这将通过跟踪指定网桥在经历间接链路故障时发送的低级 BPDU 来实现。

  • 允许立即检查某端口上存储的 BPDU 信息是否仍然有效的机制。这将通过新协议数据单元 (PDU) 和根链路查询(本文档中称为 RLQ PDU)实现。

检测间接链接故障

如果某一端口上接收的低级 BPDU 来自我们的指定网桥,则此网桥:

  1. 已丢失根网桥并将开始通告具有更高网桥 ID 的根网桥,该根网桥比我们的根网桥差。

  2. 或者其到达根网桥的路径已增加到我们之上。

http://www.cisco.com/c/dam/en/us/support/docs/lan-switching/spanning-tree-protocol/12014-18c.gif

http://www.cisco.com/c/dam/en/us/support/docs/lan-switching/spanning-tree-protocol/12014-18d.gif

就电气和电子工程师协会 (IEEE) 规范而言,正常行为是只需忽略任何低级 BPDU 即可。快速骨干网将使用它们,因为一旦接收后,就可确定到达根网桥的路径上发生了故障,并可确定您必须使至少一个端口老化。

注意: 网络中没有生成任何低级 BPDU 也可能发生间接链路故障。只需在上图中添加一个集线器即可:

http://www.cisco.com/c/dam/en/us/support/docs/lan-switching/spanning-tree-protocol/12014-18e.gif

链路故障发生在根网桥 R 和集线器之间。B 不会检测链路是否断开并将在声称是新根网桥前等待 max_age。切记该机制仅在网桥检测到直接链路故障时有用。

仅记录指定网桥发送的低级 BPDU。因为该 BPDU 存储在端口上。例如,如果新插入的网桥开始发送低级 BPDU,则不会启动快速骨干网功能。

处理间接链接故障

当在非指定端口上检测到低级 BPDU 时,将触发快速骨干网的第二阶段。不应被动地等待 max_age 来老化可能受故障影响的端口,而应主动立即测试它们是否通过 RLQ PDU 方式引入。RLQ 用于对非指定端口上的根网桥实施某种 ping,并允许快速确认存储于某端口上的 BPDU 是否仍有效或是否需要丢弃。

http://www.cisco.com/c/dam/en/us/support/docs/lan-switching/spanning-tree-protocol/12014-18f.gif

从指定网桥接收低级 BPDU 后,在所有非指定端口(接收低级 BPDU 的端口除外)和自循环端口上发送 RLQ PDU。这是为了检查您是否仍能从您用于接收 BPDU 的端口上的根网桥接收消息。您接收低级 BPDU 的端口被排除在外,因为您已经知道它遭受故障影响、自循环端口并且指定端口均不起作用,因为它们不通往根网桥。

端口收到 RLQ 回复后,如果答案是否定的,则端口会断开与根网桥的连接,您便可将其 BPDU 老化。此外,如果所有其他非指定端口都接收到了否定答案,则整个网桥都将丢失根网桥,并可从头开始 STP 计算。

如果答案确认您仍能通过此端口访问根网桥,则您可立即使我们最初接收低级 BPDU 的端口老化。

在本例中,端口A, B、D和E是SA交换机的非指定端口是根端口,并且其他是阻塞。当 E 接收低级 BPDU (1) 时,快速骨干网会开始加速 STP 重新计算。

发出 RLQ 请求,寻找除 E (2) 外的所有非指定端口上的根网桥 R。此回复将指定可通过这些端口进行访问的根网桥。D收到的RLQ答复指定该D丢失其路径到根R. Age其BPDU立即(3)。端口 A 和 B 接收确认其仍拥有到达 R (4) 的路径的通知。因此,在交换机 S 仍与根网桥相连时,立即老化端口 E 并通过常规 STP 规则 (5) 继续。

http://www.cisco.com/c/dam/en/us/support/docs/lan-switching/spanning-tree-protocol/12014-18g.gif

http://www.cisco.com/c/dam/en/us/support/docs/lan-switching/spanning-tree-protocol/12014-18h.gif

http://www.cisco.com/c/dam/en/us/support/docs/lan-switching/spanning-tree-protocol/12014-18i.gif

http://www.cisco.com/c/dam/en/us/support/docs/lan-switching/spanning-tree-protocol/12014-18j.gif

http://www.cisco.com/c/dam/en/us/support/docs/lan-switching/spanning-tree-protocol/12014-18k.gif

在交换机仅通过不同于 R 的根网桥接收回复的情况下,将该根网桥视为丢失并立即从头开始重新启动 STP 计算。注意,当网桥上的唯一非指定(非自循环)端口为根端口时也会发生这种情况,并且您将接收到此端口上的低级 BPDU。

根链路查询 PDU

RLQ 的两种形式分别为 RLQ 请求和 RLQ 回复。

RLQ 请求在您通常接收 BPDU 的端口上发出,以检查您是否仍通过此端口与根网桥相连。在请求中指定属于根网桥的网桥,RLQ 回复最终将揭晓可通过此端口进行访问的根网桥。如果这两个根网桥相同,则仍存在连通性,否则,不存在。

在以下情况下,接收 RLQ 请求的网桥将立即做出回复,即如果该网桥因为它的根网桥与 RLQ 查询中指定的根网桥不同而知道它已丢失了与所查询根网桥的连接,以及如果它是根网桥。

如果不是这种情况,则它会通过根端口将查询转发至根网桥。

RLQ 回复会在指定端口上进行扩散。RLQ 请求的发送方将其网桥 ID 置于 PDU 中。这是为了确保,当其接收对自身查询的回复时,它不会在其指定端口上扩散回复。

RLQ PDU 的数据包结构与正常 STP BPDU 的数据包结构相同。唯一的差别在于所使用的两个不同 Cisco 专用 SNAP 地址:一个用于请求,另一个用于回复。

标准的 BPDU 格式如下:

DA SA 长度 DSAP SSAP CNTL SNAP PDU

PDU 字段如下:

协议标识符 version 消息类型 标志 根 ID 根路径开销
发送方 ID 端口 ID 消息年龄 最大老化时间 hello 时间 转发延迟

PDU 中使用的消息类型也与标准 BPDU 不同。

使用的唯一字段是根 ID 和发送方网桥 ID。

此 Cisco 专用功能需要在网络中的所有交换机上进行配置,以便处理这些 PDU。

启用快速骨干网功能的情形示例

此方案基于第一个示例,但是,此次将在三台交换机上同时启用快速骨干网。

  1. 第一阶段与前面解释的完全一样。

  2. 一旦 S 从 B 接收低级 BPDU 后,就将开始重新确认其非指定端口,而不是等待 max_age。它将在其根端口上针对根网桥 R 发送 RLQ 查询。

  3. 根网桥 R 收到查询并立即根据指定该方向上仍存在根网桥 R 的 RLQ 回复做出回答。

  4. S 目前已检查了所有非指定端口,并且仍然与根网桥相连。然后,它可以立即使存储于端口 P 的信息老化。P 转换为监听并将开始发送 BPDU。在该阶段,您已经缩短了 max_age,并在稍后应用标准的生成树算法 (STA)。

  5. B 从 S 接收更好的 BPDU(R 的根比 B 好)并考虑将通往 L3 的端口作为根端口。

http://www.cisco.com/c/dam/en/us/support/docs/lan-switching/spanning-tree-protocol/12014-18m.gif

配置 CatOS 和 Cisco IOS 的快速骨干网

使用快速骨干网时,必须在网络中的所有交换机中启用快速骨干网,因为快速骨干网要求使用 RLQ 请求和回复机制,以便将根路径稳定性告知交换机。仅当在交换器上启用了快速骨干网时,RLQ 协议才起作用。另外,如果快速骨干网未在所有交换机上启用,则网络还可能陷入 RLQ 扩散的问题。默认情况下,快速骨干网处于禁用状态。

Catalyst 2900XL 和 3500XL 交换机不支持快速骨干网。一般来说,如果交换机域包含其他支持 Catalyst 交换机以外的交换机,则需要启用快速骨干网。当您在包含 XL 交换机的环境中实施快速骨干网时,根据严格拓扑结构,如果 XL 交换机是线路中的最后一个交换机,并且仅在两个位置连接到核心,则可以启用此功能。如果 XL 交换机的体系结构为菊花链形式,请勿实现此功能。

无需根据 RSTP 或 IEEE 802.1w 配置快速骨干网,因为该机制本就包含于 RSTP 中并将在 RSTP 中自动启用。有关 RSTP 或 IEEE 802.1w 的详细信息,请参阅从 PVST+ 到快速 PVST 的生成树迁移配置示例

适用于 CatOS 的配置

对于运行 CatOS 的 Catalyst 4000、5000 和 6000 系列交换机,请使用以下命令,以在全局范围内针对所有端口启用快速骨干网,并验证配置。

Console> (enable) set spantree backbonefast enable
Backbonefast enabled for all VLANs
Console> (enable) show spantree backbonefast 

! This command show that the backbonefast feature is enabled.

Backbonefast is enabled.
Console> (enable)

要显示快速骨干网统计信息:

Console> (enable) show spantree summary
Summary of connected spanning tree ports by vlan
Uplinkfast disabled for bridge.
Backbonefast enabled for bridge.  
Vlan  Blocking Listening Learning Forwarding STP Active
----- -------- --------- -------- ---------- ----------
 1      0        0          0         1         1

      Blocking Listening Learning Forwarding STP Active
----- -------- --------- -------- ---------- ----------
Total   0        0         0        1           1

BackboneFast statistics 

! The show spantree summary command displays all backbonefast statistics.

-----------------------
Number of inferior BPDUs received (all VLANs): 0
Number of RLQ req PDUs received (all VLANs): 0
Number of RLQ res PDUs received (all VLANs): 0
Number of RLQ req PDUs transmitted (all VLANs): 0
Number of RLQ res PDUs transmitted (all VLANs): 0    
Console> (enable)

适用于 Cisco IOS 的配置

对于运行 Cisco IOS 软件的 Catalyst 交换机,请使用以下命令,以在全局范围内针对所有接口启用快速骨干网。

CAT-IOS# configure terminal
CAT-IOS(config)# spanning-tree backbonefast
CAT-IOS(config)# end
CAT-IOS#

要验证快速骨干网是否启用以及显示统计信息:

CAT-IOS# show spanning-tree backbonefast

BackboneFast         is enabled

BackboneFast statistics
-----------------------
Number of transition via backboneFast (all VLANs)           : 0
Number of inferior BPDUs received (all VLANs)               : 0
Number of RLQ request PDUs received (all VLANs)             : 0
Number of RLQ response PDUs received (all VLANs)            : 0
Number of RLQ request PDUs sent (all VLANs)                 : 0
Number of RLQ response PDUs sent (all VLANs)                : 0
CAT-IOS#

相关的思科支持社区讨论

思科支持社区是您提问、解答问题、分享建议以及与工作伙伴协作的论坛。


相关信息


Document ID: 12014