我有两个电路板,它们通过交换机使用以太网接口连接在一起。我有一台连接到交换机的 Linux 机器,我在机器上运行 wireshark。我为两个电路板和 PC 分配了相同的 IP 地址范围。我能够在这三个设备(两个电路板和 PC)之间进行通信。我相信我也应该能够在 PC 上使用 wireshark(以混杂模式运行)捕获电路板之间交换的数据包。但是看不到任何数据包。?请告诉我这里出了什么问题?还请告诉我如何使用 PC 捕获电路板之间的流量。
谢谢,Kmr
答案1
交换机通常足够智能,只会将数据包发送到正确的目标端口。Linux 计算机将仅接收专门发往该计算机的流量以及广播流量。为了查看所有内容,您需要执行以下任一操作:
- 简单:使用实际的以太网集线器,将所有流量广播到每个端口。
- 中等:设置交换机以将数据从其中一个 PC 端口镜像到 Linux 机器。这将需要包含此功能的交换机,该功能通常仅在高端交换机上可用
- 困难:构建/购买以太网分接头。 http://www.enigmacurry.com/category/diy/或者http://www.sun.com/bigadmin/content/submitted/passive_ethernet_tap.jsp
更详细的讨论请见http://wiki.wireshark.org/CaptureSetup/以太网,包括对端口镜像与以太网分路器的全面讨论。
答案2
您需要对其他主机进行 ARP 毒害:
echo 1 > /proc/sys/net/ipv4/ip_forward ettercap -o -T -P repoison_arp -M arp:远程/host.a.ip.addres/ /host.b.ip.addres/
或者让交换机充当集线器——重载其 MAC 表