一种基于sFlow的网络流量监控方法与流程

文档序号:18471162发布日期:2019-08-20 20:18阅读:1749来源:国知局
一种基于sFlow的网络流量监控方法与流程

本发明涉及网络安全技术领域,具体涉及一种基于sflow技术对网络流量的监控技术。



背景技术:

随着sflow技术的出现,由于sflow技术的成本较低,监测大型网络也不会消耗额外资源,并且不会带来新的网络冲突。sflow的流量计算方式中,包含大量数据信息,有潜力成为工业标准。sflow的特点十分适合用于网络流量测量与分析。sflow的优势在于,它能够在整个网络中,做到连续且实时的监视每一个源端口和目的端口。由于sflow不需要镜像监视,因此它不会使网络整体性能下滑。

sflow的完整实现一般由两部分构成:sflowagent和sflowreceiver。数据报文会嵌入至sflowagent中,在进行采样后,会将采样后的编码发送给sflowreceiver,由其经过数据分析和数据聚合后,即可对网络流量做出分析,监控具体网络流量的具体项。

使用sflow进行网络流量监控时,无需将数据包全数都发送至receiver,因为在发送数据包之前可以进行数据聚合以排除诸多重复度较高的数据。

sflow主要从两个层面上统计网络流量:统计数据包中所交换的数据流或是指定总时间内进行固定时间间隔的采样。最重要的是,在采样率不同的情况下,sflow能对整个交换机或仅对部分端口实施监视,这就能保证设计管理方案时的灵活性,自主选择系统的性能消耗。综上说述,与以前的网络监视技术,如探针、netflow相比,sflow的优势点为:用户可自行配置的采样速率、对设备性能没有影响、对网络带宽的影响很小、具有实时分析能力的一直在线技术。因而有必要提出一种更实用的基于sflow技术对网络流量的监控方法。



技术实现要素:

本发明的发明目的在于:提供一种更便捷基于sflow技术的网络流量监控方法。

本发明的基于sflow技术的网络流量监控方法,具体包括下列步骤:

步骤s1:基于预先设置的满足网络需求的采样率,对sflow数据包进行采样,并将采样的原始数据分成采样数据和接口统计数据;其中采样数据为直接从网络中取得的数据包;接口统计数据为交换机或路由器接口根据对应数据包进行解析取得;

步骤s2:设置采样数据的特征信息,并将每个特征分布的均方差与平均值的比值作为每个特征的权重,对每条采样数据的多维特征进行数据聚合处理;

步骤s3:在sdn控制器上设置knac分类处理模块,用于对sdn网络下的流量分类;当通过sflow交换机未能为当前数据包找到匹配项时,再将当前数据包交由sdn控制器的knac分类处理模块聚类处理,再通过sflow交换机进行转发;

由于sflow是可以不断找到匹配项的,所有的数据都可以被当为匹配项,因为都是采样得到的,但是会有大量相对重复的数据以及少量明显异常的数据,本发明通过数据聚合筛选出优质数据,优质数据(或称代表数据)有益于于提升后续处理的精度。

步骤s4:基于网络正常状态下的指标值衡量网络的正常状态,并对非正常状态进行监控和告警。

综上所述,由于采用了上述技术方案,本发明的有益效果是:提供了一种基于sflow进行流量监控的方案。即在满足低性能损耗的前提下,本发明以agent为核心的采样方式采集数据,并通过聚类的数据优化使数据聚合得到精度更高的数据,在sdn网络下进行分类,并根据短周期快速采样,计算源端口号和目的端口号的常态指标值,最终进行网络流量监控的判断。

附图说明

图1是本发明中用sflow技术进行网络流量监测的流程图;

图2sflow接收进程及数据存入数据库的过程。

图3是监控进程获取相关流量。

图4是对ip进行流量监控的引入。

图5是对ip进行流量监控的最终结果。

图6是分析流量时所需要用到的指标。

图7是基于协议的网络吞吐量统计。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面结合实施方式和附图,对本发明作进一步地详细描述。

参见图1,本发明的基于sflow技术的网络流量监控,包括下列步骤:

步骤s1:在sflowagent上采样与编码;

步骤s2:数据预处理与特征优化;

步骤s3:基于knac的流量分类;

步骤s4:基于常态指标值进行异常检测。

各步骤具体为:

步骤s1:在sflowagent上采样与编码;。

当sflow的路由器和交换机得到流量信息并将其输出为sflow报文的形式后,可以看到sflow报文中主要包含的流量信息为package大小、总流量、每秒流量、源端口号、目的端口号、总时长等等能全面反应流量的信息。由于sflow支持多种协议并且协议之间也有对应报文,因而只要将流量数据在相关的路由器或者交换机中进行转发,就能存储这些流量信息,并且根据需要灵活地选择对应路由器或交换机进行解析。

数据采样与编码。

在集成asic(applicationspecificintegratedcircuit)芯片后,就可以对sflow数据包进行采样,并将采样的原始数据分成采样数据和接口统计数据两种,前者是直接从网络中取得的数据包,后者是交换机或者是路由器接口根据对应数据包进行的解析。

数据采集中,往往会关注单次采样的时间间隔、接口的总流量、成功接收到的包数以及未能成功接收到的包数等等指标。

最终,将这些数据进行聚合后,再一起发送到sflow的agent。

一台交换机或路由器必须有一个总的agent并作为根节点,在根节点下可以延伸出很多agent的子节点。agent有三个子模块,分别为;sampler、poller、receiver。其中,sample负责采集包的完整样本;poller负责采集非完整样本,receiver则会收集包的ip地址与对应端口号。

预先设置符合网络需求的采样率后,即可进行抓包,这种机制上决定了由sflow采样可以节约网络设备的内存或是提高网络设备的流畅性。在采样后,需要得到以下数据:源mac地址、目的mac地址、源ip地址、目的ip地址、osi各层结构中协议类型、端口号、url。

步骤s2:数据预处理与特征优化。

在用sflow分析流量时,即便设置适中的采样率,只要分析系统还在工作,就会生成大量数据,并且这些数据都是有必要统计的,难以在控制字段的层面进行数据压缩,所以,本发明将数据进行聚合汇总,优化需要分析的数据条数,是基于sflow流量监测的必要环节。在本发明中,在进行数据采集后,需要从根据时间段(即采集颗粒度不要太细)、ip段、端口号、协议类型、访问频率、流量近似大小等维度进行聚合。需要将高度相同的数据聚合,从而减少大量无意义的数据,节省出磁盘空间,进而提升系统的i/o性能。

在特征数据的预处理中,为保证数据的合理,需要控制特征的维数。为了数据清洗,需要对特征数值的分布做出特征优化的办法。需要对不同网络流量的数据在某一特征处取均方差,再对其进行线性回归,最终可以得到某一特征的精度。

计average(n)为第n个特征分布的平均值,standarddeviation(n)为第n个特征分布的均方差,weight(n)为第n个特征的权重,则有:

将standarddeviation(n)带入至计算权重的公式中,可以使得数据预处理的误差最小。

步骤s3:基于knac的流量分类。

当前,流量分类的主要方法有:基于标准端口号匹配、基于负载分类、基于流统计特征。在基于标准端口号匹配的方法中,由于端口号的差异较大,特别是p2p中动态分配端口号的办法,会导致可分析的端口号有限且端口号的稳定度不足,因而这种匹配端口号的分类方式目前已使用不多使用了。基于负载的分类方法中,虽然检测负载中的协议变更可以有限的找到异常特征并进行比对,但由于大量非标准协议的存在或者公用的协议规范的不完善,也使得这一办法不稳定;若仅仅统计分析流的特征,则无法兼顾于私密流量系统或者带有加密算法的流量系统中,容易导致数据误差。所以,需要基于sdn网络下实现流量分类。

为了在sdn网络下实现流量分类,将基于应用簇集的k近邻分类器(knac)作为模块集成到sdn控制器中。在sdn网络中,数据包会预先由sflow交换机进行处理,sflow交换机将对流进行匹配,只要能找到匹配项,就会生成带有流信息的数据包;若未能找到匹配项,交换机中的数据包将交由knac模块进行处理。sdn控制器会对未能找到匹配项的数据采用一定数据聚类策略(例如设置聚合的维度为:ip段、端口号、协议类型、访问频率),进行聚类处理,得到聚类结果,再将未匹配项连同聚类结果一起发送给sflow交换机,由其基于聚类结果再次进行转发匹配处理,从而使得未匹配项最终仍然会发送至sflow交换机上,实现在sflow交换机上的数据细粒度管理。这样,所有的数据包最终都能在交换机中直接转发,由于sdn控制器的集中控制,因而knac分类器只需在sdn网络中部署一次,也提供了性能上的高效。

参见图2,sflow对进程的管理包括共享内存和消息队列,其中消息队列包括n个了sflow接收进程,再将各接收进程收到的数据转换为二进制文件后存入数据库中,在sflow对进程的管理中,会对流量进行读取与分析,并将分析结果存入数据库。图3为对具体进程的流量统计示意图。

步骤s4:基于常态指标值进行异常检测。

在网络异常检测中,首选需要明确网络的正常状态,具体衡量标准基于网络正常状态下的指标值。指标值可以从以下方面进行选择:单位时间内网络流量、单位时间内流量的流入与流出的比率、源端口数与目的端口数的占比。当网络处于非正常状态时,这些指标的数据图谱就会发生波动或是震荡。所以网络异常监测的重点环节就是建立网络正常状态下的重要指标值。又由于可以选择的分析参数过多,且部分数据会因为用户的不同行为(如用户的忙碌或待机状态),因而为尽可能的避免误差,可以通过对ip的流量监测来把握相关指标值,如图3所示。

在网络正常状态的分析中,还可以通过以往的经验来增设阈值,如若在以往的统计中报文的转发率为80%,则数据80%左右就是合理的,而若低于80%则说明可能转发设备存有问题,可能是物理材料或是网络链路上的问题。但是基于以往经验的做法是不够严谨的,在不同环境中,同一设备的指标值变化可能也会很大。例如若对网络总流量进行分析,仅仅是基于阈值对导致当前的分析办法无法应对合理的网络流量的爆发式涌入,因此将时间范畴的颗粒度分析尽量精细化。

在进行常态值分析之前,首先要控制变量,保值数据采集、聚类及分析过程中的数据稳定。不同型号、配置环境的常态值往往不同。在数据采集的过程中,网络需要长期稳定,需要进行多次单位时间内的采集,以规避掉因为网络延迟或掉线而引发的数据不精确;在此基础上进行数据聚合,精度才会高,同时起到节约分析成本的效用。在sflow协议中,源端口数和目的端口数是十分适合用来反映网络流量情况的一个数据组,因此它们可以被用于异常监控。

对于一个大型网络来说,网络流量的变化在不同的时间表现的完全不一样,对于不同的ip地址而言网络流量的变化显然不尽相同。如大型ftp服务器ip流量监测图(图5)所示。需要注意的是,不能对全天各时段的网络流量进行统计,然后计算其流量均值,以此均值作为该网络下的网络流量的常态指标值,再用这个指标值来衡量当前网络状态,这样的做法忽略了网络流量合理的波动。如果以时间间隔为划分,统计各时间间隔内流量的情况,最终对这些值进行加权来得出网络流量的常态指标值。具体流程如下:以15秒为采集间隔的周期,连续采集网络流量数据并进行分析,而总分析周期控制在30分钟以内。

记standard为指标值,sport为15秒内源端口数总量,dport为15秒内目的端口数总量。则sport/dport数值的范围,可以用于确立源和目的端口数的常态指标值。由于需要对sport/dport数值进行加权,才能精确得出指标值,故计算公式最终为:

在方案的实施中,需要关注目标ip地址的源ip、目的ip、源端口号、目的端口号、源端口数、目的端口数、ip协议、收包容量、起始时间、起始标记等等信息,以便于能通过它所接收到的包体数量、包体容量等等信息分析异常。如图6所示。图7则是通过ip协议,对网络当前时段的吞吐量进行分析。

以上所述,仅为本发明的具体实施方式,本说明书中所公开的任一特征,除非特别叙述,均可被其他等效或具有类似目的的替代特征加以替换;所公开的所有特征、或所有方法或过程中的步骤,除了互相排斥的特征和/或步骤以外,均可以任何方式组合。

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