STP Toolkit

快速收敛:

  • Port Fast

生成树安全:

  • Root Guard
  • BPDU Guard
  • BPDU Filter
  • Port Security

防环:

  • Loop Guard

Port Fast

该功能的配置分为全局和接口配置,在全局模式下,交换机的所有Access端口均会启用Port Fast功能。端口配置只对单一端口生效。
该功能不能配置在Trunk链路上,若配置在Trunk链路上,极有可能导致生成树环路的产生。

BPDU Filter

该功能同样也有全局与接口配置:

  • 全局(spanning-tree portfast bpdufilter default——Cisco命令)
  • 接口(spanning-tree bpdufilter enable——Cisco命令)

全局配置只会在启用了Port Fast功能的接口上启用,在全局模式下,交换机不会过滤传入的BPDU,但会过滤大多数(并不是全部)传出的BPDU。
当端口启动时,会发出一些BPDU,若收到了BPDU,Port Fast和BPDU Filter功能将被关闭,交换机将参与生成树计算。

接口配置将无条件的过滤传入和传出的BPDU,无论是PortFast状态还是Access或Trunk模式。这相当于在该端口关闭了STP,这十分危险。

BPDU Guard

该功能阻止端口接受BPDU。如果端口仍然受到BPDU,则将该端口置于err-disabled状态,如果配置的Port Fast端口收到了BPDU,则说明存在无效配置,该功能提供了对无效配置的安全响应,因为管理员需要手动设置才能才能将端口重新投入使用(该功能也能够防止外来的恶意BPDU攻击)。

该功能具有两种配置方法:

  • 全局配置(spanning-tree portfast bpduguard default——Cisco命令)
    • 启用状态取决于Port Fast状态。
  • 接口配置(spanning-tree bpduguard enable——Cisco命令)
    • 无条件启用BPDU Guard,无论是PortFast状态还是Access或Trunk模式。

有两种办法可以将端口从err-disabled状态转变为正常状态

  • 手动开启端口(no shutdown)
  • 使用 errdisable recovery cause bpduguard,配置err-disable状态自动恢复。 默认恢复间隔为 300 秒,但可以使用 errdisable recovery interval 命令更改。

Root Guard

根保护功能只能启用在指定端口上,该功能能够防止外来的恶意BPDU攻击。

  • 如果交换机在启用根保护的端口上收到更优的BPDU,根保护将会把端口移动到根不一致(root-inconsistent)的STP状态。
  • 这种根不一致状态处于实际上是Listening状态,没有流量能够通过这个端口转发,通过这个方式来守护根桥的位置。

Root Guard vs BPDU Guard

如果设备上启用了Port Fast,那么BPDU Guard会在接受BPDU时禁用此端口。它有效的禁用了此端口后面的设备参与STP。只有手动重新启用阻塞状态的端口,或者配置自动恢复的时间。
而Root Guard的作用是,只要设备不尝试成为根,就允许设备参与STP,该功能对端口阻塞的恢复是自动的,一旦违规设备停止发送更优的BPDU,端口就会被恢复。

Loop Guard

STP将物理拓扑上的冗余分解为无环路、树状拓扑。STP的最大问题是某些软件故障会导致它失败。
在下图的情况中,交换机B发送的BPDU无法到达交换机C,交换机C的端口转变为指定端口并开始转发数据,则形成了网络环路。

如果开启了Loop Guard功能,交换机C上的端口将在Max_age计时器到达后转换为loop-inconsistent的状态,该状态无法通过用户流量,自然也就不会产生环路(loop-inconsistent状态实际上就是Blocking状态)。该功能应开启在根端口和备用端口上。