嗅探交换局域网

嗅探交换局域网

我经常发现自己必须嗅探我正在开发的 Arm 主板与网络上或网络外的另一台计算机之间的连接。

最简单的情况是,我可以在计算机上安装一个嗅探器,与嵌入式设备通信。如果做不到,我目前会安装一个旧的 10Mb/s HUB。但是我担心我的 HUB 可能会停止工作,我想知道一些替代方案。

以下是我能想到的替代方案:

  • 再买一个 HUB。这还可以吗?
  • 有某种以太网嗅探桥,就像他们对 USB 所做的那样。我担心这种设备很贵。
  • 使用 ARP 毒化。

答案1

更昂贵的交换机将提供端口镜像,它们将一个或多个端口的流量镜像到专用的监控端口,以解决像您这样的问题(以及其他问题)。

但我不知道什么价位能提供这样的功能。

答案2

嗅探单个设备的一种快速而简单的解决方案是添加第二个 NIC,将要嗅探的设备连接到一个 NIC(必要时使用交叉电缆),并将 LAN 连接到另一个 NIC,然后桥接连接并在桥接接口上嗅探。由于您没有将机器塞入繁忙的流量中(大概),因此您实际上不会减慢任何速度。

您可以在 Windows 中使用内置桥接功能和类似 Wireshark 的程序执行此操作。Linux 也允许您执行相同的操作。其他操作系统的里程可能会有所不同——除了 Windows 和 Linux,我还没有在其他地方尝试过。

答案3

有两种方法可以在您无法访问交换机的交换网络中嗅探流量。第一种是 ARP 欺骗,即您尝试比目标设备更快地响应 ARP 请求。这显然取决于您的能力,因此可能会有点碰运气。第二种是溢出交换机的转发表。每个交换机都有一个 MAC 地址表以及它看到的帧来自哪些端口,因此交换机知道将未来的帧发送到哪里。如果交换机在转发表中没有目标 MAC 地址,它会将其发送到每个端口。如果您可以填满转发表,交换机就无法将所有帧发送到每个端口,您实际上已经将交换机变成了集线器。不幸的是,更昂贵的交换机有更大的转发表,并且可能有每个端口的转发表,这些转发表不容易受到这种攻击。

如果可以找到集线器,您可以在您和目标之间插入一个集线器。另一种方法是使用具有两个 NIC 并在它们之间配置桥接的 Linux 设备。

如果您有一个受您控制的托管交换机,正如其他人所提到的,您可以使用端口镜像来获取目标端口上所有内容的副本。

答案4

您可能还希望考虑构建以太网分路器,并使用该设备来分析流量。分路器的优点是可以分析所有流量,包括交换机上的镜像端口可能无法复制的格式错误的以太网数据包。这有点复杂:

您需要两张网卡才能使分接头正常工作,实现全双工连接。但是,您将获得设备之间来回传输的网络流量的真实表示,这可能对您进行的任何嵌入式工作有所帮助。

相关内容