网络流量检测方法及装置的制作方法

文档序号:7803671阅读:207来源:国知局
专利名称:网络流量检测方法及装置的制作方法
技术领域
本申请涉及网络技术领域,特别是涉及一种网络流量检测方法及装置。
背景技术
随着网络的应用越来越广泛,规模也随之日渐增长,网络中承载的业务也越来越丰富。为了给网络用户提供更好的网络服务,优化网络性能,对各种网络参数的检测和配置也日渐受到重视和应用,如网络流量。网络流量表示网络上传输的数据量,通过对网络流量的检测和分析,有助于网络管理者进行网络规则、网络优化、网络监控、流量趋势分析等,为网络的正常、稳定、可靠运行提供保障。并且,通过及时掌握网络流量的特征,能够实现优化网络带宽配置,及时解决网络性能问题。目前,一种对网络流量进行检测的工具是Tcpdump。Tcpdump是一款Linux下的网络数据采集分析工具,其根据使用者的定义对网络上的数据包进行截获分析。Tcpdump主要是基于命令行的,其通过命令行输入命令,然后将抓取到的网络数据包输出到屏幕或者文件中。使用Tcpdump进行网络数据采集分析时,在初始时,也即在开始输入命令时,设置Tcpdump的过滤规则,并且一直使用该过滤规则,中途不能修改。然而,在实际使用中,可能需要对不同的网络情况及时进行评估和处理,也就需要对不同的网络数据及时进行采集和分析,而Tcpdump固定过滤规则的方式,无法满足及时、灵活地采集分析网络数据,对网络流量进行检测的实际需求。

发明内容
本申请所要解决的技术问题是提供一种网络流量检测方法及装置,以解决现有技术无法满足及时、灵活地采集分析网络数据,对网络流量进行检测的实际需求的问题。为了解决上述问题,本申请公开了一种网络流量检测方法,包括:客户端获取网络流量检测规则,其中,所述网络流量检测规则通过web接口在数据库中设置,所述数据库支持服务器/客户机模式;所述客户端根据所述网络流量检测规则检测网络数据包,获取网络流量数据。优选地,所述数据库包括REDIS数据库。优选地,所述客户端根据所述网络流量检测规则检测网络数据包,获取网络流量数据的步骤包括:所述客户端根据获取的所述网络流量检测规则重新配置包过滤条件pcap-filter ;根据重新配置的所述pcap-filter,使用Iibpcap捕获网络数据包进行检测,获取网络流量数据。优选地,所述客户端获取网络流量检测规则的步骤包括:所述客户端以其主机名为关键字,从所述数据库中获取所述网络流量检测规则。优选地,所述网络流量检测规则包括待检测的IP地址端口的信息。优选地,在所述客户端根据所述网络流量检测规则检测网络数据包,获取网络流量数据的步骤之后,还包括:所述客户端将获取的所述网络流量数据以链表形式存储到所述数据库中。为了解决上述问题,本申请还公开了一种网络流量检测装置,包括:第一获取模块,用于客户端获取网络流量检测规则,其中,所述网络流量检测规则通过web接口在数据库中设置,所述数据库支持服务器/客户机模式;检测模块,用于所述客户端根据所述网络流量检测规则检测网络数据包,获取网络流量数据。优选地,所述装置还包括:存储模块,用于在所述检测模块根据所述网络流量检测规则检测网络数据包,获取网络流量数据之后,将获取的所述网络流量数据以链表形式存储到所述数据库中。优选地,所述第一获取模块,用于以客户端的主机名为关键字,从所述数据库中获取所述网络流量检测规则。优选地,所述数据库包括REDIS数据库;所述检测模块包括:配置模块,用于根据获取的所述网络流量检测规则重新配置包过滤条件pcap-filter ;第二获取模块,用于根据重新配置的所述pcap-filter,使用Iibpcap捕获网络数据包进行检测,获取网络流量数据。与现有技术相比,本申请具有以下优点:本申请提供的网络流量检测方案,通过在支持S/C(服务器/客户机)模式的数据库,如REDIS数据库中设置网络流量检测规则,通过设置的网络流量检测规则检测网络流量。支持S/C模式的数据库能够将服务器端与客户端相衔接,任何需要的时候,只要对数据库中的网络流量规则的进行所需的配置,便可改变网络流量检测规则,方便地检测需要检测的网络数据包,获得网络流量,从而解决了现有技术无法满足及时、灵活地采集分析网络数据,对网络流量进行检测的实际需求的问题,实现了网络流量检测规则的灵活配置,达到了及时、灵活地采集分析网络数据,满足对网络流量进行检测的实际需求的效果。


图1是根据本申请实施例一的一种网络流量检测方法的步骤流程图;图2是根据本申请实施例二的一种网络流量检测方法的步骤流程图;图3是根据本申请实施例三的一种网络流量检测方法的步骤流程图;图4是根据本申请实施例四的一种网络流量检测装置的结构框图。
具体实施例方式为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式
对本申请作进一步详细的说明。实施例一参照图1,示出了根据本申请实施例一的一种网络流量检测方法的步骤流程图。本实施例的网络流量检测方法包括以下步骤:步骤S102:通过web接口在数据库中设置网络流量检测规则。本步骤中,可以通过客户端提供的web接口在数据库中设置网络流量检测规则,也可以通过其它web接口,如服务器端提供的web接口在数据库中设置网络流量检测规则。
其中,所述数据库支持S/C模式。支持S/C模式的数据库可以为REDIS(REmoteDictionary Server)数据库,也可以为MYSQL数据库或ORACLE数据库,或者其它任意支持S/C模式的数据库。优选地,选择REDIS数据库作为实现网络流量检测的S/C模式数据库。与其它数据库相比,REDIS客户端代码轻量级,可以直接将REDIS代码编译进agent,而且REDIS有灵活的数据结构,不需要进行表设计。而虽然MYSQL,ORACLE数据库也都可以实现本申请的技术方案,但是表设计复杂,而且一旦使用这些数据库每个agent端都要安装MYSQL,ORACLE的开发包,增大了开发难度和负担。其中,agent是部署在宿主机上的守护进程,包括Iibpcap (网络数据包捕获函数库)、config analyzing (配置分析程序)、ethernetpacket analyzing(网络数据包分析程序),负责对宿主机上指定的网络流量进行抓包分析。网络流量检测规则用于检测指定的网络流量,如某个端口,或某个网段,或某个IP(Internet Protocol,网络互连协议)地址的网络流量,等等。步骤S104:客户端获取网络流量检测规则。步骤S106:客户端根据网络流量检测规则检测网络数据包,获取网络流量数据。设置好网络流量检测规则后,客户端获取该规则,并根据该规则,捕获网络数据包,对其进行检测,从而获得指定的网络流量。通过本实施例,在支持S/C(服务器/客户机)模式的数据库,如REDIS数据库中设置网络流量检测规则,通过设置的网络流量检测规则检测网络流量。支持S/C模式的数据库能够将服务器端与客户端相衔接,任何需要的时候,只要对数据库中的网络流量规则的进行所需的配置,便可改变网络流量检测规则,方便地检测需要检测的网络数据包,获得网络流量,从而解决了现有技术无法满足及时、灵活地采集分析网络数据,对网络流量进行检测的实际需求的问题,实现了网络流量检测规则的灵活配置,达到了及时、灵活地采集分析网络数据,满足对网络流量进行检测的实际需求的效果。实施例二参照图2,示出了根据本申请实施例二的一种网络流量检测方法的步骤流程图。本实施例中,在REDIS数据库中设置网络流量检测规则,使用Iibpcap捕获数据包。REDIS数据库支持S/C模块,是基于内存的key-value (键-值)存储数据库,其可以将数据持久化到硬盘,具有丰富的数据存储结构。Libpcap是unix/linux平台下的网络数据包捕获函数库,大多数网络监控软件都以它为基础。本实施例的网络流量检测方法包括以下步骤:步骤S202:使用web interface (web接口),在REDIS数据库中设置网络流量检测规则。Web interface是用于向REDIS数据库中写入网络流量检测规则(配置)的web前端,其利用REDIS的S/C模式,与部署在宿主机上的守护进程agent端衔接,实现网络流量规则的动态配置。当需要新的网络流量数据,只需使用web interface进行配置,即可方便地获得。网络流量检测规则可以指定对某个或某些源地址端口、目的地址端口、IP地址端口、或某网段的所有端口等进行流量检测,也即,网络流量检测规则中包含有上述待检测的地址和/或端口的信息。步骤S204:获取数据库中设置的网络流量检测规则。本实施例中,由agent获取REDIS数据库中设置的网络流量检测规则,agent是部署在宿主机(客户端)上的守护进程,包括libpcap、config analyzings ethernet packetanalyzing,负责对宿主机上指定的网络流量(如IP端口的网络流量)进行抓包分析。优选地,以agent所在的宿主机,也即Iibpcap所在的宿主机的hostname (主机名)为关键字,从REDIS数据库中读取网络流量检测规则。需要说明的是,采用hostname作为关键字从REDIS数据库中读取网络流量检测规则并不是唯一手段,因目前场景中的hostname有规范的命名规则,且可读性强,因此在目前的应用场景中使用hostname方便,使得本申请的网络流量检测方案更易于实现。但在实际应用中,本领域技术人员可以视不同的场景选择合适的关键字,例如IP地址,或者一个文件名,甚至机器BIOS中的一些信息等等,都可实现。步骤S206:根据获取的网络流量检测规则重新配置pcap-filter (包过滤条件)。pcap-filter是网络数据包过滤条件,或称包过滤语法。通过web端(webinterface)设置网络流量检测规则后,agent会每隔一段时间在REDIS中利用自己的主机名为关键字查找到自己所需的网络流量检测规则,重新配置pcap-filter。优选地,还可以通过 web 端(web interface)直接设置 pcap-filter,将各 agent 对应的 pcap-filter 写入REDIS中,而agent每隔一段时间会在REDIS中利用自己的主机名为关键字找到自己所需的 pcap-filter。然后,agent会使用Iibpcap提供的API (应用程序接口 )将pcap-filter编译成过滤代码,挂载到系统内核中,这样内核在分发数据包给agent前会先用这段过滤代码检验数据包,将不符合过滤规则的包丢弃,符合过滤规则的包才交给agent。新的过滤规则挂载上去会直接替换掉老的过滤规则。通过重新配置pcap-filter,实现了有针对性的捕获、分析数据包,减少了数据包分析复杂度,提高了数据包捕获分析效率。当然,在实际操作中,也可以不重新配置pcap-filter,而采用默认的pcap-filter,但可能产生捕获数据包无针对性,数量大、分析复杂等问题。步骤S208:根据重新配置的pcap-filter,使用Iibpcap捕获网络数据包进行检测,获取网络流量数据。Libpcap捕获的数据包,需经过pcap-filter过滤,符合条件的才会进行解包分析,统计并获取网络流量。步骤S210:将获取的网络流量数据以链表形式存储到REDIS数据库中。REDIS数据库有着内存访问的高速,比一般数据库丰富的存储结构,使得外围能够接入很多用户,且存储数据量大。将网络流量数据存储到REDIS数据库,能够方便快速地将获取的网络流量数据输出给用户。通过本实施例,web端的将配置(网络流量检测规则或包过滤条件)写入REDIS供agent端读取,agent根据该配置,将采集到的流量数据简单加工后存入REDIS。REDIS相当于一个数据的交换场所,外围的系统也可以通过读取REDIS中的流量数据进行进一步的分析。web端,agent,外围系统都通过REDIS提供的client端围绕着REDIS进行通信。通过REDIS,实现了在Iibpcap基础上加入网络流量统计逻辑,结合REDIS灵活的数据结构,高速的访问速度,极大地方便了 pcap-filter的更新、网络流量数据的传输与获取。实施例三参照图3,示出了根据本申请实施例三的一种网络流量检测方法的步骤流程图。本实施例中,设定使用REDIS数据库实现本实施例的网络流量检测方法,webinterface (web接口)为向REDIS中写入配置的web前端,通过Iibpcap捕获网络数据包,使用pcap-filter进行包过滤,使用agent进行抓包分析。其中,agent是部署在宿主机上的守护进程,包括 libpcap、config analyzing、ethernet packet analyzing,负责对宿主机上指定的ip:port的流量进行抓包分析。本实施例的网络流量检测方法包括以下步骤:步骤S302:通过web interface将配置(网络流量检测规则和/或包过滤条件)写入REDIS。本实施例中,配置中包含了需要统计宿主机上的ip:port的流量的信息,以及包过滤条件,如下:主机配置表(HASH)hostname:XXXX IP:PORT FILTER例如:hostl这台机器想统计 10.250.7.14 这个 ip 上的 ssh (22)和 mysql (3306)端口的流量配置如下:redis > hset hostname:hostl 10.250.7.14:22redis > hset hostname:hostl 10.250.7.14:3306步骤S304:agent定时以宿主机的hostname为关键字从REDIS中读出和宿主机相关的配置,根据最新的配置设置pcap-filter。步骤S306:通过Iibpcap提供的API在kernel层抓包,经过过滤器pcap-filter留下的以太包copy到应用层,进行解包分析,统计配置(config)中指定的ip:port的流量。步骤S308:将统计后得到的流量数据以链表的形式存放在REDIS中,进而输出给
客户端。一种流量输出表如下:流量输出表(LIST)traffic:XXXX:1P:PORT IN_VALUEiOUT_VALUEiTIMESTAMP其中,IN_VALUE和0UT_VALUE是从本端口流入和流出的字节数,TIMESTAMP的格式为 YYYY-MM-DD HH24:MI。例如:agent收集到了数据,显示格式如下:redis > lrange traffic:hostl:10.250.7.14:3306 O 10I)" 100020002011-7-1 16:10"2)" 300040002011-7-1 16:5"3)" 200060002011-7-1 16:0"4)" 1000003232302011-7-1 15:55"通过上述流量输出表,可以使用户方便快速地获得所需的网络流量数据。
通过本实施例,在libpcap的基础上加入统计逻辑,利用REDIS提供的丰富数据结构存储配置(网络流量检测规则和/或包过滤条件)以及网络流量数据;利用REDIS的S/C模式将web端与agent端衔接,实现动态配置。这样使用方便,需要新的ip:port的流量数据时,只要在web端加入配置,几分钟后就可以从REDIS中读取到相应的数据。REDIS有着内存访问的高速,比一般数据库丰富的存储结构,使得本申请外围能够接入很多用户。由此,经由web interface的灵活定制,在libpcap基础上加入了对ip:port的流量统计逻辑,实现了实时抓取并统计宿主机上指定的ip:port的流量,统计后汇入REDIS供使用;同时,结合REDIS灵活的数据结构,高速的访问速度,方便了 pcap-filter的更新、流量数据的传输与获取,从而极大地提高了本申请网络流量检测方案的适用性、实时性和方便性。实施例四参照图4,示出了根据本申请实施例四的一种网络流量检测装置的结构框图。本实施例的网络流量检测装置包括:第一获取模块402,用于客户端获取网络流量检测规则,其中,网络流量检测规则是通过web接口在数据库中设置的,所述数据库支持服务器/客户机模式;检测模块404,用于客户端根据网络流量检测规则检测网络数据包,获取网络流量数据。优选地,所述数据库包括以下至少之一:REDIS数据库、ORACLE数据库和MYSQL数据库。优选地,所述数据库为REDIS数据库。优选地,本实施例的网络流量检测装置还包括=REDIS设置模块(图中未示出),用于使用web接口,在REDIS数据库中设置网络流量检测规则。优选地,本实施例的网络流量检测装置还包括:存储模块406,用于在检测模块404根据网络流量检测规则检测网络数据包,获取网络流量数据之后,将获取的网络流量数据以链表形式存储到数据库,如REDIS数据库中。优选地,检测模块404包括:配置模块4042,用于根据获取的网络流量检测规则重新配置包过滤条件pcap-filter ;第二获取模块4044,用于根据重新配置的pcap-filter,使用libpcap捕获网络数据包进行检测,获取网络流量数据。优选地,第一获取模块402用于以客户端的主机名为关键字,从数据库中获取网络流量检测规则,如,以agent所在的宿主机(客户端)的主机名hostname为关键字,从REDIS数据库中读取网络流量检测规则。优选地,网络流量检测规则包括待检测的IP地址端口的信息。本实施例的网络流量检测装置可以设置在客户端。本实施例的网络流量检测装置用于实现前述多个相关方法实施例的网络流量检测方法,并具有相应的方法实施例的有益效果,在此不再赘述。需要说明的是,本申请的网络流量检测方案不仅适应于使用libpcap的UNIX/LINUX场景,本领域技术人员也可以根据本申请的实施例,将本申请的技术方案适应于其它适应场景,如仅需对agent代码进行适当调整后,应用于使用winpcap的WINDOWS系统场景
坐寸ο本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。以上对本申请所提供的一种网络流量检测方法及装置进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式
及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
权利要求
1.一种网络流量检测方法,其特征在于,包括: 客户端获取网络流量检测规则,其中,所述网络流量检测规则通过web接口在数据库中设置,所述数据库支持服务器/客户机模式; 所述客户端根据所述网络流量检测规则检测网络数据包,获取网络流量数据。
2.根据权利要求1所述的方法,其特征在于,所述数据库包括REDIS数据库。
3.根据权利要求1或2所述的方法,其特征在于,所述客户端根据所述网络流量检测规则检测网络数据包,获取网络流量数据的步骤包括: 所述客户端根据获取的所述网络流量检测规则重新配置包过滤条件pcap-filter ;根据重新配置的所述pcap-filter,使用Iibpcap捕获网络数据包进行检测,获取网络流量数据。
4.根据权利要求1或2所述的方法,其特征在于,所述客户端获取网络流量检测规则的步骤包括: 所述客户端以其主机名为关键字,从所述数据库中获取所述网络流量检测规则。
5.根据权利要求1所述的方法,其特征在于,所述网络流量检测规则包括待检测的IP地址端口的信息。
6.根据权利要求1或2所述的方法,其特征在于,在所述客户端根据所述网络流量检测规则检测网络数据包,获取网络流量数据的步骤之后,还包括: 所述客户端将获取的所述网络流量数据以链表形式存储到所述数据库中。
7.一种网络流量检测装置,其特征在于,包括: 第一获取模块,用于客户端获取网络流量检测规则,其中,所述网络流量检测规则通过web接口在数据库中设置,所述数据库支持服务器/客户机模式; 检测模块,用于所述客户端根据所述网络流量检测规则检测网络数据包,获取网络流量数据。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括: 存储模块,用于在所述检测模块根据所述网络流量检测规则检测网络数据包,获取网络流量数据之后,将获取的所述网络流量数据以链表形式存储到所述数据库中。
9.根据权利要求8所述的装置,其特征在于,所述第一获取模块,用于以客户端的主机名为关键字,从所述数据库中获取所述网络流量检测规则。
10.根据权利要求9所述的装置,其特征在于,所述数据库包括REDIS数据库; 所述检测模块包括:配置模块,用于根据获取的所述网络流量检测规则重新配置包过滤条件pcap-fiIter ;第二获取模块,用于根据重新配置的所述pcap-filter,使用Iibpcap捕获网络数据包进行检测,获取网络流量数据。
全文摘要
本申请提供了一种网络流量检测方法及装置,其中,网络流量检测方法包括客户端获取网络流量检测规则,其中,所述网络流量检测规则通过web接口在数据库中设置,所述数据库支持服务器/客户机模式;所述客户端根据所述网络流量检测规则检测网络数据包,获取网络流量数据。通过本申请,达到了及时、灵活地采集分析网络数据,满足对网络流量进行检测的实际需求的效果。
文档编号H04L12/26GK103188112SQ20111044857
公开日2013年7月3日 申请日期2011年12月28日 优先权日2011年12月28日
发明者饶希平 申请人:阿里巴巴集团控股有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1