![第 2 层环路避免:三台交换机串联](https://linux22.com/image/801559/%E7%AC%AC%202%20%E5%B1%82%E7%8E%AF%E8%B7%AF%E9%81%BF%E5%85%8D%EF%BC%9A%E4%B8%89%E5%8F%B0%E4%BA%A4%E6%8D%A2%E6%9C%BA%E4%B8%B2%E8%81%94.png)
我知道这看起来像是一个家庭作业问题,但它实际上是一个更大的项目(和网络)的一部分,需要将其分解成块,这样我才能清楚自己在做什么。我从未使用过 [R/M]STP,之前只设置过静态 LAG,所以我不太确定我在这里需要什么。
我有三个交换机,它们全部通过 VLAN 标记位于同一个广播域内,通过每个 LAG 组由 2 个铜千兆以太网组成的 LAG 组互连。
假设这些交换机支持 LAG/LACP/*STP/802.1q VLAN 标记;为了便于比较,尝试在此尽量减少供应商专有扩展,但如果有供应商“重新标记”的开放标准,或值得一提,请随意这样做。
目标是:
- 通过 B 和 C 为交换机 A 提供冗余上行链路
- 在两个上行链路上实现负载平衡/增加带宽(如果可能,即 4 x GbE LAG 组或 2 x 2 GbE LAG 组“主动/被动”,如果有意义的话)
我不确定的是:
我认为这个循环是这样工作的:来自机器 B1(在交换机 B 上)的 ARP 请求查找属于机器 A1(在交换机 A 上)的 1.2.3.4,该请求将从 A 到 B 和 A 到 C 的上行链路到达交换机 A。交换机 A(我假设)将首先通过直接 B 到 A LAG 上行链路接收广播,但会从两个上行链路 LAG 端口发回响应(即 LAG A 到 B 是端口 1/2,LAG A 到 C 是端口 23/24),这让交换机 B 非常困惑。我对这个循环的解释正确吗?
如果我的断言 #1 确实是一个循环,那么我需要 *STP。从我读到的内容来看,STP 已经过时且速度慢;RSTP 要快得多(除了最大的网络之外,在所有网络上可能都没有实际意义?这似乎是 Intarweb 所说的)。然后是 MSTP,这让我很困惑:似乎允许多个 VLAN 有多个 STP 组,但假设我只处理一个 VLAN(2),这是必要的吗?如果我添加第二个 VLAN 来承载所有 3 个交换机会怎么样?
我很确定 M-LAG(我想这就是它的名字)将允许跨交换机的 LAG,但我不清楚这是否会是一个包含 4 个以太网连接的 LAG,包括交换机 A 的 A 到 B(2)和 A 到 C(2)上行链路?
我曾在某个论坛上读到(不记得在哪里了),LACP 将消除对 *STP 的需求,因为它是“动态的”,并且会根据负载平衡算法“知道”哪个上行链路转发广播/单播流量,但后来有人插话说事实并非如此。
归根结底,考虑到 LAG/LACP/*STP 的缩写和我的拓扑,我应该在这里从高层次上做什么?
答案1
说实话,我的看法是,故意在网络设计中设计一个循环并不是一个好的设计。生成树可能是管理、设计、实施、故障排除等方面的一个主要痛点。
LACP 和 STP 是两个完全不同的东西。从非常高的层次上讲,LACP 允许您创建 LAG - 它将使用多个接口并将它们视为单个链路。通常,这需要端口连接到相同的两个交换机,这意味着您不能在多个交换机之间使用 LACP 传播 LAG。如果您已使用 LACP 将这些端口配置为 LAG,则在使用多个链路连接两个交换机时,LACP 可以防止环路。生成树旨在防止环路破坏您的网络。它通过检测拓扑中的环路来实现这一点,如果检测到环路,它将主动阻止一个或多个链路上的流量。这需要一些思考才能正确执行,并且根据您正在运行的 STP 版本,每个 VLAN 可能有所不同。
您对环路工作原理的想法是错误的。一旦以这种方式连接交换机,如果您正确配置了生成树,它将关闭其中一个 LAG。关闭哪一个将取决于您的根桥在哪里。因此,假设生成树关闭了交换机 A 和 B 之间的 LAG。来自交换机 B 的流量首先需要转到交换机 C,然后通过该 LAG 流向交换机 A。如果您以不同的方式配置了生成树,您可以让它关闭交换机 A 和 C 之间的 LAG。在这种情况下,从交换机 A 到交换机 B 的流量将直接从交换机 A 流向 B。但是,从交换机 A 到 C 的流量需要先经过交换机 B。如您所见,您的环路越大,流量在到达目的地之前可能需要进行的跳数就越多,具体取决于源/目的地以及生成树禁用的链接。生成树不会动态启用/禁用链接以查找最短路径。
那么,这与你的目标有什么关系呢:
- 从技术上讲,这种设计可以实现冗余。故障转移不会立即发生,因为生成树需要自行完成。
- 根据您的交换机,您不会获得任何更大的带宽或负载平衡。正确配置了生成树的标准交换机将禁用其中一个 LAG。如果它没有禁用 LAG,您将出现循环,并且您的网络将变得非常缓慢。
您还可以通过哪些其他方式实现这些目标?这取决于预算/需求/地点
- MLAG 确实有助于解决许多这些问题。接近完全冗余,没有浪费带宽等。但是,每个供应商的做法都略有不同,因此请务必研究他们如何/什么/为什么实施它。思科在 6500 交换机系列中有 VSS,在 Nexus 系列中有 vPC。Juniper 有他们的虚拟机箱,Extreme 有他们的版本(不记得名字了)。您可以查看带有几个 FEX 模块的 Nexus 交换机(或多个 Nexus 交换机和一个带有 vPC 设置的 FEX 模块以连接到每个 Nexus)。采用 MLAG 路线会开辟许多不同的可能性,并且通常需要更大的预算和了解产品的人来对站点进行适当的评估,并需要设计适当的解决方案。
- 购买具有专用背板连接的可堆叠交换机解决方案。这将交换机连接在一起形成一个逻辑交换机,通常交换机之间具有更大的共享背板。将为您提供冗余和性能。
- 购买机箱交换机解决方案。同样,共享背板,通常比大多数可堆叠解决方案具有更好的硬件和功能以及更高的性能。由于您只有一个机箱,因此可能看起来并不那么冗余,但我几乎从未见过机箱完全失效。您可以设置冗余监控模块,并可以使用多个线卡来提供端口数。
这是对这些技术的相当高层次的概述。如果您愿意,您可以深入研究生成树、MLAG/vPC/等。但是,如果这是较大网络的一部分,并且您正在研究 MLAG 等,那么您可能应该在员工/合同中聘请对相关技术更熟悉的人。