为什么我无法在混杂模式下捕获同一局域网内的任何数据包

时间:2014-04-26 04:32:15

标签: networking lan local-network

我刚读过关于混杂模式可以打开互联网界面吗?所以我做了一个小测试环境,我在digitalocean上打开了3个droplet服务器,并启用了私有网络。所以我最终在10.130.x.x本地网络中使用了3台服务器。

server1:10.130.247.92

server2:10.130.237.218

server3:10.130.237.219

在server1中,我使用tshark从eth1(专用网络接口)捕获数据包

tshark -i eth1

在server2中,我经常ping server1

ping 10.130.247.92

现在server1捕获来自server2的所有ICMP数据包,同时,我打开server3中eth1的混杂模式

ifconfig  eth1 promisc

并开始捕获eth1,但我无法将ICMP数据包捕获到server1。

为什么?我在网络中猜测是基于交换机而不是基于集线器,因此 server3 无法从 server2 捕获数据包到 sever1 ,即使他们都在同一个本地网络中,混杂模式也在

1 个答案:

答案 0 :(得分:1)

你猜测开关是罪魁祸首是正确的。混杂模式意味着以太网控制器将接受具有任何目标MAC地址的数据包。它不保证将此类数据包发送到该控制器。

即使这些主机位于同一子网上,但最近该子网上的主机可能连接到以太网交换机。交换机监视来自所有端口的传入数据包,并了解在哪个端口看到特定的MAC地址。因此,如果框A连接到端口0,框B连接到端口1,框C连接到端口2,并假设每个主机已经发送了至少一个数据包,那么交换机知道谁在哪里,如果A向B发送数据包,交换机只会将数据包发送到端口1.如果您在C上启用了混杂模式,您将看不到从A发送到B的数据包。

这是somewhat more detailed explanation how MAC learning works