混杂模式
你需要一个支持混杂模式驱动的网卡,才可能在网络上嗅探数据包。
混杂模式是一种允许网卡能够查看到所有刘静网络线路数据包的驱动模式。
在网络上有一类广播流量,因此对于客户端来说,接收到并非以它们的地址作为目标的数据包是非常常见的。用来将给定IP地址解析成对应MAC地址的ARP协议,在任何网络上都是一个关键组成部分,且是能够说明有些网络流量并非是发送到制定目标地址的一个很好的例子。为了好到对应的MAC地址,ARP协议会发出一个广播包并发送到广播域中的每个设备,然后期望正确的客户端做出回应。
一个广播域(也就是一个网络段,其中任何一台计算机都可以无需经过路由器,直接传送数据到另一台计算机)是由几台电脑所组成的,但广播域中仅仅只有一个客户端应该对传输的ARP广播请求感兴趣。一但网络上的每台电脑都处理和回应ARP广播包,那网络的性能将变得非常的糟糕。
因此,其他网络设备上的网卡驱动会识别出和个数据包对于它们来说没有任何用处,于是选额将数据包丢弃,而不是传输给CPU进行处理。将目标不是这台接受主机的数据包进行丢弃可以显著地提高网络处理性能,但这对数据包分析师来说并不是个好消息。作为分析师,我们通常需要看到线路上传输的每一个数据包,这样我们才不会担心会丢失掉任何关键的信息。
我们可以使用网卡的混杂模式来确保能够捕获到所有的网络流量。一旦在混杂模式下工作,网卡会吧每一个它所看到的数据包都传递给主机的处理器,而无论数据包的目的地址是什么。一旦数据包到达CPU之后,它就可以被一个数据包嗅探软件捕获并进行分析。
现在的网卡一般都支持混杂模式,Wireshark软件包中也包含了 libpcap / WinPcap 驱动,这让我们能够很方便地在Wireshark软件界面上就将网卡直接切换到混杂模式上。