如何在这个简单的设置中正确配置 STP?

网络工程 思科 生成树 冗余 故障转移
2021-07-12 19:36:48

在下面的网络中,我有两个主机(R1 和 R2)的简单设置。它们都连接到 L2 接入交换机。两台 L2 接入交换机都通过两个接口连接到 L3 分布交换机。关键任务是使 R1 和 R2 之间的通信变得冗余,这意味着如果 L2 接入交换机中的一个发生故障,通信可能不会中断。

我已经知道网络数据包有可能在“上方块”中“循环”,并且您必须使用生成树协议 (STP) 来防止循环。

不幸的是,我不明白如何使用 VLAN ID 正确配置它。我的设置中不使用 VLAN。您是否需要使用它们来使 STP 工作?

R1 和 R2 都是 Cisco Catalyst 7200 路由器。SW1 和 SW2 都是通用 L2 交换机。ESW1 和 ESW2 是 L3 交换机,它们运行 Cisco 3725 IOS。在 GNS 中,它们被称为 EtherSwitch。

整个设置是在 GNS 1.1 中完成的。

我的网络的基本设置

2个回答
  1. user4565 提出了一个非常重要的观点,您需要冗余连接。您可以在 R1/R2 上游拥有世界上所有的冗余,如果 R1/R2 和 SW1/SW2 之间的链路出现故障,则相应的 R 仍将处于脱机状态。

添加以下连接以获得最佳冗余:

  • R1 <=> SW2
  • R2 <=> SW1

现在您可以失去 SW1 或 SW2,并且仍然可以连接到您的 R。

  1. 正如 user4565 所说,在 ESW1 和 ESW2 之间添加另一个中继 - 更多的冗余并不是一件坏事。

  2. 如果您决定使用多个默认 VLAN,请确保您的所有中继链路都承载这两个 VLAN。


只是为了澄清一些额外的事情,如果你有兴趣:

您将永远是一个本地 VLAN,一个永远存在(默认为 VLAN 1)。

除非您正在运行一些非常古老的设备,否则 Cisco 通常会在 PVST+ 或 RPVST+ 的默认模式下运行 STP。这意味着您配置的每个 VLAN 都将运行自己的 STP 实例(PVST = Per Vlan Spanning Tree)。这很有用,因为假设您有 2 个 VLAN,即 VLAN 1 和 VLAN 10。如果 VLAN10 出现问题,它会相应地调整路径,而让 VLAN1 完全不受影响,这意味着 VLAN1 的服务中断为零。

只是更旧的 STP 上下文,过去只有一个 STP 实例运行,无论您有多少个 VLAN。这意味着,如果 VLAN1 中的链路出现故障,所有其他 VLAN 都会中断,因为 STP 必须重新计算无环路路径。这就是为什么 PVST 如此重要的原因。

随着每个 VLAN 拥有自己的生成树实例,PVST+ 还添加了一些其他功能。重要的是,备用端口。让我们看看在发生中断事件时旧版本的 STP 与 PVST+ 的运行方式有何不同,如果您有两个接口,连接相同的两个设备(在每个 VLAN 中,所以假设您只有 VLAN1)。

例子:

  • R1 Eth1/1 <=> SW1 Eth2/1
  • R1 Eth1/2 <=> SW1 Eth2/2

较旧的 STP:

  1. 重要提示:STP 计算时,只能有一条路径,所有其他路径都会自动阻塞,这就是 STP 防止环路的方式。

    • R1 Eth1/1 <=> SW1 Eth2/1 - 转发
    • R1 Eth1/2 <=> SW1 Eth2/2 - 阻塞

那个阻塞端口什么都不知道,如果它是 up 的,它只在 STP 需要重新计算时使用。

  1. 2 个中的第 1 个链接以某种方式断开(关闭链接、电缆被切断、电缆故障等)
  2. STP 将通知整个 STP 域刷新其整个拓扑并重新计算所有路径。导致服务中断。
  3. STP 重新计算后,原来是 BLOCKING 的端口在进入 FORWARDING 之前会经过 LISTENING、LEARNING 状态。这可能需要一些时间,从而导致停机。

    • R1 Eth1/2 <=> SW1 Eth2/2 - 转发

PVST+

  1. 重要提示:当 PVST+ 计算时,您连接的那些额外接口会发生一些不同的情况。如果 R1 有两个端口连接到 R2

    • R1 Eth1/1 <=> SW1 Eth2/1 - 转发
    • R1 Eth1/2 <=> SW1 Eth2/2 - 备用

与PVST+的不同之处在于初始计算,当建立无环拓扑时,面向根桥上游的冗余端口将作为备用端口。这意味着它知道备用端口是通往根网桥的一条路,所以如果主链路出现故障,它不需要重新计算——它可以立即跳转到 FORWARDING 状态并照常推送流量,而不是被强制再次运行所有阶段。

  1. 链接 1 of 2 以某种方式中断。
  2. R1 Eth1/2 立即切换到转发。

    • R1 Eth1/2 <=> SW1 Eth2/2 - 转发
  3. 没有服务中断。

希望这会有所帮助,如果有点啰嗦,我深表歉意 - 但它有助于了解您的选择。如果您需要任何说明,请随时询问。

是的,生成树用于防止第 2 层出现循环。

在这个简单的设置中,您可能需要添加一些内容:

  1. 添加另一个将 ESW1 连接到 ESW2 的中继链路。
  2. 将 ESW1 stp root 设为主要,将 ESW2 stp root 设为次要。

然后,您可以在 sw1 和 sw2 上检查 vlan1(默认)的生成树根路径。并为您的学习添加许多其他测试 vlan。

请注意,如果您关闭 sw1,您的客户端 R1 仍将被切断,因为它只有一个链接(路径)。

您还可以考虑在您的场景中研究/添加 vtp 版本 2,以将您在 ESW1 或 ESW2 上创建的 vlan 传播到接入交换机。