混杂模式
网卡正常情况下,即非混杂混杂模式下,只接收目的地址是本机的数据包。在以太网上,有大量的数据包,但真正发送给自己的非常少,所以非混杂模式下可以极大的减轻网卡的处理负担。混杂模式(Promiscuous Mode)则是相反,网卡能够接收所有经过它的数据流,而不论其目的地址是否是它他。
使用场景
当 NIC 收到以太网帧时,默认情况下,NIC 会检查目标 MAC 地址是否与 NIC 地址(或广播地址)匹配,如果 MAC 地址不匹配,则丢弃以太网帧。对于云宿主机,此行为是不可取的,因为帧可能用于其中一个实例。NIC 可以配置为混杂模式,即它们将所有以太网帧传递到操作系统,即使 MAC 地址不匹配也是如此。计算主机应始终配置适合混杂模式的 NIC
有时候为嗅探到网络上的数据,需要将网卡设置到混杂模式。进入该模式将网络上的数据一并抓获,为此在设置nic的混杂模式的时候有诸多方法?
方法
在Linux系统中,可以通过shell命令来实现:
1 | ifconfig eth1 promisc 设置混杂模式 |
是不是看起来很简单,看看执行后的效果:
1 | [root@localhost splaybow]# ifconfig |
后面的网卡信息中,多了一个关键词,那就是:PROMISC!这就表示当前网卡已经工作在混杂模式下了。如果一个主机上有多块网卡,可以分别设置它们工作在混杂模式还是非混杂模式。