桥接环路是如何发生的?

网络工程 交换 生成树 环形
2022-02-04 17:35:12

据我了解,STP 用于防止网桥(/交换机)环路,这通常发生在交换机上的冗余链路的情况下。

但是怎么会出现循环导致广播风暴呢?

如果交换机在所有端口上泛洪和转发,但在它获得帧的端口上,怎么会发生循环?

2个回答

A连接到B连接到C连接回A你现在有一个循环。

到达 A 的边缘端口的新帧被发送到BC的链路。他们不会把它交还给A,但他们会把它交给对方。由于帧不是来自通向A的端口,因此它们都将帧传递给A

交换机不会保留他们看到的每一帧的哈希表。所以A不会知道它传递给其他人的帧已经返回。同样,BC不会知道它们在它们之间传递了相同的帧。然而,生成树确实会跟踪它发送的 BPDU,因此它可以识别它自己的 BPDU。(即使在同一个端口上——又名“自环”)

如果更简单,可以想象一个带有连接两个端口(端口 1 和端口 8)的跳线的单个交换机。离开 P1 的每一帧都到达 P8。因为它进入 P8,它可以(并且将会)回到 P1。

((这一切都假设该帧是广播或淹没的未知单播。如果 mac-address-table 知道该帧的特定边缘端口,它只会转到该端口。))

在具有多个交换机的拓扑中可能会出现环路。

基本上有 2 个交换机,如果您在这些交换机之间连接 2 条电缆(没有 ling 聚合),那么您就有一个环路。

使用 3 个开关 A、B 和 C,以及 AB 之间的一根电缆,AC 之间的一根电缆和 BC 之间的一根电缆,您也有一个回路。

我们为什么要设置这个?要有某种韧性。

在实践中,它也(经常)发生在 IP 电话和不知情的用户身上。由于 IP 电话嵌入了一个小型 2 端口交换机,因此用户碰巧将两个端口都连接到网络插座,并且没有适当的网络配置,这可能会使您的网络瘫痪。

现在为什么会引起广播风暴?

假设您有 2 个带有 2 根电缆的开关,连接在

交换机 A 端口 1 - 交换机 B - 端口 7 交换机 A 端口 2 - 交换机 B - 端口 8

  • 当交换机 A 在端口 13 上接收到广播时,它将在端口 1 和 2(以及除 13 之外的所有其他端口)上发送广播

  • 交换机 B 在端口 7 上接收广播,然后在所有其他端口上将其发送回,以此类推在端口 8 上

  • 交换机 A 在端口 2 上接收并在端口 1 上发送回

.. 等等。

反之亦然,交换机 B 也在端口 8 上接收到第一次出现,然后在端口 2 上将其发送回,等等……

您现在有 2 个数据包无限循环地双向传输,因为以太网没有 IP 之类的 TTL(生存时间)概念。