鉴于生成树已失败(或您没有任何生成树)并出现了以太网环路,诊断问题出在哪里的最佳方法是什么?

哪个交换机?那条电缆?等等。

评论

有什么答案对您有帮助吗?如果是这样,您应该接受答案,这样问题就不会永远弹出来寻找答案。或者,您可以提供并接受自己的答案。

#1 楼

好的,所以假设您具有如下拓扑:

          SW1
         /   \
        /     \
       /       \
PC A--SW2-----SW3--PC B


由于某种原因,存在桥接环路,STP被禁用或有人在错误的地方等应用了过滤器

PC A希望与PC B进行通信。它首先是PC B MAC的ARP,目的是通过MAC ffff.ffff.ffff进行广播。因此,帧到达SW1和SW3。 SRC MAC是PCA。然后SW1将帧泛洪到SW3,SW3将泛洪从SW2到SW1的帧。

SW1和SW3在第一个帧进入时就学习了PC A的MAC。当第二个方向相反时,它必须重新学习。由于这些事件发生的速度如此之快且反复发生,因此您将看到日志消息抱怨MAC抖动。诸如“ MAC FLAP 0000.0000.0001在Gi0 / 24和Gi0 / 23之间摇摆”之类的东西。这是一个循环的好兆头。

然后您可以做的是尝试跟踪此MAC。尝试查找同一子网中设备的ARP缓存,并查看该设备具有的IP。因此,使用MAC时,您可以尝试使用sh mac-address-table或IP对其进行跟踪。也许您有一个包含所有IP及其连接位置的列表。从DHCP服务器,您也可以尝试在其中查找主机的来源。如果启用了选项82,那将是一个很大的帮助。

其他迹象表明CLI将会非常缓慢。 CPU负载将非常高。交换机几乎可以完成ASIC中的所有操作,因此,如果交换机的CPU负载超过50%,那可能就不好了。您应该实施SNMP监视,并注意CPU高负载。还要查找MAC摆动消息。如果开关具有环路,则LED可能会疯狂闪烁。

您可以采取以下措施来防止环路:


启用STP! (duh)
对CPU负载的SNMP监视
对某些事件启用SNMP陷阱,例如STP拓扑更改
对端口启用风暴控制以限制广播
不要在L2拓扑中跨太多VLAN
启用端口安全性并限制每个端口的MAC地址数量
如果运行DHCP,请启用Option82


评论


我不得不说CPU负载项目让我有些惊讶。尽管我在处理循环方面的所有经验都在ProCurve装置上,但我之前从未在桥接循环中看到过。对他们来说,CLI似乎从来都不迟钝。

– Paul Gear
13年5月16日在22:50

有趣。也许惠普在做事上与思科有所不同。可能影响它的某些因素可能是循环所涉及的接口速度。如果是单播或广播。交换机是否在VLAN中具有SVI。

–丹尼尔·迪布(Daniel Dib)
13年5月17日下午4:55

是的-很奇怪我本来以为所有这些东西(交换机IP问题除外)都在硅片中...

– Paul Gear
13年5月18日在5:34

实际上,考虑到这一点,我几乎可以确定,在受影响的VLAN中我们从来没有交换机IP。我们在该站点上的所有交换机到交换机链接都未在没有任何管理IP的传输VLAN上进行标记。

– Paul Gear
13年5月18日在5:36

#2 楼

我的一位用户最近从某人的办公桌上借了一个桌面交换机。返回交换机后,他们插入了附近所有松散的以太网端。这些电缆中的一根连接到网络,另一根是同一根电缆的两端。桌面交换机已插入网络,也已插入自身。交换机没有STP,因此从网络传入的广播将在另一条电缆上双向传播。当然,每次在环路端口上收到广播时,它都会被复制回到网络中。它使HSRP异常发狂,并且由于设计不佳,还导致整个园区的OSPF邻接故障。这立即导致我们进入正确的布线室。从那里开始,这是一个基于端口LED,接口pps和日志的消除过程。不用说,此后我重新组织了整个校园。最好的预防措施可能是bpduguard。从那以后,我就部署了该功能,而且非常简单。在我的电子邮件中获得可禁用的syslog简直就是幸福。

评论


不幸的是,如果您将WIFI接入点连接到各种交换机,则MAC Flaps日志消息将无用,因为从一个AP漫游到另一个AP的用户将引起此类消息。 BPDU Guard(或类似的机制)必须在访问交换机上使用。如果您很懒,还可以输入“ errdisable recovery cause bpduguard”语句,该语句会导致处于错误禁用状态的端口在5分钟后自动进入转发状态,因此断开连接后无需在配置中重置端口冒犯性的电缆

– Remi Letourneau
2013年9月9日14:46在

>从那里开始,这是一个基于端口LED的消除过程……啊,达斯·布林肯利希滕(Das Blinkenlichten)。

– Arthur Kay
2015年8月31日在2:42



#3 楼

对于大多数设备,CPU的使用率会达到100%,唯一可以做的就是断开冗余物理连接。一旦CPU稳定下来,您就可以将链接一个接一个地插入,看看哪个重新引起了环路。

对于大型机箱(例如6500),我不得不将所有刀片,然后一次插回去。一旦确定了哪个刀片,就必须拉出所有单独的链接(16个GBIC),并将它们一次又放回一个。永远不要玩。

一些更现代的设备具有受保护的CPU,这应该使其更易于处理-您仍然可以与盒子互动。到那时,查看交通计数器等来确定发生故障的链接成为可能。

#4 楼

我最近刚开始在一家公司使用每个端口的广播限制。如果端口在广播时通过的容量超过其容量的5%,则交换机会将其置于ERRDISABLE。

将无线网络桥接到LAN上。

#5 楼

对于IOS:

您可能会在端口之间摆动MAC地址。.在以下位置查找MAC_MOVE_NOTIFICATION(或类似的)错误:

sh logg


现在查找端口:

sh int g0/1 controller


查找不常见的MulticastBroadcast数字。任何冲突都是一个不好的信号。

最后但并非最不重要的是,您不能登录,因为CPU已被伪装:)

sh proc cpu


开关在这里怎么样?如果仅是L2交换机,则您不需要高于〜10%的值

#6 楼

如果您是不受管理的,或者等同于不受管理的(缺少登录详细信息,或者不了解交换机操作系统等),交换机和网桥循环,我将描述如何手动查找循环。
这也解决了原始问题“您没有STP”的根本问题。

用于故障定位此循环的基本算法与STP相似,只是您没有访问权限发送带有端口ID的BPDU。


首先,将具有数据包转储/嗅探功能的设备连接到其中一个交换机中的端口。现在,该设备已成为树的根设备。

如果您必须在多个位置进行故障定位,例如在“校园”或类似的地方,您可以通过使用便携式ssh客户端远程登录到数据包转储机器来获益。

我个人将Linux笔记本电脑与将tcpdump放到屏幕上,然后从ipad或手机上将其SSH进入。链接速度使每当断开与循环源设备的路径的连接断开时都容易注意到差异。切换。

由于存在多个循环链接馈入根设备的情况,因此必须首先同时移除所有连接的端口。
一个接一个地重新连接端口,如果在任何时候再次出现数据包突发,请将该端口连接到另一端的已连接交换机。
重复步骤1,直到找到环形端口为止),因此无法在您的手册树中进行进一步的迭代。
解决了此交换机中的环路问题后,返回到树中的上方交换机,然后继续执行步骤2。此递归一直持续到最后一根电缆重新连接到根交换机中。 >

这是一个完全详尽的手动搜索环形端口的方法。所有连接的(链接)端口,然后一个接一个地重新连接是不必要的。如果“树”上只有一个端口对是循环的,则只需一次断开一个端口就可以找到它。变成我上面描述的。

#7 楼

哎哟。但是好吧,我可以想到两种解决方法...

注意:如果交换机具有端口指示器,则您应该能够查看哪些端口最活跃。这些是首先要看的。希望对电缆进行标记,以便您可以在使用同一根电缆的两个交换机上搜索找到两个繁忙端口的低端成果。统计信息,查找最繁忙的交换机和最繁忙的端口。然后检查一下电缆。

...如果您有未标记的电缆,请在检查最繁忙的端口时开始进行跟踪和标记。

评论


SNMP陷阱将比SNMP轮询更好,后者通常每300秒仅进行一次。洪水和随后的崩溃可能发生得如此之快,以至于SNMP无法监控任何内容。但是,仍然有用,SNMP监视器无法从无法跟上的交换机取回数据,这可能是一个起点。

–generalnetworkerror
13年5月21日在7:30

#8 楼

老实说,如果您远程连接(或通过控制台电缆)到设备,则会发现它非常缓慢,从键入到显示在CLI上的字母之间会有一定的延迟。

如果是Cisco交换机,则有2个简单的交换机可以查看接口统计信息,它将始终处于100%(或255/255)的使用率。在处理交换机的多年中,我还没有看到端口合法地达到100%的使用率。除此之外,请检查CPU使用情况(通常是“显示进程的CPU历史记录”),除非您正在运行高端交换机,否则循环接口通常会严重影响您的CPU。不过!

#9 楼

我将基于以下理解来回答这个问题:对第2层域的使用已完全中断,并且您没有管理访问权限,因为CPU都固定了。解决桥接环路问题是开始拔掉上行链路,直到上行链路消失。假设您有一个标准的交换访问层,所有访问交换机都连接到一对分布交换机中。转到第一个接入交换机,并拔掉上行链路,如果交换机端口的LED停止闪烁,则不是该交换机,请重新插入并转到下一个。重复执行此操作,直到切换到已断开上行链路的连接并且LED持续快速闪烁的状态为止,这就是您的带有环路的交换机。 LED冷静下来后,最后拔下的插头就是问题端口,走线并适当地惩罚了用户。

#10 楼

我曾在美国另一端的网络上发生此问题,并且不得不通过电话和我的wan链接远程访问某些一级分析师。由于他们拥有多个品牌的交换机,并在过去的几年中将它们慢慢添加到网络中,使问题变得更加复杂。当他们将办公室搬到办公室时,他们标记了每个端口的去向,然后以完全相同的方式在新办公室重新连接了所有设备,并启动了所有设备。不用说,少数具有有效的生成树功能的交换机不会以相同的方式收敛,并且它们具有各种循环和问题。到我完成修复工作时,发现至少有三台不受管理的交换机已与其余基础架构环路连接。

我能够追踪每个非托管交换机的方法是使用一个名为nedi的工具(在能够管理的交换机上,我启用了lldp / cdp)。我首先使用nedi生成地图。然后在地图显示从一个交换机到另一交换机的连接然后又回到同一交换机的区域,我让网络技术人员在现场手动跟踪线路。我要么手动关闭与环路相关的接口,要么让现场人员拔下电缆。最终,尽管进行了疯狂的品牌转换,我仍然能够使网络正常运行。

#11 楼

此处可以做的一件事是使用命令show cdp neighborshow lldp neighbor来查看将哪些机器连接到了交换机。较低的优先级(或较旧的mac地址),新设备将协商为生成树根,这肯定会引起问题。

#12 楼

根据我的经验,一直是我刚插入,未关闭或添加到端口通道的电缆。更难的是别人做的并且不马上动手。

#13 楼

确定回路实际上取决于您拥有的开关品牌。例如,在Extreme交换机上,我可以在VLAN上运行elrp-client,而该交换机将基本上在该VLAN的所有端口上发送广播帧,并查看它是否由其中任何一个返回,如果是,它将告诉我重新接收到帧的端口,从而显示出循环候选者。

在Cisco上,您可以启用风暴控制,这实际上是一种钝器,因为它基本上可以阻止风暴。端口一段时间,直到状态清除(或清除可错误状态)-但是,总的来说,只有在不使用生成树或转发BPDU。

#14 楼

毫无疑问,我发现最快的方法是监视接口的数据包/秒速率。具有适当的CLI过滤器的快速显示界面将列出每个界面以及数据包/秒速率。要找到循环的来源,请寻找唯一一个疯狂的高数据包/秒输入速率的接口。在具有典型利用率配置文件的典型企业环境中,它每次都能正常运行。在具有许多接口的6500上,不需要很长时间就能找到源代码...

#15 楼

在循环期间,对于终端站上的大量广播流量(例如ARP请求),这也可能会增加CPU的负载(例如,如果您使用便宜的100Mbit / s realtek卡来计算CPU的校验和)。
如果断开电缆,在物理上可能会发现环路,因此链路会立即在2个端口上丢失。