如何检测非托管交换机创建的环路?

网络工程 思科 转变 杜松
2021-07-28 22:29:51

有没有办法检测接入端口上连接的非管理型交换机?

在生成树中继托管网络中,我查看端口上的 bpdu 错误,这些错误通常表明非托管交换机作为 PC 不应发送这些错误。

我还查看了表明交换机资源不足的日志,因为如果未检测到循环可能会使 CPU 过载。

你知道任何其他或更好的方法吗?

我主要对与 Cisco 和 Juniper 合作的解决方案感兴趣,但也欢迎采用与供应商无关的方法。

我问,因为接入端口使用两个 vlan(数据和语音),并且通过非托管交换机发送的任何帧都会丢失语音 vlan 标签,这会导致电话出现问题。

2个回答

防止非管理型交换机和环路:

最好的解决方案是完全阻止非托管交换机,除非您明确允许。这可以通过在访问端口上启用 bpduguard 来完成,这将禁用接收 bpdu 数据包的任何端口。

例子:

CISCO: Switch(config-if)#spanning-tree bpduguard enable
JUNIPER: user@switch# set ethernet-switching-options bpdu-block interface ge-0/0/0.0 shutdown

如果您希望保留网络上的非托管交换机但保护 STP 和防止环路,您可以启用称为根保护的功能。这将允许该端口仍然接收 bpdu 数据包,但它不会转发那些试图改变 STP 的数据包。

例子:

CISCO: Switch(config-if)# spanning-tree guard root
JUNIPER: user@switch# set protocols rstp interface ge-0/0/7 no-root-port

限制交换机端口的MAC地址数量或将MAC地址列入白名单。

例子:

CISCO: switch(config-if)# switchport port-security maximum 2
     Switch(config-if)# switchport port-security mac-address 0000.000.000.0000

JUNIPER: user@switch# set interface ge-0/0/1 mac-limit 10
user@switch# set interface ge–0/0/2 allowed-mac 00:00:00:00:00:00

检测非管理型交换机:

方法一:查看MAC地址表,如果你看到多台机器连接在一个端口上,这很好地表明它们是连接到该端口的交换机。

方法 2:查找运行 STP 的端口

例子:

Switch# show spanning-tree vlan 1-4094 | inc STP

方法 3:使用 Cisco Debug 查看哪些端口正在接收 bpdu

例子:

CISCO: Switch# debug spanning-tree bpdu receive
JUNIPER: user@switch> show spanning-tree statistics interface

通常,非托管交换机不会发送 BPDU,因为它不支持生成树。所以你只能看到你自己的 BPDU 在另一个端口上返回给你。如果您正在运行生成树,您可以使用 Cisco 上的 BPDU 防护通过关闭接口来停止循环:

interface GigabitEthernet0/1
  spanning-tree bpduguard enable

在瞻博网络上:

set rstp bpdu-block-on-edge interface ge-0/0/0.0 edge

另一种监控和预防它们的方法是实施风暴控制,它可以帮助您检测和阻止广播、多播和未知单播洪水。

思科和瞻博网络都支持这一点。在 Cisco 上,您可以使用:

interface GigabitEthernet0/1
  storm-control broadcast level 0.01

此处的级别表示可用于广播/多播/未知单播流量的总接口带宽的百分比。然后,您可以针对超过此级别时发生的情况设置操作:

storm-control action shutdown

关闭端口。或者,

storm-control action trap

发送 SNMP 陷阱(有关更多信息,请参见下文)。

在瞻博网络上,您可以使用:

set ethernet-switching-options storm-control action-shutdown

在瞻博网络上,命令是:

set ethernet-switching-options storm-control interface xe-0/0/0 bandwidth 1000

速率以 Kbps 为单位。

如果您想更加主动,可以考虑为生成树和风暴控制事件配置 SNMP 陷阱。然后,当发生环路时,您的交换机可以将陷阱消息发送到中央 SNMP 陷阱服务器。然后,该 SNMP 陷阱服务器可以向您发送警报(通过邮件、SMS、IRC 或您现有的任何方式)。

在 Cisco 上,您可以像这样配置 SNMP 陷阱:

snmp-server enable traps port-security

在瞻博网络上:

set snmp trap-group GROUPNAME link