为什么能采集到网络数据包
网络抓包软件或流量分析系统之所以能够抓取到不属于自身接入到网络中接口的数据报文,是由于该网卡启用了一种叫混杂模式的方式,这种方式能扣看到所有流经这个网口的数据包信息。
Wireshark或企业级流量分析系统的流量采集网卡含有libpcap/WinPcap驱动,该驱动让网卡变为混杂模式。
常见数据包采集硬件
数据包采集过程需要接入网络中的硬件,常见硬件有集线器(hub,古老的设备,现在很少用到)、交换机(端口镜像)、TAP(网络分流器)等等。
集线器
在早期的数据包采集环境中,集线器是最常见的硬件设备之一。
使用集线器连接的网络中,任意数据包都可以流经接入的其它集线器或设备。在这种环境下,你不需要做任何准备工作,接入安装了抓包软件的电脑就可以采集到所有的数据包。
但稍有遗憾的是,集线器由于自身的工作机制,会对网络传输造成极大的影响,目前基本被完全淘汰。
交换机
交换机是当前网络中最常见的数据转发设备之一,但对于数据包采集来说,则不想集线器那样方便了。因为每个交换机的端口是一个冲突域,即这个端口接入安装了抓包软件的电脑后,抓包软件只能采集到交换机这一个端口的流量,无法采集其它端口流量信息。
在交换机环境下,通过端口镜像,可以完整的采集流经交换机所有端口的流量。
端口镜像的原理是告诉交换机,将一个端口上的所有数据包复制到另外一个端口上。目前,基本所有的可管理交换机都支持端口精细。