基于openwrt路由器的无线终端采集系统及其方法与流程

文档序号:16886939发布日期:2019-02-15 22:43阅读:728来源:国知局
基于openwrt路由器的无线终端采集系统及其方法与流程

本发明涉及无线终端数据采集领域,尤其涉及一种基于openwrt路由器的无线终端采集系统及其方法,具有可扩展性和高时效性的优势。



背景技术:

无线网络的普及,让人们可以随时随地的进行数据连接,现代通信技术现在以及未来的发展方向是无线、多媒体和移动智能终端,无线局域网wifi以其移动性高、成本低、网络建设和扩展比较容易以及方便管理等优点,在很多领域都获得了广泛的应用。智能路由器也就是智能化管理下的产物,通常具有独立的操作系统,真正做到网络和设备的智能化管理。基于openwrt系统系列的路由器属于开发级别的路由器,适合软件开发人员对路由器功能进行裁剪和二次开发。openwrt可以被描述为一个嵌入式的linux发行版,只需要在linux系统上搭建路由器对应芯片的sdk环境,就可以编译出可在openwrt系统上运作的执行程序。

在不影响路由器的正常使用,开启无线网卡的扫描功能,截获帧控范围内的所有无线数据包,获取周围无线终端的mac地址和ap的mac地址。根据获取到的无线终端信息对大型公共场合的客流量进行统计,根据ap下的终端数据对ap分布进行调整。



技术实现要素:

本发明的目的就在于克服现有技术存在的缺点和不足,针对无线终端的信息统计,提供一种基于openwrt路由器的无线终端采集系统及其方法,实现无线终端数据的采集。

实现本发明目的技术方案是:

本发明主要进行无线终端信息采集,截获帧控范围内的所有无线数据包;通过解析无线数据包,提取终端和ap的mac信息;通过mac和厂商的对应关系,获取终端mac的型号;通过现有的openwrt系统路由器进行二次开发,减少开发成本,可移植性强。

本发明通过对无线终端mac进行检测,尤其是终端mac和apmac的对应关系统计,通过以下3种方法实现无线终端采集:

1、通过设置无线网卡状态,使得网卡处于监听状态,能够接收到周围所有终端和ap的无线信号;无线设备工作在不同的无线信道上,为了全面采集终端数据,需要切换网卡信道,让网卡在1到13信道上轮询。

2、设置网卡为monitor模式和信道轮询后,开始扫描数据,获取ap和终端的所有无线数据包;解析数据包并获取终端和ap的对应关系,再根据mac地址大致识别出手机厂商。

通过解析802.11协议,解析包括控制帧、管理帧、数据帧,通过数据包的subtype和type识别具体的帧类型,从不同的帧中获取到ra和ta,以及两者的对应关系。

3、根据openwrt系统的芯片型号,下载对应sdk编译环境,搭建交叉编译环境是为了编译跨平台体系结构的程序代码,编译出可供缺少编译环境的opewrt系统可执行的程序;交叉编译环境下编写代码,实现具体功能,编译获得openwrt可运行的执行文件,在路由器上运行。

一、一种基于openwrt路由器的无线终端采集系统(简称系统)

本系统包括环境配置模块、数据采集模块、数据解析模块、厂商识别模块和数据管理模块;

其交互关系是:

环境配置模块、数据采集模块和数据解析模块依次交互,实现路由器网卡设置、数据提取和分析功能;

厂商识别模块、数据解析模块和数据管理模块依次交互,将提取的数据进行厂商匹配,最后识别终端型号。

二、基于openwrt路由器的无线终端采集方法(简称方法)

本方法的研究思路是通过现有的openwrt系统,实现无线终端数据采集功能,通过无线数据采集和分析技术,结合网卡配置、信道轮询和交叉编译技术,并对mac地址进一步匹配获取厂商信息,而达到对无线终端的采集,并且对数据进行统计、去重以及记录。

本方法包括下列步骤:

①环境配置模块设置网卡模式,网卡使用monitor工作模式,循环设置网卡信道,确保网卡均匀工作在13个信道上;

②数据提取模块捕获无线数据,通过抓读取网卡抓包接口,获取网卡帧控范围内的所有无线数据包,发送给数据解析模块,通过解析分析ieee802.11协议的数据包获取终端和ap的地址mac信息,以及终端和ap的对应关系;

③厂商识识别模块通过导入mac地址和厂商的对应关系表,建立mac地址和厂商多对一的对应关系,结合数据解析模块中分析的mac地址,一起发送给数据管理模块,生成终端信息表;

④在ubuntu系统中搭建openwrt的开发换,对源码进行编译,在路由器上运行执行文件。

本发明具有下列优点和积极效果:

①针对性强:市面上的很多统计设备都是自主研发的设备,设备构造复杂,研发成本高,而基于openwrt的采集设备只能截获ap的mac信息,或者连接本路由器的终端mac信息。该路由器不限终端或ap,包括所有基于802.11协议的无线设备。

②时效性高:网卡采集到数据后,立刻发送给解析模块,可即时获取数据信息,若停止采集,数据解析即刻终端。

③可扩展性好:同类型路由器或同型号网卡的路由器都可移植该方法。

④具有隐蔽性:系统的采集和分析过程可以在用户无感知情况下进行识别,该方法实现在小型路由器上,数据截获用户无感知,对整个无线环境无任何影响,增加了隐蔽性也节省了成本。

附图说明

图1是本系统的结构方框图;

其中:

10—环境配置模块;

20—数据采集模块;

30—数据解析模块;

40—厂商识别模块;

50—数据管理模块。

图2是环境配置模块10的工作流程图;

图3是数据采集模块20的工作流程图。

英译汉:

1、ap:wirelessaccesspoint,无线访问接入点。

2、da:destinationaddress,目的地址,用来描述最终mac地址数据包的接受者。

3、sa:sourceaddress,源地址,用来描述最初发送mac数据的sta地址。

4、ta:transmitteraddress,发送sta地址的ap地址。

5、ra:reciveraddress,接收sta地址的ap地址。

6、openwrt:是一个嵌入式的linux发行版,主流路由器固件有dd-wrt、tomato、openwrt三类,而不是试图建立一个单一的、静态的系统。

具体实施方式

下面结合附图和实施例详细说明:

一、系统

1、总体

如图1,本系统包括环境配置模块10、数据采集模块20、数据解析模块30、厂商识别模块40和数据管理模块50;

其交互关系是:

环境配置模块10、数据采集模块20和数据解析模块30依次交互,实现路由器网卡设置、数据提取和分析功能;

厂商识别模块40、数据解析模块30和数据管理模块50依次交互,将提取的数据进行厂商匹配,最后识别终端型号。

2、功能模块

①环境配置模块10

环境配置模块10是一种无线网卡配置方法。

使用iwlist命令判断网卡是否支持monitor模式,本发明采用的是mt7620型号的芯片;

iwconfigwlan0modemonitor命令设置网卡wlan0为监听模式;

iwdevwlan0setchannelnht20设置网卡wlan0的信道为n,n取值为1-13信道;

循环设置信道,确保网卡均匀工作在1到13个信道上。

②数据采集模块20

数据采集模块20是一种数据采集方法。

通过抓包获取ieee802.11协议的原始无线数据帧,把数据帧发给数据解析模块30。

③数据解析模块30

数据解析模块30是一种协议解析方法。

通过分析、处理控制帧、管理帧、数据帧,判断数据包的subtype和type值识别具体的帧类型,从不同的帧中获取到ra和ta,以及两者的对应关系。

获取的mac进行处理,通过设计循环队列,保存所有首次出现的终端mac和apmac,确保数据中的mac地址不重复。

④厂商识别模块40

厂商识别模块40是一种mac地址和厂商匹配规则。

通过导入mac地址和厂商信息对应规则,获取终端mac对应的型号信息。

并将数据保存在数据管理模块50,确保mac匹配的唯一性,避免重复匹配,浪费系统资源。

⑤数据管理模块50

数据管理模块50是一种sqlite3数据库。

存放系统日志、操作日志及mac信息和对应型号信息表,以供用户日后查证;

数据库通过在交叉编译环境下编译sqlite3源码,生成opewert系统上需要的静态、动态库以及可执行程序;

数据库实现了大数据量的自动维护,当数据量达到到一定大小时,可以转存网络服务器上或者定时清理。

3、本系统的工作机理:

系统启动后进入环境配置模块10,通过调用系统命令获取网卡信息,并设置网卡工作模式为monitor模式,循环设置网卡信道,确保网卡均匀工作在13个信道上,每切换一个信道,需数据提取模块20捕获改信道上的无线数据,通过抓读取网卡抓包接口,获取网卡帧控范围内的所有无线数据包,发送给数据解析模块30,通过解析分析ieee802.11协议的数据包获取终端和ap的地址mac信息,以及终端和ap的对应关系;通过厂商识别模块40导入mac地址和厂商的对应关系表,建立mac地址和厂商多对一的对应关系,结合数据解析模块30中分析的mac地址,一起发送给数据管理模块50,生成终端信息表;所有源码编写在ubuntu系统上完成,并在该系统上搭建openwrt的开发环境,对源码进行编译,生成可执行文件,在路由器上运行执行文件。

二、方法

1、步骤①,如图2:

a、获取网卡信息101

开始启动环境配置模块10时,需要先查看网卡信息,并通过iwlist命令查看无线网卡的配置信息,确保无线网卡支持monitor模式,该工作一般在路由器选型就需要确认;

b、判断网卡是否为monitor模式102

是则进入步骤c;

否则将网卡设置成monitor模式103后再进入步骤c;

c、设置网卡信道104

环境配置模块10设置网卡初始信道,并开始在1-13个信道内进行轮询,以确保网卡均匀工作在这13个信道上,切换网卡的同时发送网卡数据至数据采集模块20;

d、采集网卡数据包105

再继续步骤c。

2、步骤②,如图3:

a、截获数据包201

调用libpcap库捕获网卡数据,根据802.11数据包格式对数据进行解析,通过定义802.11数据帧格式的结构体,提取出基本信息;

b、解析subtype值202

根据802.11数据帧格式,对应获取subtype和type数值,从而数据帧的具体类型,通过type识别管理帧、控制帧、数据帧,通过subtype识别出具体的认证请求,认证响应等具体的类型;

c、获取mac信息203

从requesttosend、blockackrequest帧中获取ra、ta;从acknowledgement中获取ra;从data、data+cf-ack等数据帧中获取ra、ta和ssid;

d、获取ap和终端对应关系204

通过判断ra或ta是否为空确定该ra、ta为apmac地址或终端mac地址。

3、步骤③:

ⅰ、创建厂商对应表,覆盖95%的mac地址和厂商信息的对应关系;

ⅱ、结合数据解析模块30的结果,进行mac地址匹配;

ⅲ、终端mac地址和厂商对应关系发送给数据管理模块50,并对数据进行管控,满足mac信息的不重复保存和统计。

4、步骤④:

ⅰ、在ubuntu系统上搭建openwrt对应的sdk环境;

ⅱ、使用sdk的mipsel-openwrt-linux-g++编译源代码,生成可执行文件,在路由器上执行运行文件。

三、应用

最近十年,是互联网高速发展的十年;最近五年,是移动互联网井喷般增长的五年。越来越多的设备有了联网的需求,用户也在更多的时间里依赖于网络连接。在家庭内部,电脑、手机、pad、智能电视、ott盒子……多个设备同时接入互联网的需求极大地刺激了无线路由器市场,而智能路由器也应运而生,基于openwrt系统系列的路由器属于开发级别的路由器,适合软件开发人员对路由器功能进行裁剪和二次开发。openwrt可以被描述为一个嵌入式的linux发行版,只需要在linux系统上搭建路由器对应芯片的sdk环境,就可以编译出可在openwrt系统上运作的执行程序。

本发明基于openwrt系统,市面上有相当大一部分路由器采用的该系统,通过对系统进行二次开发,实现mac地址获取,通过mac地址的数量,可以实现中小型范围内的流量监控,通过ap下连接mac地址的连接数据,可调整ap分布情况,实现网络资源最大化;通过获取终端型号信息,可对周围人群特征进行评估。另外,通过ap查找到终端mac,通过mac信息落实到手机厂商型号,对后期的定位和侦控也有一定的参考价值。该系统有价值进行大面积实施,创建大型数据库,为后期大范围内的网络监控提供数据支持。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1