在访问端口上使用 bpdufilter 而不是在主干上生成树循环?

网络工程 思科 生成树 树干 IEEE-802.1w
2022-02-13 20:28:37
┌─────┐      ┌─────┐
|  A  ┼------┼  B  |
└─────┘      └┬───┬┘
              └---┘   <-- loop

看上面的图。这是连接开关 A 和 B 的测试设置,以及测试回路

A:带有rstp的cisco交换机

全局配置

spanning-tree mode rapid-pvst
spanning-tree portfast default
spanning-tree portfast bpduguard default

端口配置

switchport mode access
udld port aggressive

B:阿尔卡特朗讯全向开关

  • 尽可能愚蠢
  • 通过所有交通
  • 没有stp
  • 过滤 bpdu(默认设置,不是开玩笑)

当我在 B 上创建循环时,整个系统就淹没在广播 strom 中(因为开关 B 过滤了 bpdu)。

但是当我将 A 上的端口设置更改为中继(没有其他更改)时,stp 确实启动了。

switchport trunk encapsulation dot1q
switchport mode trunk
switchport nonegotiate

为什么?我不明白,有人可以向我解释一下吗?我可以保护我的网络免受阿尔卡特朗讯的这种“功能”的影响吗?(除了把我所有的端口都放在主干)

2个回答

在我的第一个测试设置中,我使用 vlan 2 进行测试,忽略 vlan 1

根据我得到的提示,我已经删除了所有的 vlan,并且在两个交换机上只使用了 vlan 1,当全能交换机(B)(过滤器 bpdu)插入时,在中继和访问端口(环路)上会看到相同的行为。在自身上循环或在 A 的另一个端口上循环。这更一致。

当我在交换机 A 上再次添加 vlan 2 并将其设置为中继上的本机时,stp 工作。日志 (A) 显示如下:

%SPANTREE-2-BLOCK_PVID_PEER: Blocking FastEthernet0/1 on VLAN0001. Inconsistent peer vlan.

我假设是未标记的 bpdu(来自 A 上的 vlan2)从 B 转发回 A 上的 vlan1 并触发了 stp。

我认为这里不容易解决

风暴控制有助于缓解环路的影响。

第 2 层安全性似乎比我预期的要困难......

谢谢大家帮我解决这个问题!

当交换机 A 运行 STP 时,交换机 B 不是。STP 检测本地环路和 STP 设备之间的环路,但它无法检测不使用 STP 的设备(或端口)上的环路(编辑:除非它们也转发 BPDU)。

因此,A 无法检测到(远程)循环 - 广播将环绕、反射并窒息网络。从 A 的角度来看,B 是一个高带宽广播源 - A 无法判断这是一场风暴,也无法判断它是在反射广播。

除了广播风暴,A 和 B 的 MAC 表也会因为来自错误端口的反射广播而变得不稳定。因此,如果 AB 链路的带宽低于 A 的其余端口,并且广播风暴不会使其他链路窒息,您将遇到错误转发帧的问题。

RPVST 通过在每个带有标记的 VLAN 上发送 STP BPDU 来工作。当 BPDU 被标记(不符合 802.1)时,Omniswitch 似乎不再识别它们并将它们传递给环路,将它们反射回 Cisco,然后检测本地环路,阻塞链路。

如果您使用 RSTP 或 MSTP 而不是 RPVST,Omniswitch 可能会识别那些未标记的 BPDU 并继续过滤它们。

恕我直言,如果 Omniswitch 不支持合理的 STP 变体,您应该更换它。