我工作的那所小型学院出现了一些非常奇怪的网络问题。我在这里寻求任何建议或想法。整个夏天我们都很好,但麻烦在学生大批返回校园开始秋季学期几天后就开始了。
症状
主要症状是互联网接入可以工作,但速度非常慢……经常会超时。例如,Speedtest.net 的典型结果将返回 .4Mbps 下载速度,但允许 3 到 8 Mbps 的上传速度。较小的症状可能包括与文件服务器之间传输数据的性能严重受限,甚至在某些情况下无法登录计算机(无法访问域控制器)。该问题涉及多个 VLAN,并且影响了我们运营的几乎每个 VLAN 上的设备。
该问题不会影响网络上的所有计算机。未受影响的计算机通常会看到至少从 speedtest.net 下载速度为 11Mbps,或许会更高,这取决于当时更大的校园流量模式。
更大的问题还有一种变体。我们有一个 vlan,用户几乎无法登录所有机器。IT 人员将使用本地管理员帐户(或在某些情况下使用缓存凭据)登录,然后从那里释放/更新或 ping 网关将允许机器工作……一段时间。使这个问题复杂化的是,这个 vlan 覆盖了我们的计算机实验室,这些实验室使用名为 Deep Freeze 的软件在重新启动后完全重置硬盘。由于机器上的陈旧数据数周未永久更改低级信息,因此同样的问题可能以不同的方式表现出来。但是,我们能够通过创建一个新的 vlan 并将实验室整体移动到新的 vlan 来解决这个问题。
教唆
最终,我们注意到受影响的机器都有最近的 dhcp 租约。我们可以通过观察 dhcp 租约何时到期来预测机器何时会“变慢”。我们尝试将测试 VLAN 的租约时间设置得很短,但这样做只会让我们无法预测机器何时会变慢。具有静态 IP 的机器几乎总是正常工作。手动释放/更新地址将绝不导致机器变慢。事实上,在某些情况下,这个过程固定的处于该状态的机器。但大多数时候,这无济于事。我们还注意到,笔记本电脑等移动设备在跨新 VLAN 时可能会变慢。校园内的无线网络被划分为“区域”,每个区域都映射到一小组建筑物。搬到新建筑物可能会将您置于一个区域,从而导致您获得一个新地址。从睡眠模式恢复的机器也很可能变慢。
缓解措施
有时(但并非总是如此),清除受影响机器上的 arp 缓存将使其再次正常工作。如前所述,释放/更新本地机器的 IP 地址可以修复该机器,但不能保证。ping 默认网关有时也可以帮助解决机器速度慢的问题。
似乎最有助于缓解此问题的方法是清除核心第 3 层交换机上的 arp 缓存。此交换机在我们的 dhcp 系统中用作所有 VLAN 上的默认网关,并处理 VLAN 间路由。型号为 3Com 4900SX。为了尝试缓解此问题,我们将交换机上的缓存超时设置为最短时间,但这并没有帮助。我还编写了一个每隔几分钟运行一次的脚本,以自动连接到交换机并重置缓存。不幸的是,这并不总是有效,甚至可能导致某些机器在短时间内处于缓慢状态(尽管这些机器似乎会在几分钟后自行纠正)。我们目前有一个每 10 分钟运行一次的计划作业,以强制核心交换机清除其 ARP 缓存,但这远非完美或理想。
再生产
我们现在有一台可以随意强制进入慢速状态的测试机器。它连接到一个交换机,交换机为每个 VLAN 设置了端口。我们通过连接到不同的 VLAN 使机器变慢,在建立一两个新连接后,机器就会变慢。
本节还值得一提的是,这种情况在之前的学期开始时也发生过,但在过去,问题会在几天后自行消失。在我们有机会做大量诊断工作之前,它就自行解决了……这就是为什么我们这次让它拖延这么长时间;我们预计这将是一个短暂的情况。
其他因素
值得一提的是,去年我们有大约六台交换机彻底出现故障。这些主要是 2003/2004 年的 3Com(大部分是 4200),都是大约在同一时间安装的。它们应该仍在保修范围内,但 HP 让维修变得有些困难。大部分是电源出现故障,但有几次我们使用了主板出现故障的交换机的电源来使电源出现故障的交换机恢复运行。现在除了四台交换机中的三台以外,其他所有交换机都安装了 UPS 设备,但两年半前我刚开始工作时情况并非如此。严重的预算限制(几年前我们被列入教育部财务困难机构名单)迫使我向 Netgear 和 TrendNet 等公司寻求替代品,但到目前为止,这些低端型号似乎还不错。
还值得一提的是,今年夏天我们网络的重大变化是从单一的跨校园无线 SSID 迁移到前面提到的分区方法。我不认为这是问题的根源,就像我说的:我们以前见过这种情况。然而,这可能加剧了这个问题,可能是它很难隔离的主要原因。
诊断
考虑到问题的发生时间和持续性,我们一开始似乎很清楚,问题的根源是受感染(或恶意)的学生计算机执行 ARP 缓存中毒。然而,多次尝试隔离源头都失败了。这些尝试包括多次 wireshark 数据包跟踪,甚至让整栋建筑短暂离线。我们甚至无法找到确凿的证据,即坏的 ARP 条目。我目前最好的猜测是核心交换机过载或故障,但我不确定如何测试这一点,盲目更换它的成本很高。
再次感谢大家提出任何想法。
更新:
核心交换机被更换。四天后,一切都运行良好...但我要等两周后才认为问题已经解决。
答案1
乔尔,
由于您已设置中继,并且可以随意复制该问题。在笔记本电脑上安装 Wireshark 并镜像/跨越上行链路端口。如果您看到数据包速率超过 10,000 或端口利用率接近最大速度,则表示存在问题。
您可能遇到了硬件/生成树问题。通常我发现用户在他们的机器上插入两个网卡“以获得更大的吞吐量”。
通常,对于生成树问题,您可以打开供应商提供的每端口环路检测或广播限制。这将关闭发现环路的任何端口。您还可以打开“bpdu 保护”,这意味着禁用接收 bpdu 的端口并向 syslog/snmp 陷阱接收器抛出错误。
乔
答案2
我之前见过类似的问题,它是 LAN 中的一个循环,导致整个子网混乱和饱和(大概是由于交换机在附加端口上看到自己的 MAC 而导致的广播流量)。
编辑:此外,这在教育机构(我之前的两份系统管理员工作)很常见,因为小宝贝们喜欢摆弄跳线/插座......
答案3
我觉得可能是你的硬件有问题,导致广播风暴。使用 Wireshark 监视广播并找到造成问题的主机...
答案4
Joe 的想法很好,但考虑到不太可能是广播风暴造成了您的问题(我认为您对 ARP 缓存中毒或类似问题的看法是正确的;它甚至可能是 IP 地址冲突),它可能无法解决问题。
如果您的交换机支持动态 ARP 和 DHCP 检查,则可以使用相关技术。如果您启用此功能,交换机将监视 DHCP 事务,并且仅允许与 DHCP 数据库中的已知条目匹配的 ARP 条目,或您手动指定的条目。
如果您的交换机没有此功能,另一个跟踪它的选项是 Linux 实用程序 arpwatch - 它会跟踪所有 ARP 请求并在注意到 IP-MAC 映射更改时通知您。