我刚读过关于混杂模式可以打开互联网界面吗?所以我做了一个小测试环境,我在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 ,即使他们都在同一个本地网络中,混杂模式也在
答案 0 :(得分:1)
你猜测开关是罪魁祸首是正确的。混杂模式意味着以太网控制器将接受具有任何目标MAC地址的数据包。它不保证将此类数据包发送到该控制器。
即使这些主机位于同一子网上,但最近该子网上的主机可能连接到以太网交换机。交换机监视来自所有端口的传入数据包,并了解在哪个端口看到特定的MAC地址。因此,如果框A连接到端口0,框B连接到端口1,框C连接到端口2,并假设每个主机已经发送了至少一个数据包,那么交换机知道谁在哪里,如果A向B发送数据包,交换机只会将数据包发送到端口1.如果您在C上启用了混杂模式,您将看不到从A发送到B的数据包。
这是somewhat more detailed explanation how MAC learning works。