我的子网是 10.162.0.0/16。我们有一个带几个接口的路由器。这个子网的网关地址是10.162.0.1。
路由器在另一栋楼里,我无法直接访问它。来自路由器的线路连接到我的主要第 2 层交换机 D-Link DES-3550 (10.162.0.250),子网的其他部分连接到此交换机。
网络在短时间内(5 - 20 分钟)运行良好,然后开始“攻击“问题又再次出现。
如何“攻击“看起来:
我使用 Wireshark 检查了问题。我可以看到我们的网关路由器 (10.162.0.1) 不断地从我的子网中请求一个或几个地址,例如:
10.162.0.1 广播 ARP 60 谁有 10.162.8.75? 告诉 10.162.0.1
10.162.8.75 没有回应我的 ping。
我为我的电脑分配了一个被 ARP 攻击的地址。我的电脑响应了 ARP 攻击并发送了我的 mac 地址。但路由器并不在意,继续发送 ARP。
路由器每秒发送大约 10,000 - 25,000 个 ARP。因此,从我的子网中的任何计算机 ping 10.162.0.1 都是不可能的。有时我的主交换机 (10.162.0.250) 不响应 ping 或延迟约 3 秒。
当我重新启动交换机(10.162.0.250)或断开其某些端口时,攻击停止了(在大多数情况下,断开 10 和 11 端口会有所帮助,所以可能发生了某些事情)。
当下一次攻击开始时,ARP 请求已经是其他的了。它似乎随机选择地址进行 ARP。
为什么我们的路由器发送了这么多 ARP?不同子网上的计算机是否正在攻击路由器?如果源是来自 10.162.0.0/16 的计算机,那么路由器为什么发送 ARP 请求(我不明白这一点)?我该如何解决这个问题?
答案1
检查是否存在循环。
当交换机收到广播数据包(如 ARP)时,它会通过所有端口将其发送出去。如果您有环路电缆(从同一广播域中的一个端口到另一个端口),该数据包将返回交换机,并通过所有端口再次广播(并再次返回,一次又一次……)。
因此,基本上,请检查您是否有电缆从同一交换机上的一个端口连接到另一个端口,或者连接到与第一个端口相连的另一个交换机,然后断开连接。如果您有托管交换机,则应启用 (r)STP 以避免此类问题 - 启用 STP 后,您实际上可以通过环路实现冗余 - 但当一切正常运行时,交换机本身将禁用一个连接)。
答案2
您的问题不是路由器以每秒 25,000 个数据包的速度进行 ARP,而是您的以太网第 2 层拓扑中存在循环。
如果您正在运行生成树,则这是一个阻止循环的良好开始,但是某些情况可能会导致生成树允许形成循环(例如单向以太网链路,它会丢弃 BPDU)。
您需要找到环路的位置。通常,环路位于某人的办公桌上或会议室中,某人使用集线器将两个部分连接在一起。
确保已在所有交换机上正确配置了快速生成树或多生成树。如果您的交换机支持风暴控制,则风暴控制会很有帮助。
答案3
好吧,我已经使用了二进制搜索 :) 依次断开主交换机 (10.162.0.250) 中的端口。所以我找到了问题所在的楼层号。然后对楼层上的交换机执行相同的操作,我找到了房间。我没有发现任何环路。
结果发现一个 Wi-Fi 路由器正在破坏我的所有网络。我最近没有解释为什么会这样。因为所有不必要的功能都已关闭,所以它实际上充当了无线交换机(作为网桥)。你对此有什么假设吗?
答案4
路由器可能正在其 DHCP 条目范围内检查未知/自我声明的 IP 地址,但更可能的是,您的设备正尝试快速与 IP 地址 10.162.8.75 进行通信,而您的路由器正在尝试查找该地址。
我遇到过这种情况,路由器向 LAN 上不存在的 IP 地址 (10.0.0.30-10.0.0.50) 发送一系列 ARP 请求。我怀疑网络上的设备正在尝试与这些 IP 地址通信。我将交换机和路由器之间的以太网流量镜像到另一个端口,以监控从有线 LAN 到路由器的所有请求。罪魁祸首最终是佳能打印机/扫描仪网络实用程序,它向路由器发送这些不存在的 IP 地址的请求。