对两台 PC 执行 Ping 操作并尝试使用第三台 PC 捕获 ICMP

对两台 PC 执行 Ping 操作并尝试使用第三台 PC 捕获 ICMP

我设置了三台计算机,它们都位于同一子网上并连接到交换机。所有服务均可达。我从 PC(1) ping 到 PC(2)。使用 PC(3) 打开 tshark,但无法看到不是针对 PC(3)(或具有源)的软件包。

各种抓包软件如Wireshark、tcpdump、tshark等,即使在混杂模式下,也无法看到不是发往抓包主机的流量。

答案1

这是不可能的,除非:

  1. 所有三台机器都插入一个网络集线器而不是一个网络交换机。我不知道是否还生产花鼓(我想自 20 世纪 90 年代以来我什至都没见过花鼓),但区别在于:

    • 通过集线器(也称为“中继器”),网络上的所有数据包都会发送到集线器上的所有端口。如果网络上有很多设备,这显然不能很好地扩展。

    • 交换机维护一个表,其中列出哪些设备(即它们的 MAC 地址)连接到哪些端口,因此仅发送“广播”数据包(例如 ARP WHO-HAS、DHCPDISCOVER 等发现数据包,以及发送至网络广播地址的数据包)到所有端口 - 一旦交换机发现设备连接到哪个端口,则发送到该目的地的数据包仅发送到该端口。

  2. 您已将交换机上的端口之一配置为“混杂”模式(也称为“端口镜像”),以便它获取网络上的所有数据包。这通常需要某种“智能”或托管交换机,该交换机具有串行控制台端口或 http/https、telnet 或 ssh 访问权限来配置它。

    请注意,大多数廉价的家庭/小型企业交换机都是非托管的并且无法配置。一些路由器/交换机组合设备(例如xDSL具有多个 LAN 端口的“调制解调器”)有时具有一些基本的端口配置功能。

  3. 您要进行数据包嗅探的机器有两个网络接口(每个接口都直接连接到其他两台机器之一),并充当两个网段之间的网桥或路由器。

答案2

由于您没有提到专用设备,我假设您正在使用标准交换机来连接这些电脑。普通交换机使用 MAC 地址表。它基本上是“通过 MAC 识别的 PC → 端口(物理连接器)”的映射。这样,交换机就可以将单播包发送到正确的端口。其他端口的PC收不到包。只有目的地未知的包或广播包才会输出到所有端口。这不仅有助于保护隐私,还可以提高性能,因为减少了总体流量。

你想做的事情叫做“嗅探”。有多种方法可以实现此目的,请参阅这个问题。出于学术目的,如果您碰巧有一个带有两个网卡的系统,您可以创建一个桥并将两台 PC 连接到第三个网卡。这样,您也可以监控流量。

相关内容