一种基于分布式部署的网络流量探测系统的制作方法

文档序号:12133976阅读:526来源:国知局
一种基于分布式部署的网络流量探测系统的制作方法与工艺

本发明属于网络流量监测技术领域,特别是一种基于分布式部署的网络流量探测系统。



背景技术:

流量探测分析包括网络流量数据的抓包获取,然后分析提取网络的流信息。根据网络流深入分析网络流量状况,监控网络运行状态。

IPFIX(Internet Protocol Flow Information eXport),即IP数据流输出工作组,其目标是对网络流量测量提供一种通用的规范,这种通用的规范能够在不同的网路设备上使用。IPFIX工作组提出了一个标准的流量监测框架,此框架成为多数基于流的流量分析探测的通用框架,主要包括三个设备:Export,Collector和Analyzer。网络流首先经过Export,经过Export提取出符合条件的流记录送至Collector。Collector解析接收到的流记录报文由Analyzer进行分析和后续处理。

NetFlow是由Cisco公司创造开发,是一种基于流(flow)的网络流管理和分析技术。这项技术提供了一系列的高效服务,其主要功能包括网络流计数,网络规划,基于使用的计费,以及服务监控等。NetFlow通过处理数据流的首个IP包,生成缓存数据,以此来统计后续的数据包的信息。NetFlow具有特定标识字段,如(源地址IP,目的地址IP,源端口,目的端口,协议类型,TOS,路由器接口号)七元组。

网络流量探测分析系统的效率不仅要依赖流量分析技术,同时依赖系统的安装部署框架。一般的网络流量分析采用单机集中式结构,即将网络流量的获取、分析、存储、展示等在一台服务器上完成。这种安装部署方式可以对线形或者星形网络拓扑的网络,将流量分析系统部署在主要节点上就可以对网络进行流量探测和监控。但集中式网络流量分析方案无法满足大规模、复杂的网络结构需求。

对于网络拓扑结构复杂的网络,如网状拓扑的网络等采用集中式部署很难实现对整个网络的流量分析和监控。



技术实现要素:

本发明的目的在于针对现有技术的不足,提供一种基于分布式部署的网络流量探测系统,实现对复杂拓扑结构网络的流量监测分析和网络实时监控,所述系统包括流量探测分析节点、Agent-Source节点数据采集模块、Agent-DFI深度流量分析模块Analyzer和Agent-Sink网络流输出模块Collector;

所述流量探测分析节点通过Agent-Source节点数据采集模块对本地网卡抓包的方式获取流数据,或者从Agent-Sink网络流输出模块Collector接收报出的NetFlow+流信息的方式获取流数据,并进行流量分析;

所述Agent-source模块用于采集获取网络流,Agent-DFI深度流量分析模块用于深度网络流检测,Agent-Sink网络流输出模块Collector用于网络流和分析结果的输出;

所述流量探测分析节点包括Mater主节点和Slave从节点,所述Master主节点由Slave从节点动态选举产生,Master主节点具有网络流量分析功能的同时还具有区域级网络流量分析监控能力。

本发明所述Agent-Sink网络流输出模块Collector将分析结果输出到关系数据库进行存储或将分析结果输出到系统其他节点的Agent-source节点数据采集模块。

本发明所述流量探测分析节点通过Agent-Source模块对本地网卡抓包的方式获取流数据,包括如下步骤:

步骤1-1,Agent-Source模块调用Libpcap(网络数据包捕获函数库)从网卡设备的TCP/IP协议栈获取以太网帧数据;

步骤1-2,对获取的以太帧数据进行底层协议处理;

步骤1-3,统计系统实时流量信息和历史流量信息;

步骤1-4,生成流缓存NetFlow+Cache,根据流的连接情况存储和报出流信息。

本发明步骤1-2包括如下步骤:

步骤1-2-1,对获取的帧数据进行链路层处理获取IP层数据,然后进行IP层分析获取四元组信息;

步骤1-2-2,判断TCP(Transmission Control Protocol传输控制协议)连接是否存在,若存在则直接进行网络传输层处理;若不存在则先建立连接然后进行传输层处理。

本发明步骤1-2-1中所述四元组信息包括源IP、目的IP、源port(port即端口)和目的port。

本发明所述Master主节点由Slave从节点动态选举产生,包括如下步骤:

步骤2-1,当Slave从节点Agent启动运行时,先进行初始化读取配置信息,获取本节点的节点ID号;

步骤2-2,发送广播报文询问区域级系统中的Master主节点是否存在,如果已经存在Master主节点,则获取Master主节点的节点信息,并将本Slave从节点的Agent-Sink网络流输出模块Collector设为Master主节点的Agent-Source模块;如果在等待T时间(T一般取值为10s)内未收到Master主节点的应答消息,则选举出新的Master主节点;本Slave从节点发送广播形式的报文询问系统中其他Slave从节点的节点ID,并在等待应答时间M内(M一般取值为30s)维护接收到Slave从节点的最大ID值;

步骤2-3,将系统中ID最大的Slave从节点推选为新的Master主节点,新的Master主节点向系统中其他Slave从节点发送消息告知自己的节点信息,Slave从节点接收到收到消息后更新自己的Agent-Sink网络流输出模块Collector为新的Master主节点的Agent-Source模块;

步骤2-4,Master主节点和Slave从节点通过心跳消息维持保活,当失去心跳连接时,第一个检测到断开心跳连接的Slave从节点将重复步骤2-2到步骤2-4重新选举出新的Master主节点完成Master主节点的抗毁接替。

Agent-DFI深度流量分析模块(Analyzer),Agent-Sink网络流输出模块(Collector)。Agent-Source可以通过libpcap网卡抓包的方式获取本地流记录,同时也可以同过其他节点Agent-Sink获取流记录。区域级的Master主节点选举出中心级Master主节点支持系统分层多级扩展。

2.流量采集探测节点主从功能复用、抗毁接替

部署的流量探测节点Mater主节点和Slave从节点都具有网络流量数据抓取、存储分析、流输出的功能,能够实现功能服用。同时Master主节点通过和多个Slave从节点通过心跳数据包进行保活,当发现Master主节点出现问题可通过在其他Slave从节点通过选举的方式产生新的Master主节点替代之前的Master主节点实现抗毁接替。

本发明主要内容是通过分布式部署的流量探针Agent分析探测流量信息。从区域节点Agent中动态选举的方式产生Master Agent节点,实现多级分层部署。同时Master主节点作为中心节点可以提供区域实时流量分析、提供基于图表的可视化网络流量分析结果。

本发明采用分布式部署的方式,可以很好的探测和监控整个网络的状况。分布式部署方案是将网络流量采集分析模块作为探针部署安装在多个网路节点上,将采集分析的模块发给中心模块进行流量信息的汇总分析。这种部署方式可以探测分析整个网络的流量状况。

有益效果:

随着网络技术的发展,网络在规模、结构日渐扩大和复杂,网络所承载的业务流量也飞速增长。通过本发明提出的分布式网络流量探测方法能够可靠、有效的对网络业务流量进行监测并及时、准确的进行流量和流向分析,进而挖掘网络资源潜力,同时在应对复杂网络安全方面提供一些技术手段,提高网络健壮性。

附图说明

下面结合附图和具体实施方式对本发明做更进一步的具体说明,本发明的上述或其他方面的优点将会变得更加清楚。

图1是本发明中的节点网络流获取模块Agent-Source示意图。

图2是本发明Agent-Source本地获取流信息底层协议处理流程图。

图3是节点Agent级联扩展图

图4是本发明流量探测节点Master主节点选举流程图。

具体实施方式

下面结合附图对发明的技术内容进行详细说明:本发明所述系统包括流量探测分析节点、Agent-Source节点数据采集模块、Agent-DFI深度流量分析模块Analyzer和Agent-Sink网络流输出模块Collector;

所述流量探测分析节点通过Agent-Source节点数据采集模块对本地网卡抓包的方式获取流数据,或者从Agent-Sink网络流输出模块Collector接收报出的NetFlow+流信息的方式获取流数据,并进行流量分析;

所述Agent-source节点数据采集模块用于采集获取网络流,Agent-DFI深度流量分析模块用于深度网络流检测,Agent-Sink网络流输出模块Collector用于网络流和分析结果的输出;

所述流量探测分析节点包括Mater主节点和Slave从节点,所述Master主节点由Slave从节点动态选举产生,Master主节点具有网络流量分析功能的同时还具有区域级网络流量分析监控能力。

本发明所述Agent-Sink网络流输出模块Collector将分析结果输出到关系数据库进行存储或将分析结果输出到系统中其它节点的Agent-source模块。

如图1所示,本发明所述流量探测分析节点通过Agent-Source节点数据采集模块对本地网卡抓包的方式获取流数据,,系统分布式部署时还包括下一级节点的输出流数据,步骤如下:

步骤1-1,Agent-Source节点数据采集模块调用Libpcap(网络数据包捕获函数库)从网卡设备的TCP/IP协议栈获取以太网帧数据;

步骤1-2,对获取的以太帧数据进行底层协议处理和应用层协议处理;

步骤1-3,统计系统实时流量信息和历史流量信息,包括本地网卡原始网络流和Agent-Sink网络流输出模块进行网络流接收后的数据;

步骤1-4,生成流缓存NetFlow+流记录,根据网络流的连接情况存储和报出流信息,流信息包括本地网卡和Agent-Sink网络流输出模块进行网络流接收后的数据。

如图2所示,本发明步骤1-2包括如下步骤:

步骤1-2-1,对获取的帧数据进行链路层处理获取IP层数据,然后进行IP层分析获取四元组信息;

步骤1-2-2,根据同步信号SYN是否等于1判断TCP连接是否存在,同步信号SYN(synchronous)是TCP/IP建立连接时使用的握手信号,若存在则直接进行网络传输层处理;若不存在则先建立连接然后进行传输层处理。

本发明步骤1-2-1中所述四元组信息包括源IP、目的IP、源port(端口)和目的port。

如图4所示,本发明所述Master主节点由Slave从节点动态选举产生,包括如下步骤:

步骤2-1,当Slave从节点Agent启动运行时,先进行初始化读取配置信息,获取本节点的节点ID号;

步骤2-2,发送广播报文询问区域级系统中的Master主节点是否存在,如果已经存在Master主节点,则获取Master主节点的节点信息,并将本Slave从节点的Agent-Sink网络流输出模块Collector设为Master主节点的Agent-Source模块;如果在等待T时间内未收到Master主节点的应答消息,则选举出新的Master主节点;本Slave从节点发送广播形式的报文询问系统中其他Slave从节点的节点ID,并在等待应答时间M内维护接收到Slave从节点的最大ID值;

步骤2-3,将系统中ID最大的Slave从节点推选为新的Master主节点,新的Master主节点向系统中其他Slave从节点发送消息告知自己的节点信息,Slave从节点接收到收到消息后更新自己的Agent-Sink网络流输出模块Collector为新的Master主节点的Agent-Source模块;

步骤2-4,Master主节点和Slave从节点通过心跳消息维持保活,当失去心跳连接时,第一个检测到断开心跳连接的Slave从节点将重复步骤2-2到步骤2-4重新选举出新的Master主节点完成Master主节点的抗毁接替。

很多分布式流量探测系统主要采用两级架构即进行流采集的代理节点和进行流量分析和流量监控的中心节点,这类分布式系统只能支持规模较小的网络。本发明流量探测系统中的Master和Slave两类节点采用功能复用的方式实际为同一种类型的节点。节点Agent的模块结构如图3所示,每个节点主要包含3个模块:Agent-source模块、Agent-DFI模块、Agent-sink模块。Agent-source模块主要进行网络流采集获取,Agent-DFI模块主要进行深度网络流检测,Agent-sink模块主要负责网络流和分析结果的输出,可将结果输出到关系数据库进行存储也可以将结果输出到其他节点的Agent-source。这3个模块均支持功能配置和扩展。系统对级联扩展支持如图3所示;区域级网络中的Slave从节点通过Agent-sink到Agent-sink的方式把网络流和流分析结果输出到区域级网络的Master主节点,多个区域级Master主节点可以将各区域级的网络流和分析结果汇聚到更高一级的中心Master主节点。通过这种级联方式提高探测系统的扩展能力。同时各级Master主节点提供了观测和监控网络流量状况的能力。

本发明提供了一种基于分布式部署的网络流量探测系统,具体实现该技术方案的方法和途径很多,以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。本实施例中未明确的各组成部分均可用现有技术加以实现。

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