交换机应该只向系统发送流量,前提是流量是为该系统设计的。我们的交换机似乎不是这样:如果我运行“tcpdump not host myhostname”,我可以看到很多显然是非广播的数据包(ssh、nfs)在其他主机之间传输。我该如何防止这种情况发生?我认为这可能会导致性能不佳(我们大量使用 NFS;如果它从所有交换机端口发出,那就不好了)。
该交换机是三台 Netgear GS748TS 管理型交换机的堆叠。交换机活动指示灯全部同步持续闪烁,这似乎也是错误的。
答案1
您可能没有看到我将要描述的内容,但您很有可能看到了。我已经在几台低端和中端 Netgear 和 Linksys 交换机上看到了您所说的症状。我看到出现这种“疯狂”行为的交换机已经安装了一段时间,工作正常,但开始从所有端口泛洪帧。我通常接到的电话是“网络很慢”,随后的带宽监控通常会找到一个“疯狂”的交换机,通常其活动灯常亮,抽出大量“虚假”流量(有时由合法流量组成,有时似乎是随机垃圾)。
我喜欢 Zypher 关于检查 CPU 利用率的建议,但我还会考虑拆分“堆栈”(在这些特定的交换机上,我不知道“堆栈”是否作为单个逻辑单元运行)并单独测试每个交换机。
似乎这个问题在过去几年中变得更加严重,比如无名以太网交换机、Linksys 和 Netgear 交换机。我不知道我见过的问题交换机中是否存在一些共同的硅片问题。(我们建议我们的客户购买 Dell PowerConnect 交换机,而且到目前为止,他们的交换机还没有出现过此类问题。)
答案2
通常情况下,除非您的 MAC 地址表超载(通常约为 8,000+ 个 MAC 地址,但请检查制造商/型号详细信息),否则交换机不应故障恢复到“集线器”模式。您可以使用以下命令检查给定 Cisco 交换机上的 MAC 地址数量:
sh mac-address-table | inc Total
交换机根据 VLAN 标签(如果您使用它们)和 MAC 地址做出所有决定。如果您遇到洪泛问题,那么您需要查看交换机为何没有构建准确的 MAC 地址表。
但是,如果您遇到我所说的“vlan bleed”,则会出现此行为。如果您有两个交换机端口背对背连接,但在不同的 VLAN 上,您可能会看到此行为。
具有多个网卡的设备也可以将 VLAN 桥接在一起。Microsoft 有一个桥接网卡的“功能”,因此您的无线和有线网络可以桥接。
查看您的 MAC 表,查找具有多个地址但未上行连接到另一台交换机的端口。您还可以通过交换机的 MAC 表跟踪应单播的设备的 MAC 地址。
在 Cisco 交换机上,这些命令可能会有帮助:
sh mac-address-table | ex CPU
sh mac-address-table | ex CPU|<uplink port name>
答案3
我首先要检查的是交换机的负载。如果负载过高,交换机无法正常交换数据包(大多数交换机在 CPU 负载为 80-90% 左右时开始出现这种情况),交换机将无法正常工作,并且可能会丢失数据包。
答案4
这种行为通常表示交换机的桥接表(又称 CAM 表或 MAC 地址表)中没有帧目标 MAC 的条目。思科将其称为单播泛洪。
您能否提供有关拓扑的更多详细信息?所有“意外”流量是否都发往同一台主机,还是发往多台主机?您的任何主机是否使用绑定/组合网卡?入站流量可能被发送到一个 MAC 地址,但主机的出站流量来自另一个网卡。
编辑:由于虚假流量仅限于某些 MAC,因此这可能是个不错的起点。您能否查询交换机的桥接表(在 Cisco 设备上显示 mac-address-table)并查找是否有针对有问题的目标 MAC 地址的条目?此外,您能否确认交换机桥接表的超时值是多少?
我以前见过这种行为的一个案例是,在 ARP 超时值设置得高于 MAC 地址表超时值的子网上。通常,当 ARP 条目过期时,会发送 ARP 探测。交换机会记录对探测的响应,交换机会将主机的源 MAC 存储在其桥接表中。当这些计时器反转时,桥接条目会在 ARP 条目之前过期。这意味着子网上的路由器/主机知道哪个 MAC 地址拥有给定的 IP,但交换机不知道该 MAC 连接到哪个端口。在这种情况下,交换机会将流量泛洪到该 VLAN 中的所有端口。