基于NetFlow的IP网络状态监测系统
http://tech.ddvip.com 2008年06月05日
-
关键字: 双绞线分类 数据采集仪 NetFlow 智能综合布线 综合布线技术 高性能线缆
内容摘要:本文对网络状态监测技术进行了详细的介绍,具体讲述了一种网络状态监测工具NetFlow技术。根据这些理论,作者设计了一个基于NetFlow技术的IP网络监测系统。本文对该系统的设计框图及详细的模块功能做了分析,并给出了部分实际网络中监测得到的数据。
随着IP网的普及和壮大,IP业务得到了迅速的发展。然而,由于IP协议固有的无连接特性和"尽力而为"的服务原则,使得当前基于IP的互联网无法向用户提供有效的服务质量(QoS),也不能实现网络资源的有效监控和管理。所以,IP业务就非常需要对整个网络进行监测,得到网络性能和服务质量参数,从而合理规划网络,为IP语音服务提供服务质量保障。这样,对IP网络性能的监控就成了管理IP网络的重要内容。
目前,存在的网络监测工具主要有:MRTG、SnifferPortable、ROMIIProbe、NetDetector和NetFlow等。其中,NetFlow成本最低,实施最方便,而且不受速率的限制,是IP网络监测的发展方向。
一、网络状态监测技术
网络状态监测是网络管理和系统管理的一个重要组成部分,网络状态数据为网络的运行和维护提供了重要信息。这些数据对网络的资源分布、容量规划、服务质量分析、错误监测与隔离、安全管理都十分重要。网络状态监测包括两部分内容:网络流量的采集和网络数据的分析。一般的工具均同时具备这两个功能。
1.网络流量的分类
网络流量按照其包含信息内容的不同可以分为以下四类:
(1)网络节点端口流量指的是网络节点设备端口流入和流出的数据包的信息统计。包括数据包的个数、字节数、包大小分布、丢包数等多种统计信息。
(2)端到端的IP流量 指的是在网络层从一个源到一个目的IP包的统计信息。相对于网络节点端口流量而言,端到端的IP流量包含了更为丰富的信息,通过对其分析,可以了解到网络中的用户都访问了哪些目的网络,是网络分析、规划、设计和优化的重要依据。
(3)业务层流量它除了包含端到端IP流量的信息之外,还包含了第四层(TCP层)的端口信息。显而易见,它包含了应用服务的种类信息,利用这些信息可以做更详细的分析。
(4)完整的用户业务数据它对于安全、性能等方面的分析非常有效。例如,捕捉黑客的来访数据包,可以制止某些犯罪行为,搜集重要的证据。
2.NETFLOW交换技术
NetFlow技术是基于网流而发展起来的。所谓网流,就是在高速数据交换过程中,一定时间段内,给定的源端(Source end Point)和目的端(Destination end Point)所发生的具有相同属性的连续的数据包的集合。网流端点可以由IP地址来定义,也可以由传输层的应用端口号来定义,同样,也可以利用IP协议、业务类型(ToS)及输入接口等来标识网流。也就是说,只有在一定时间段内发生,且具有相同属性的连续的数据包才形成一条网流。例如,1min内,从地址为192.168.1.1的主机通过FTP向地址为192.168.2.1的主机上传输了一个文件,则可以把这样一个过程中所发生的包定义为从192.168.1.1到192.168.2.1的一个网流。正常情况下,路由器进行包转发时,对流入的每个包(Packet)都进行路由、安全、服务的处理。而NetFlow交换技术仅对一个网流的第1个包进行处理。第1个包的信息记录在缓冲器中,其他包则由一个单独的高效的进程进行转发,同时进行相应数据统计。
NetFlow数据格式有多个版本。目前的最新版本是版本9。但是常用的是版本1和版本5。NetFlow数据报采用UDP协议发送,因此,有可能在传输过程中丢失,这样就在版本5中增加了信息流的顺序号。通过检查信息流的顺序号可以了解NetFlow数据报是否丢失。另外,版本5中还增加了边界网关协议(BGP-Border Gateway Protocol)的自治系统(AS)信息。一个NetFlow数据报由一个报头和1-30个流记录组成。NetFlow数据报的报头和流记录的格式分别列于表1和表2。
表1 NetFlow版本5报头格式
表2 NetFlow版本5流记录格式
路由器送出的数据,通过2种方式进行采集。
(1)利用数据采集软件(如Cisco NetFlow Collector)进行采集并存储到服务器上,以便利用各种数据分析工具进一步处理。
以NFC2.0采集的网络流量数据为例,61.181.85.122|222.32.104.193|4837|0|23|3|1216|1128|17|2|261|1。数据中各字段的含义为:源地址|目的地址|源自治域|目的自治域|流入接口号|流出接口号|源端口|目的端口|协议类型|包数量|字节数|流数量。由此,可以清楚了解这一网流的具体信息:源地址为61.181.85.122,目的地址为222.32.104.193,源地址属于AS4837,目的地址属于我方网络;网流从我方网关路由器的23号端口流入,3号端口流出,路由器的端口号可以通过读取设备MIB库获取,设备的物理端口与MIB库中的端口对应;网流的源端口为1216,目的端口为1128,属于TCP协议。分析端口类型,可以判断网流的业务类型,比如常用的WWW服务,采用的端口为80或8080端口等,进而判断是否属于正常流量等等。这样,可以了解网流的具体信息,分析多条数据,对整个出口乃至整个网络的数据情况进行准确分析。
(2)直接在路由器上查看,常用于异常流量的采集及处理。表3列出从CiscoGSR路由器采集数据的实例。
表3 CiscoGSR路由器数据
分析这些数据,可以得知当前设备的数转发情况:数据流从Gi1/2端口流入,Gi4/0/1及Gi3/0/0流出,属于UDP协议;源地址、目的地址与前一种采集方式一致;源端口、目的端口的统计与前一种采集方式不同,采用16进制。
这种采集方式,无法直接采集源、目的自治域,不适于进行长时间的网间统计分析,但适于实时流量的分析,尤其适于处理异常流量。
二、基于NetFlow的监测系统的设计
1.系统的整体框架
我们做了一套基于NetFlow的IP网络状态监测系统。图1示出该系统的整体结构图。系统通过基于NetFlow的Cisco路由器采集到数据,暂时存放在采集器中。其处理方法为:在超时时间内,将流中的数据报文按照一定的聚类规则汇聚形成原始数据置于缓存中,超时时间到达或者缓存充满时,这些数据按一定的格式集中发送到数据库服务器。然后,就是把数据库服务器中的数据根据需要发送给统计分析模块,由统计分析模块对其进行统计分析,实现各种需要的功能。下面具体分析每个功能模块的功能并给出部分实现结果。
图1 系统整体结构图
2.数据采集模块
数据采集模块是整个系统的基础,它主要实现从路由器上采集数据的功能。
具备NetFlow功能的路由器对经过的每一个IP数据包进行解包,生成并维护相关数据库(内容包括经过该设备的每一条动态数据流),定期以UDP数据包的形式发送给数据库服务器。
数据报文都是由一个头标信息、一个或多个信息流记录构成。通常情况下,数据库服务器会分配一个足够大的缓冲区,以便数据报文到来时,可以容纳下最大的数据。此外,它使用头标信息中的版本信息来决定如何理解这些数据报文。头标信息中的第二个字段是数据报文中记录的个数,可以用它来对记录进行索引检索。
通过NetFlow可以采集到的流量信息主要包括:源IP地址、目标IP地址、源TCP/UDP端口、目标TCP/UDP端口、流量字节统计、流量开始时间、流量结束时间、源自治域(AS)和目标自治域等。表4和表5列出实际网络中某一路由器上采集到的数据。
上一篇:
基于NetBeans的图书管理系统设计方案
下一篇:
马原:环境保护与可持续发展论文(word)