RSTP 分离

网络工程 路由器 IEEE-802.1w IEEE-802.1s
2022-02-21 09:27:13

拓扑:

(环网A)----[路由器A]------(可能是环网C)--------[路由器B]----(环网B)

目标

  • 我需要路由器 A 始终是网络 A 的 RSTP 根桥。
  • 我需要路由器 B 始终是网络 B 的 RSTP 根网桥。
  • 不深入细节,网络 C 并不总是存在;或者至少 A 和 B 的链接并不总是存在。
  • 我不在乎路由器 A 和 B 在网络 C 中扮演什么角色。

我目前已经为 RSTP 配置了这个。但是发生的情况是,当网络 C 将路由器 A 连接到路由器 B 时,会发生 TCN,并且网络 A 和路由器 A 中的设备会将路由器 B 声明为根桥(它具有最低的 MAC)。由于网络 C 来来去去,它会在重新配置/收敛期间导致中断。

那么这里的正确解决方案是什么?一些想法:

  • 关闭路由器 A 和 B 上面向网络 C 的端口上的生成树
  • MST ......我从未使用过它,因为它似乎是将各种 VLAN 组合成单个生成树实例的一种方式......而这并不是我真正想要做的。不过,它似乎确实支持“区域”或“边界”的概念,这可能就是我所需要的。

一些额外的注释可能会增加清晰度..或可能会使水域浑浊:

  • 我说网络C“可能”是环。这不是现在的戒指,但可能在未来。
  • 我没有意识到我需要做这样的事情,因为我(错误地)假设可路由接口不会从另一个网络中的可路由接口转发 BPDU。我基本上认为 RSTP 域将保留在第 2 层网络中。即路由器 A 将是面向网络 A 的接口上的根网桥,并且可能是网络 C 的接口上的非根(指定网桥?)。

编辑#1:

  • 询问了几个问题,它是否真的是路由器,以及它是什么设备。它是第 3 层交换机/路由器。RuggedCom RX1512
  • 根据一些评论和答案,听起来来自一个网络的 RSTP BPDU 不应该通过路由器并影响其他网络。来自 Ricky 的评论指出:“路由器不参与 STP。(路由器中的交换机模块可能)”。这可能是我的情况。

编辑#2:

快速旁注:如前所述,它是一个 L3 交换机,我将继续使用“路由器”这个词来保持一致。

我正在使用 SVI。有一个 VLAN 和 IP 应用于网络 A 中的接口,类似于面向网络 C 的接口。不同的子网。没有标记或任何事情发生。仅使用 VLAN 和 SVI 来定义网络分离。

这似乎表明 STP 不会在 SVI 之间传播。对?

它在端口(在同一个 VLAN 内)之间切换,并在 VLAN 之间(使用 SVI)或路由端口之间进行路由。STP 与前者相关,但与后者无关,我在上面试图指出这一点。

但这似乎表明它将跨越 SVI。

但是,交换端口都参与单个生成树(对于 RSTP),您需要根据需要对其进行配置。您应该注意,RSTP 与 VLAN 无关,并形成单个生成树。它纯粹在端口级别上工作,就好像您拥有一个完全“扁平”的网络。

我非常同意这一点,我认为这就是我想要做的。

在您的情况下,您应该拆分 STP 域。

SVI 不应该拆分 STP 域吗?这就是我认为会发生的事情。如果这应该发生,我必须有一些错误配置或路由器不兼容(可疑)。

2个回答

由于您使用的是routers,即。L3转发,不需要RSTP/MSTP。xSTP 用于解决使用网桥/交换机进行 L2 转发的环路。

如果您使用的是交换机,那么您可以考虑将 MSTP 与多个实例甚至区域一起使用来分隔不同的 STP 域(以帮助您,我们不会提供有关您的网络拓扑的更多信息)。

bpdu-filter实际上,只需使用和tcn-guard(取决于手头的设备)关闭有问题的端口上的 RSTP - 如果没有多个通往网络 C 的桥接链路,就不存在桥接环路的危险。

如果您真的想保持 RSTP 处于活动状态,请至少使用该root-guard选项来避免获得您不想要的根网桥。

询问了几个问题,它是否真的是路由器,以及它是什么设备。它是第 3 层交换机/路由器。RuggedCom RX1512

如果您使用的是 SVI(绑定到 VLAN 的 IP 地址),则默认情况下 STP 处于活动状态,即使 VLAN 中只有一个端口也是如此。VLAN 中只有一个端口,不需要 STP,您可以在那里安全地停用它。

如果您使用的是路由 (L3) 物理端口,则 STP 不应在其上处于活动状态。

根据一些评论和答案,听起来来自一个网络的 RSTP BPDU 不应该通过路由器并影响其他网络。来自 Ricky 的评论指出:“路由器不参与 STP。(路由器中的交换机模块可能)”。这可能是我的情况。

Ricky 通常是对的,但第 3 层交换机是交换机和(简单)路由器的组合。它在端口(在同一个 VLAN 内)之间切换,并在 VLAN 之间(使用 SVI)或路由端口之间进行路由。STP 与前者相关,但与后者无关,我在上面试图指出这一点。

BPDU 不通过路由器,但它们也不通过(兼容的)交换机。但是,交换端口都参与单个生成树(对于 RSTP),您需要根据需要对其进行配置。交换机不够聪明,无法自行为您做出决定。

您应该注意,RSTP 与 VLAN 无关,并形成单个生成树。它纯粹在端口级别上工作,就好像您拥有一个完全“扁平”的网络。在您的情况下,您应该拆分 STP 域。在其他情况下,您可以改用 MSTP 并定义区域来解决此类问题。

为了完整起见,MSTP 还允许多个实例将 VLAN 分组。这样,每个 VLAN 仍可保证无环路,但并非所有 VLAN 都需要使用与 RSTP 相同的生成树。

重新编辑#2

对于符合 802.1D 的交换机,无论其配置如何,BPDU 都不会在端口之间交叉。[*] 每个网桥端口都参与共同构建生成树,与其他端口一起发起、共享和使用信息。

[ ]* '哑巴',不合规的交换机实际上可能会转发 STP BPDU,但这些消费级的东西在这里是题外话,你的 L3 交换机不是这样的东西。

无论 VLAN 配置如何, RSTP始终创建单个生成树。默认情况下,MSTP 以与 RSTP 兼容的方式执行完全相同的操作(RSTP 端口参与 MSTP 的公共生成树CST)。您需要拆分 STP 域- 通过停用相关端口上的 RSTP 来实现。

SVI 不应该拆分 STP 域吗?

SVI 与 xSTP 无关。您可能会想到 Cisco 专有的RPVST+,它为每个 VLAN 创建一个独立的生成树。但这不是 IEEE xSTP 的工作方式。

关于以太网环

您似乎正在考虑在网络 A 中创建一个。这对于具有适当配置的路由网络来说很好,但对于桥接网络来说显然是不行的虽然小环对 xSTP 来说不是什么大问题,但大环可能很快就会变得太大。xSTP 设计用于处理最大直径的七个网桥,超出此范围可能无法可靠地收敛。

此外,与树中相同数量的链接相比,环往往表现不佳。以太网桥接需要一棵树才能工作,您应该像这样构建网络:中间有一个核心交换机(或两个用于冗余)和一个(接入)或两层交换机(分布和接入)。

您首先拥有的是交换机,其次是路由器。它上的每个端口都是一个交换端口,并且将参与同一个生成树。

选项有限:

  • 在“路由”端口上禁用 STP - 不推荐
  • 如果可能,将端口设为非交换端口 ( no switchport) - 这将使其成为路由端口,并将其从 STP 中取出。
  • 为不同区域的每一侧配置 MST - 有效地对 STP 进行分区(无需配置任何实例,但如果可能,禁用 RSTP 兼容性)