混合 Cisco STP 功能:BPDU Guard、BPDU 过滤器、PortFast 和 PortFast Trunk

网络工程 思科 转变 以太网 生成树
2021-07-30 00:07:26

我有两个交换机(Cisco 2960),它们之间有一个中继(以太网通道中的两个端口),每个交换机都有一个连接到单独路由器的中继,所有其他交换机端口都是终端设备的接入端口;

R1       R2
|        |
|        |
|        |
SW1 === SW2

我想实现各种 STP 选项、所有端口上的端口快速、BPDU 过滤器和 BPDU 保护。我已经阅读了各种 Cisco 文档和其他著名的网站提要,只有几个是;

我想按如下方式配置所有访问端口,我已经知道并使用这些功能,所以这里没有问题:

int gi0/10
 description End Device Port
 switchport mode access
 switchport access vlan 10
 spanning-tree portfast
 spanning-tree bpdufilter enable
 spanning-tree bpduguard enable

我希望在交换机和路由器之间配置中继端口,如下所示,我已经使用了这个配置并且在这里没有看到任何问题;

int gi0/1
 description Trunk to R1
 switchport mode trunk
 spanning-tree portfast trunk

我找不到任何好的文档是将 BPDU 过滤器和 BPDU 防护作为全局默认值与为portfast trunk. 为了使用 BPDU 防护和 BPDU 过滤器在每个访问端口上保存我的自我配置 port-fast,我可以简单地输入这三个全局配置命令;

spanning-tree portfast default
spanning-tree portfast bpdufilter default
spanning-tree portfast bpduguard default

BPDU 过滤器和 BPDU 防护现在将在所有 portfast 端口上变为活动状态,但是portfast trunk在交换机之间配置的 portfast 端口呢,我希望 BPDU 在交换机之间发送。我找不到任何说明是否全局启用 BPDU 防护/过滤器也会在portfast trunk端口上配置它的文档,这可能会阻止 STP 在交换机之间运行并可能导致这些中继端口errdisable

配置这种情况时会发生什么,是否有任何官方在线 Cisco 文档需要澄清?

1个回答

首先,就像其他人提到的那样,由于运行 Portchannel,您在这里没有桥接循环。也就是说,运行 STP 仍然可以。让我澄清一些关于这些命令如何在 Cisco 交换机上工作的困惑。

spanning-tree portfast trunk

此命令应该在通向非桥接设备的中继端口上运行,例如具有多个 VLAN 的服务器或路由器。此命令不应在通往交换机的中继上运行,因为端口将绕过可能会创建桥接循环的侦听和学习阶段。

如果你有一个这样配置的接口:

interface x/x
spanning-tree portfast
spanning-tree bpdufilter enable
spanning-tree bpduguard enable

BPDU 保护永远不会启动,因为 BPDU 过滤器正在过滤传出和传入的 BPDU。这也意味着端口永远不会丢失其 Portfast 状态,如果入站收到 BPDU,它通常会这样做。如果您移除过滤器,则 BPDU 防护将启动并在收到 BPDU 时关闭端口。这是在端口失去其 Portfast 操作状态之前完成的,因此基本上端口将始终在 Porfast 操作模式下操作。

如果您改为全局应用命令:

spanning-tree portfast default
spanning-tree portfast bpdufilter default
spanning-tree portfast bpduguard default

第一个命令在所有访问端口上启用 Portfast。

全局应用 BPDU 过滤器时,不同之处在于它在静默之前发出 11 个 BPDU。因为通常每 2 秒发送一个 BPDU 并且默认 MaxAge 是 20 秒,这意味着如果另一端有可以处理 BPDU 的设备,那么当旧的 BPDU(如果有一个)时,至少会收到一个 BPDU ) 已过期。

如果在全局应用 BPDU 过滤器时收到入站 BPDU,则端口将停止过滤,并且将失去其 Portfast 状态。

BPDU guard default 命令仅适用于处于 Portfast 操作状态的端口。

如果将这三个命令组合在一起,那么将会发生的情况是,当收到 BPDU 时,端口会丢失其 BPDU 过滤器,然后 BPDU 防护可以启动。端口永远不会丢失其 Portfast 操作状态,因为端口之前已关闭。

所以你看到当应用到接口时 BPDU 保护永远不会启动,但如果你全局应用它可以。

如果您仅全局运行 Portfast 并全局运行 BPDU 过滤器,那么如果 BPDU 进入,端口将失去过滤器并失去 Portfast 运行状态,并将作为正常端口运行。