NetFlow流量采集与聚合的研究实现.doc_第1页
NetFlow流量采集与聚合的研究实现.doc_第2页
NetFlow流量采集与聚合的研究实现.doc_第3页
NetFlow流量采集与聚合的研究实现.doc_第4页
NetFlow流量采集与聚合的研究实现.doc_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

NetFlow流量采集与聚合的研究实现时间:2009-07-10 09:21:32来源:现代电子技术作者:郭剑云 曹庆华0 引 言近年来,随着信息技术的飞速发展,越来越多的企业和大型机构在其内部构建基于网络的应用,复杂程度及对网络的依赖程度日益提高,各种各样的网络问题也随之产生。网络流量监测是网络管理和系统管理的一个重要组成部分,网络流量数据为网络的运行和维护提供了重要信息。这些数据对网络的资源分布、容量规划、服务质量分析、错误监测与隔离、安全管理都十分重要。因此,对网络流量及相关情况实施科学合理的监管和深入分析,成为网络管理的重要环节之一;同时,它也为网络问题提供有效解决方案及进行网络的规划。 目前的网络流量分析方法主要有基于SNMP、基于实时抓包分析、基于网络探针和基于:Flow技术等几种。NetFlow基于Flow技术,目前已得到大多数网络设备厂商的支持,提供了网络监测方面非常完善的应用。基于NetFlow的流量采集方法可以获得包括源目的主机IP、应用协议类型、源目的端口等详细信息,根据这些信息就可以对协议(应用)、主机IP(用户)以及AS域等进行统计排行和趋势分析,也可对异常流量进行监测分析。此外,NetFlow避免了大量部署和配置监测探针的复杂过程,使得网络性能分析更加全面、灵活且简单易用。l NetFlow技术 NetFlow是Cisco公司提出的基于Cisco IOS系统的一种应用。它用于提供网络设备上数据包形成的“流”的统计信息,并逐渐演变成为网络流量统计和安全分析的主要手段。目前利用:NetFlow可以实现网络流量监测,用户应用监控,网络安全,网络规划以及流量计费等功能。 NetFlow有两个核心的组件:NetFlow缓存,存储IP流信息;NetFlow的数据导出或传输机制,NetFlow利用此机制将数据发送到网络管理采集器。11 流(Flow)的定义 一条流由一个源主机与一个目的主机间的单方向传输的网络数据包组成,其中,源和目的主机由各自的IP地址和端口号来标识。一条流一般由以下七个关键字段惟一标识: 源地址 目的地址 源端口号 目的端口号 第3层协议类型(如TCP,UDP) 服务类型 入逻辑接口标示符12 流(Flow)格式启动NetFlow的设备会输出其缓冲区里的信息,以UDP包的形式传送给NetFlow流量采集器。包由包头和若干流记录组成。常用的NetFlOW输出包格式共有5个版本,它们分别是Version 1,Version 5,Ver-sion 7,Version 8和Version 9,其中V5是最为流行和成熟的版本,目前得到最广泛的使用。最新的V9已经被列入IETF的标准,并有待进一步研究和规范。V9采用了模板技术与流记录相结合的方式,使NetFlow输出包的格式具有动态和可扩展的特性。NetFlow V9的输出格式主要由三部分构成: (1)包头部(Packet Header):包括版本号、包中数据流总数、系统时间、数据流序列、数据源ID等。 (2)模板流集(Template FlowSet):包含一个或多个模板,模板是用于描绘数据流中各个数据段的含义,可以在路由器上根据需要自行设置模板。 (3)数据流集(。Data FlowSet):包含多个数据流,每个数据流集通过模板ID对应某个模板。数据采集端根据模板来解析数据流。2 NetFlow流量采集与聚合21 系统概述 根据NetFlow的特点,设计并实现了一个网络流量监测系统,其系统结构如图1所示。 当NetFlow采集器接收到从路由器发送来的Net-Flow数据包后,采集器将进行数据包的解析和数据流聚合,形成多种适合统计分析需要的数据,再分门别类地存入数据库。分析器则根据前端不同的查询请求,依照一定的查询策略从数据库不同的表中提取相应数据进行分析展现。 本系统的后台采集器和聚合处理部分用JAVA编写实现,数据库采用开源的MySQL,而NetFlow流量分析利用Tomcat服务器通过Web方式展现,前台部分用JSP编写实现。工作的重点即在于数据采集、数据聚合以及数据库设计部分。22 NetFlow流采集221 采集器的设计 数据采集模块是整个系统的基础。由于。NetFlow数据流量非常大,为防止丢包系统采用缓冲区和线程池结构,如图2所示。 当采集器监听到一个NetFlow数据包时,将该数据包接收到缓冲区,并从包解析线程池中取出一个线程,根据相应的NetFlow的报文格式解析出数据流信息,将该原始流信息放入缓冲区,然后将原始流存入数据库,同时采用相应的聚合策略聚合原始流生成聚合流并存入相应的数据库中。222 NetFlow数据包接收与解析由于NetFlow数据是借助于UDP数据报来传送,因而倘若后续的处理速度跟不上数据包到达的速度,则会出现严重丢包的现象。为解决高速大流量数据的及时接收及较低丢包率问题,采用了多线程的方式来实现。用独立的两个线程分别完成数据接收和解析操作:接收数据的线程在特定的IP地址监听相应的UDP端口,接收到的数据暂存在缓冲区中;解析线程从缓冲区提取数据,按照相应的报文格式进行解析。由于接收线程和解析线程共享同一个临界资源,即接收的缓冲区,需要对临界资源进行加锁操作。 下面为部分实现多线程采集的JAVA代码实例,其中packet为接收的NetFlow数据包对象,linkedLst为linkedList容器,利用synchronized进行线程间同步。 (1) 接收线程23 NetFlow流聚合NetFlow的原始数据数据量非常庞大,保存每一条流数据的原始记录将会使对数据进行查询分析时产生效率低下的问题,在绝大部分应用中也没有必要把数据粒度设计得如此之小。所谓流量聚合,是指对符合NetFlow数据格式的原始流记录根据一定条件进行流量合并,实现多条流合并为一条的过程,以实现原始流的压缩整理。231 聚合策略 流量聚合有三个关键要素:聚合条件(F)、时间粒度(T)和聚合项(C)。满足相同聚合条件和时间粒度的流进行流量叠加,并保留聚合项。三元组聚合策略:,其中: 按照实际流量分析的需要,从F,T,C中各取出一个值组成一个聚合策略。对于T的粒度要根据实际监控的时间长短和监测精度来设置,一般来说T3 min适合于当天实时流量的监测;T30 min用于一周流量的分析;T3 h用于一月内流量的分析。232 聚合的实现 对于一个新采集的原始流,必须能根据其所携带的聚合条件信息快速匹配是否已存在与其相同聚合条件的聚合流,若有则做流量叠加,若没有则创建一条新的聚合流。Hash表具有从Key快速映射到Value的特点,这种特点对于实时性较高的聚合非常有意义。图3为流量聚合的Iash表设计。 在图3中聚合条件(F)作为Key,聚合项(C)作为Hash函数的映射值,时间粒度(T)作为Hash表导出到数据库的时间。这样可以满足实时流量监测的需要,同时也压缩数据减少存储空间,提高数据的查询效率。3 实际NetFlow流采集与流量监测 在本系统设计的数据采集器的支持下,系统数据库为前端分析提供了充足且多样化的数据准备,前端程序只需通过简单的查询语句即可得到所需的数据集,简化了查询的工作量。利用该系统采集NetFlow数据包50 000个,时间持续约7 h,时间粒度为3 min,主要检验丢包情况,以及聚合后压缩效率。这次采集无丢包发生,表1为该系统采集的数据结果。 图4是系统由所采集的数据生成的该时段的流量监测图。4 结 语 NetFlow数据流的海量特征使得服务器程序的效率至关重要,因此基于NetFlow的流量监测的主要任务是如何根据应用保存最重要的网络流特征以及如何更高效地实现数据检索。基于NetFlow特点,提出了一套适用于大流量网络的流量采集与聚合存储方案。流量采集通过多线程和缓冲区机制实现,有效提高了流量采集的可靠性。采集的原始流经聚合,并通过合理的分级存储策略进行存储组织,为前端的数据分析提供了全面支持。本系统在实际应用中取得了良好效果。下一步还将对采集和多级聚合存储方案进行改进,以丰富系统对网络流量统计分析功能,并力争为异常流量分析提供较为完善的数据支持。第二篇:Netflow的版本演进在Netflow技术的演进过程中,思科公司一共开发出了5个主要的实用版本,即:* Netflow V1,为Netflow技术的第一个实用版本。支持IOS 11.1,11.2,11.3和12.0,但在如今的实际网络环境中已经不建议使用。* Netflow V5,增加了对数据流BGP AS信息的支持,是当前主要的实际应用版本。支持IOS 11.1CA和12.0及其后续IOS版本。* Netflow V7,思科Catalyst交换机设备支持的一个Netflow版本,需要利用交换机的MLS或CEF处理引擎。* Netflow V8,增加了网络设备对Netflow统计数据进行自动汇聚的功能(共支持11种数据汇聚模式),可以大大降低对数据输出的带宽需求。支持IOS12.0(3)T,12.0(3)S,12.1及其后续IOS版本。* Netflow V9,一种全新的灵活和可扩展的Netflow数据输出格式,采用了基于模板(Template)的统计数据输出。方便添加需要输出的数据域和支持多种 Netflow新功能,如Multicase Netflow,MPLS Aware Netflow,BGP Next Hop V9,Netflow for IPv6等。支持IOS12.0(24)S和12.3T及其后续IOS版本。在2003年思科公司的Netflow V9还被IETF组织从5个候选方案中确定为IPFIX(IP Flow Information Export)标准。Netflow数据输出格式下面对网络流量和流向分析系统中最常使用的Netflow V5数据输出的数据包格式进行一个简单介绍。下图为Netflow输出数据包的包头格式:下图为包含在每个Netflow V5输出数据包中的具体数据流的流量和流向统计信息的数据格式:Netflow V9的数据输出格式与V5有较大区别,主要是因为Netflow V9采用了基于模板式的数据输出方式。网络设备在进行Netflow V9格式的数据输出时会向上层管理服务器分别发送数据包模板和数据流纪录。数据包模板确定了后续发送的数据流纪录数据包的格式和长度,便于管理服务器对后续数据包的处理。同时为避免传输过程中出现丢包或错误,网络设备会定期重复发送数据包模板给上层管理服务器。如何利用Netflow技术进行IP网的流量和流向分析为充分利用思科Netflow技术在网络流量和流向信息采集和分析领域的强大功能,运营商可以对现有网管中心的网络流量管理系统进行技术改造,在原有利用SNMP协议或RMON协议进行数据采集的基础上,用Netflow技术对其进行补充甚至进行替代。下面对利用Netflow技术在运营商网络中的几种典型使用方式进行介绍。互联网交换中心(NAP)流量和流向监控互联网交换中心作为专为ISP提供网络互联和交换网络通信的汇聚点,需要及时、准确地掌握各个ISP网络间的通信流量和流向数据,为交换中心合理规划路由策略和调整ISP的接入带宽提供依据。为此互联网交换中心的管理员可以在核心交换设备与每个ISP互联的网络端口上启动Netflow数据采集。如果ISP的接入端口为高速率端口(如速率超过 OC-12),还可以选择采用数据包抽样Netflow采集方式,减少对核心交换设备的资源消耗和Netflow统计结果的输出数据量。通过进一步分析还可以发现,交换中心作为提供ISP互联的服务商,只需要关注下联ISP间的通信流量和流向统计,而无需进行更加详细的统计分析(如基于IP地址,IP网段,服务类型等的流量和流向分析)。由于每个ISP都有各自不同的BGP AS号码,所以交换中心管理员还可以进一步优化核心交换设备的Netflow数据输出选项:利用Netflow V8开始支持的统计数据内置汇聚功能,由核心交换设备对采集到的原始统计数据进行针对不同源和目的地BGP AS号的统计汇总,只把汇总后的统计结果发送给上层管理系统。这样不但可以大大减少输出给上层管理系统的统计数据量,还可以简化上层管理系统的数据分析负荷,使其能够更加简便快速地生成所需的统计报表。下图为一个典型的互联网交换中心利用Netflow技术进行ISP间通信流量和流向管理的系统结构图:运营商间互联链路的流量和流向监控每个电信运营商的网络都是通过互联链路与一个或多个其它运营商的网络相连接的。运营商为更好地服务自己的企业客户或个人用户,需要了解自己客户访问网络的模式以及访问网络资源的所在位置;同时运营商为了和其它运营商谈判签订双边或多边网络访问协议,也需要对双方相互访问的网络资源进行评估,这些都需要对双方网络互联链路进行通信流量和流向的监控和统计。为实现对运营商间互联链路的流量和流向管理,管理员可以在每个与其它运营商互联的边界路由器上启动Netflow,对互联网络端口进行数据采集。根据互联链路的端口速率,可以选择全Netflow采集或数据包抽样Netflow采集方式。由于管理员需要分析自己客户的详细网络访问纪录,了解他们需要获取的网络资源的确切位置,所以管理中心应该收集尽可能详尽的Netflow统计数据,意味着启动了Netflow数据采集的边界路由器不应做任何统计数据的汇聚,而应把Netflow原始统计记录直接发送给上层管理服务器。管理服务器在接收到各个边界路由器发送来的Netflow原始统计记录后,可以对数据进行统一分类处理或把原始记录存储到数据仓库中,由后续的数据挖掘应用程序对入库的数据进行细致分析,并生成运营商需要的统计报表。下图为运营商利用Netflow技术监控与其它运营商间互联链路流量和流向的管理系统实施示意图:企业客户流量计费随着中国宽带互联网的发展,越来越多的企业客户开始利用宽带网络改变公司的业务处理流程。电信运营商为了适应这种需求,需要提供比往更加丰富的服务内容,如不但提供数据接入业务,还可以提供IP电话、视频和网络存储等业务。由于不同类型业务的差异性,传统固定费率的计费方式也开始变得不能满足客户的需要。运营商需要跟随客户需求的转变,同步改变自己的运营支撑系统,提供多种灵活的业务计费方式供客户选择。利用Netflow技术,运营商可以精确统计出客户租用的接入链路上传送各种不同类型业务的通信流量,包括业务类型,服务等级,通信时间和时长,通信数据量等参数。这些详细的通信流量统计数据可以被运营商的计费和帐务系统进行处理,生成基于客户业务流量的计费账单。为实现客户的业务流量计费,需要在接入客户的所有接入路由器相应网络端口上都启动Netflow数据采集。由于计费数据要求高精确性,所以应该尽量采用全Netflow数据采集方式,避免使用数据包抽样的Netflow数据采集方式。接入路由器采集到的Netflow流量统计数据需要被统一发送给运营商的计费系统,由其进行不同类型业务的流量分类,汇总、批价和计费,最终由帐务系统生成提交给客户的计费账单。下图为利用Netflow技术采集客户业务流量信息的运营支撑系统结构图:运营商网络优化为提高客户对运营商网络的使用满意度,运营商需要及时了解自己网络的负载状况,正确预测可能出现的网络瓶颈,适时规划未来的网络升级,这些管理需求都可以通过利用Netflow技术对运营商网络进行准确的网络带宽使用率监测和网络流向分析来实现。由于主要是实现对运营商网络的优化,所以不一定需要对网络中传送的所有流量数据进行100%的监测。为减少对网络设备的资源占用,降低对上层管理系统的容量要求,可以选用数据包抽样的Netflow数据采集方式,对核心网络的重点链路进行统计。采集到的抽样统计数据可以利用上层管理系统进行全网集中处理,也可以分区域进行局部处理,分别计算出全网的通信流量和流向统计报表或部分区域的通信流量和流向统计报表。由此管理员可以迅速发现网络当前的使用状况,不同链路的使用率变化趋势,并可以此为依据规划网络是否需要调整和扩容,最终实现网络的优化使用。下图为利用Netflow技术进行运营商核心网络优化的管理系统结构图:上一篇:用Netflow进行IP网流量和流向分析()下一篇:菜鸟教程:子网掩码基础教学篇V5 :NameDescriptionOffsetField LengthinBytesSource IPaddrIP address of the device that sent the flow04Destination IPaddrIP address of the destination device44Next hop router IP addressn/a84Inbound snmpIFindexSNMP index number that identifies the Inbound interface on the Packeteer unit:1 Inside (built-in)2 Outside (built-in)3 Upper_Inside (upper LEM)4 Upper_Outside (upper LEM)5 Lower_Inside (lower LEM)6 Lower_Outside (lower LEM)122Outbound snmpIFindexSNMP index number that identifies the Outbound interface on the Packeteer unit:1 Inside (built-in)2 Outside (built-in)3 Upper_Inside (upper LEM)4 Upper_Outside (upper LEM)5 Lower_Inside (lower LEM)6 Lower_Outside (lower LEM)142Packet CountNumber of packets in the flow164Byte CountTotal number of bytes in the flow204Time at Start of FlowValue of SysUpTime when the first packet in the flow was seen (measured in milliseconds)244Time at End of FlowValue of SysUpTime when the last packet in the flow was seen (measured in milliseconds)284Source PortPort number of the device that the flow went out of322Destination PortPort number of the device that the flow went to342One pad byten/a361TCP flagsProtocol state (URG=32, ACK=16, PSH=8, RST=4, SYN=2, FIN=1). For example, a value of 27 indicates the flow had a SYN, ACK, PUSH, and FIN (2+16+8+1=27).371Layer 4 ProtocolType of layer 4 protocol. For example, ICMP=1, TCP=6, Telnet=14, UDP=17381IP Type of Service (ToS) / DiffservValue that designates special handling of traffic (precedence, delay, throughput, and reliability)391Source Autonomous Sys IDn/a402Dest. Autonomous Sys IDn/a422Source Mask Bits Countn/a441Destination Mask Bits Countn/a451Two Pad Bytesn/a462FLOW HEADER FORMATBytesContentsDescription0-1versionNetFlow export format version number2-3countNumber of flows exported in this packet (1-30)4-7sys_uptimeCurrent time in milliseconds since the export device booted8-11unix_secsCurrent count of seconds since 0000 UTC 197012-15unix_nsecsResidual nanoseconds since 0000 UTC 197016-19flow_sequenceSequence counter of total flows seen20engine_typeType of flow-switching engine21engine_idSlot number of the flow-switching engine22-23sampling_intervalFirst two bits hold the sampling mode; remaining 14 bits hold value of sampling intervalFLOW RECORD FORMATBytesContentsDescription0-3srcaddrSource IP address4-7dstaddrDestination IP address8-11nexthopIP address of next hop router12-13inputSNMP index of input interface14-15outputSNMP index of output interface16-19dPktsPackets in the flow20-23dOctetsTotal number of Layer 3 bytes in the packets of the flow24-27firstSysUptime at start of flow28-31lastSysUptime at the time the last packet of the flow was received32-33srcportTCP/UDP source port number or equivalent34-35dstportTCP/UDP destination port number or equivalen

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论