网络流量监测和管理平台的设计与实现


1 网络流量监测和管理平台的设计与实现 冯洋1,童朝南1 (北京科技大学 信息工程学院,北京 100083) 摘要 : 网络流量的监测是提高网络管理的效率的重要手段之一 ,通过流量的测量,过滤规则 设定和报警系统的设置,从而能够清楚的了解到自治域之间,网络之间流量的情况和趋势.从 而更科学的管理和改造网络,提高网络服务和应用效率.本文根据 SNMP 协议,NetFlow 协议和 JAVA 开发完成了 B/S 模式的通用动态实时网络流量监测管理系统. 关键词: 网络流量;流量监测;流量采集 中图分类号: TP393.06 文献标识码: A The Design and Implementation of The Network Traffic System Feng Yang, Tong Chao-nan (School of Information Engineering, University of Science and Technology Beijing, Beijing 100083) Abstract: In order of improving the efficiency of network administration, one of the most useful methods is to inspect and measure of the network traffic. We can clearly see the traffic’s status and trend among the network and automatic systems by the means of the measurement of traffic, the filter regulation and warning system. So we can administer and improve the network more scientifically, enhancing the network service and application efficiency. According to the protocol of SNMP and NetFlow, we use Java language to develop a system in B/S pattern which can inspect and supervise the network dynamically. Key words: network traffic; traffic collection; network measurement 1 前言 过去几年来,因特网已经成为越来越重要的需求,不过面对日益复杂的网络联机及逐 渐增加的网络流量,系统管理者必须花费更多时间精力来了解这些网络设备的运作状况,以 维持一个系统的正常运作。此时对于 IP 网络的流量检测提出了更多新的要求。我们需要知 道网络资源、应用程序的使用情况,当前在网络上有哪些应用,统计一段时间内的某类应用 或某个客户端对网络的需求,占用的带宽等进行准确的流量统计,从而正确规划、评估网络。 2 系统解决方案 为了能够及时有效的查看网络流量、网络资源、应用程序的使用情况从而提高网络性能, 我们的设计采用了基于 SNMP、NEWFLOW[1] [2]的网络管理框架模型,进而开发和实现了在 Linux 平台[5]上运行的信息采集系统。根据网络管理人员的需求我们能够提供详细的信息查 询可以定位到某一自治域、路由器及其端口、设定 IP 地址的流量出入情况。同时我们提供 1 基金项目: 国家自然科学基金项目“计算机网络环境中的‘虚拟机器人’—‘软件人’的研究”(基金编 号: 60375002)。 作者简介:冯洋(1982-),女(汉族),湖北人,硕士研究生,主要研究方向:网络流量分析;童朝南(1952-), 男(汉族),安徽人,教授,博士生导师,主要研究方向:计算机仿真系统研究、计算机实时控制系统研究。 2 Biography: Feng Yang, female, 06/1982, postgraduate student in Information Engineering School of university of Science and Technology, engages in network traffic analysis. Tong Chao-nan,male,09/1955,professor,engages in computer simulation system and computer real-time control system. http://www.elecfans.com 电子发烧友 http://bbs.elecfans.com 电子技术论坛 2 了报警系统。 基于 SNMP、NEWFLOW 的路由器采集到与其它互联单位的流量出入数据并根据需要 存入数据库。同时监控程序可以对互联单位的流量信息进行实时的监控。系统管理和页面查 询是根据数据库中的记录提供基于互联单位流量信息的各种数据查询和统计分析功能。 如图 1 的系统逻辑结构图[6] : 数据库 流量监控 路由器 系统管理 过滤规则 生成文本并入库 入库 过滤 生成文本 流量采集 图 1 :系统的逻辑结构图 2.1 流量采集模块 本系统的流量采集模块是运用两种技术: 1、 网络管理协议-SNMP(Simple Network Management Protocol)对支持 SNMP 协议的 网络设备,可以基于标准的 MIB 库,监控路由器的设备端口信息和出入流量。 (1) 设备端口号 (2) 设备端口连接速率 (3) 设备端口号状态 (4) 设备端口的输入/输出流量 2、 NetFlow ,由 Cisco System 公司首创的流量统计技术,它能完成 OSI 参考模型二层到 七层的信息统计。它是基于网流而发展起来的。所谓网流就是在一段时间内,给定 http://www.elecfans.com 电子发烧友 http://bbs.elecfans.com 电子技术论坛 3 的源端和目的端所发生的具有相同属性的连续的数据包的集合。通过 NETFLOW 可 以采集到的流量[4] 信息主要包括:源 IP 地址,目的 IP 地址,源 TCP/UDP 端口; 目标 TCP/UDP 端口;流量字节统计;流量开始时间,流量结束时间。同时它还提 供如下功能: (1) 能够支持同时采集多台路由设备。 (2) 各个互联单位的原始流量数据信息以文本的形式保存。 (3) 各个互联单位的格式化流量数据信息。统一保存在中心数据库中。 为了提高系统整体的效率,加快数据入库的速率,滤去网络管理员所不需要的记录。 我们将采集到的记录应用于过滤规则如表 1 所示,供网络管理员使用。 过滤规则 说明 设备端口和流 向 路由器的接口索引号和流向标记(流向可设定为流入流出和双向) 应用 通讯端口的协议类型(例如:“9990:17”表示通讯端口为 9990 的 TCP 连 接 ) 通讯端口 通讯的端口号,有单独的端口号和连续的端口号(例如:“9990”表示单 独的 9990 通讯端口,“1000-9990” 表示从 1000 到 9000 的所有通讯端口) 源地址 记录的源 IP 地址和子网掩码(例如 192.168.1.124:24,192.168.1.124 为主 机的 IP,24 表示 24 位掩码,即 255.255.255.0) 目的地址 记录的目的 IP 地址和子网掩码 源/目的地址 源 IP 地址:掩码/目的 IP 地址:掩码 源 AS 号 源自治域 AS 号,有单独的 as 号和连续的 as 号(例如“1”表示单独的 AS,“1—9”表示从 1 到 9 的所有 AS 号) 目的 AS 号 目的自治域 AS 号,有单独的 as 号和连续的 as 号(例如“1”表示单独的 AS,“1—9”表示从 1 到 9 的所有 AS 号) 表 1 记录和过滤规则对照表 上述规则可以运用于整个路由器或者单独应用于接口,当网络管理人员设定多个规则时 可以设定规则的优先级。只要记录匹配到某一规则时则执行规则所指定的四种操作:过滤、 存盘、入库、存盘并入库。 2.2 流量监控模块 流量监控模块[3] 是系统的一个重要组成部分,它主要提供基于互联单位流量信息的监 控功能。其中包括: 应用分析、源地址分析、目标地址分析、源自治系统、目标自治系统、 下一跳地址。并且可以查看不同需求的流量前 100 名排名。例如点击应用分析 如图 2:我 们看到一小时内的按端口和协议的排名报表。系统提供了查询功能,我们可以查询任意时间 段内的流量排名。 http://www.elecfans.com 电子发烧友 http://bbs.elecfans.com 电子技术论坛 4 图 2:应用分析流量排名 2.3 系统的管理模块 系统的管理模块可以分为:路由器管理、主机网络管理、用户管理、设备分组管理、 AS 分组管理等模块。我们在开发语言上,由于 JAVA 语言具有一处可编写随处运行。多平 台支持,强大的可伸缩性和多样化等诸多优点,所以采用 Struts MVC 框架作前端,Spring 做 中间层,Hibernate 作后端开发。 图 3:系统后台框架图 如图 3 所示应用程序分为四层:presentation(描述),persistence(持久),business(业务) 和 domain model (域模块)。每个层在处理程序上都有一项明确的责任,而不应该在功能上与 其它层混合,并且每个层次要与其它层次分开,但是给它们之间放一个通信接口。 UI层为 User Interface 显示层,这一层面向用户界面,是用户与系统之间的交互媒介。 该层借助 Struts 实现。 (1) 用 ActionForm 类封装与用户互动的数据元素。 (2) 用 Action 类实现业务逻辑、动作处理、链接转向。实现 MVC 中的 C 控制。 (3) 借助 Struts 标签来完成数据呈现,实现 MVC 中的 V 视图。 The Business Layer 为业务层用来实现现实中具体的业务逻辑。在项目实际开发中,每个 领域都会有自己独特的业务逻辑,致使项目中代码高度耦合,原本可能被重用的代码或功能, 因为与具体的业务逻辑绑定在一块而导致很难被重用。因此我们借助 Spring,通过依赖注入、 AOP 应用、面向接口编程,降低业务组件之间的耦合度,增强系统的扩展性。业务层负责: (1) 处理应用程序的业务逻辑和业务校验。 (2) 管理事务,管理业务层级别的对象的依赖。 (3) 在显示层和持久层之间增加一个灵活的机制,使得他们不直接的联系在一起。 (4) 管理程序的执行(从业务层到持久层)。 The Persistence Layer 为持久层,在开发中与数据库的交互必不可少。通常我们归为 CRUD(添加、读取、修改、删除),但我们同时还要考虑与数据库交互的性能问题,如连 http://www.elecfans.com 电子发烧友 http://bbs.elecfans.com 电子技术论坛 5 接池、数据缓存等等。我们借助 Hibernate,它是 ORM(事务关系机制)的工具,它为我们 提供了持久化机制和查询服务。 Domain Model Business Object 为域对象层是由实际需求中的业务对象组成,对象的可 以在不同层之间移动,是各层之间数据通信的载体。 下面是对系统管理各个子模块功能的简要介绍 。 1、 用户管理模块 系统管理由若干系统操作员完成。每个操作员有自己的帐号密码,操作员必须在认 证帐号密码通过后才能进行业务操作。操作员分超级管理员和普通操作员。超级管理员 能够管理整个系统,而普通操作员只能进行业务管理操作,不可以进行系统配置操作。 2、 设备分组管理模块 设备分组模块包括:路由器的注册和 IP 地址分组 路由器的注册:填入所有要检测的路由器的 IP 地址,组名,端口号 IP 地址分组:为了方便的监测某一部门的网络流量情况,可将不同的 IP 段分给各个部 门。并给不同的 IP 段起对应的部门名称。 3、 运行维护模块 运行维护模块可以让操作员完成对系统运作方式的管理。包括:对数据采集时间间隔的 管理;对系统运行主机的配置,对怀疑可能是异常端口的管理。 3 结束语 综上所述,网络流量监测和管理系统具有良好的可靠性和扩充性,容易配置,易于管 理。较好的实现了流量过滤,流量统计,流量报警的功能,给我们展示了一种基于 SNMP、 NetFlow 的流量监测系统的实现方法。 本文的创新点在于,对于采集到的数据并不是直接存入数据库,而是事先根据网管人 员对信息的需求进行过滤设定。无用的信息直接过滤,有用的信息可入库并存盘供以后使用。 同时我们设有异常端口的报警,当异常端口的流量在某一时间段突增并超过阈值时,发出报 警声提示网管人员。 4 参考文献 [1] NetFlow Export Datagram Format.cisco 技术手册。 [2] NerFlow Overview.cisco 技术手册。 [3] (美)James Pike , Cisco 网络安全[M ]北京:清华大学出版社,2004 [4] 王敏、李纯喜、陈常嘉。浅谈基于 PCA 的网络流量分析。微计算机信息。2006 年第 2-3 期,P94-95、P243。廖渊、李明树、王清。基于 Linux 的网络计算机服务器的设 计与实现[J]。计算机工程与应用。2003,(14):12-16。 [5] 廖渊、李明树、王清。基于 Linux 的网络计算机服务器的设计与实现[J]。计算机工程与 应用。2003,(14):12-16。 [6] (美)Richard C.Lee ,UML 与 Java 面向对象开发实践。 第一 作者 第二 作者 联系地址 邮编 省市 E- mail 稿件名称 冯洋 童朝 南 北京科技大 学 110 信箱 100083 北京 市 thymefy@163. com 网络流量检测和管 理平台的设计与实 现 http://www.elecfans.com 电子发烧友 http://bbs.elecfans.com 电子技术论坛
还剩4页未读

继续阅读

下载pdf到电脑,查找使用更方便

pdf的实际排版效果,会与网站的显示效果略有不同!!

需要 7 金币 [ 分享pdf获得金币 ] 1 人已下载

下载pdf