论文部分内容阅读
摘 要 SNMP是一个标准的用于管理IP网络上各网络节点的协议。该文基于本单位网络管理的需要,阐述了基于SNMP的网络管理系统的开发过程,并就重点模块做了详细介绍。
关键词 网络管理;网络报警;SNMP
中图分类号:TP393 文献标识码:A 文章编号:1671-7597(2013)12-0044-02
计算机网络是计算机技术和通信技术相结合的产物,它从20世纪50年代起步至今已经有50多年的发展历程。中国互联网的产生虽然比较晚,但是经过几十年的持续发展,已经形成了较为稳定的网络基础架构和相对丰富的网络应用平台。随着网络规模的不断扩大,大量网络设备的增加,使得网络管理的重要性和迫切性也日显突出,为了便于IT运维管理员的管理和维护,急需开发一套网络管理系统变得十分必要。
1 需求分析
早期缺乏网络管理系统的计算机网络,管理人员往往不能主动发现问题,故障的发现和诊断一般是在得到用户的电话反馈以后才会去现场检查、解决。而准确定位故障点并解决需要花费很长时间,降低了工作效率和用户满意度。这种事件驱动式的网络管理,主要是通过人为的干预来进行,此时,网络管理员就充当了“救火队的角色”,整天疲于奔波、解决各种各样的问题。
网络管理的重要性现在已经得到广大网络管理员的认可。简单、粗糙的管理方式已经不再适应现代的计算机网络,现代的网络管理必须向高度集中和高度自动智能化的方向发展。通过计算机网络管理可以对整个网络进行监督、控制和组织,使网络能够按照设定的目标,发挥应有的功能,在网络出现异常时能及时响应和排除故障。在移动通信技术高度发展的今天,可在任何时间,任何地方,利用通信终端,实时掌握网络运行状态,并在网络出现异常或者故障时,及时接收短信通知,迅速定位处理网络异常或故障。
2 计算机网络管理系统概述
计算机网络管理系统就是管理网络的软件系统。所谓网络管理就是从网络设备中获取当前网络运行状态信息,并对这些信息进行综合分析、判断,展示网络运行状态,从而预测网络故障,优化网络性能,提高网络利用率。
一套完整的网络管理系统应该包括五个基本组成部分:管理工作站、被管设备、管理代理、网络管理协议和管理信息库。
管理工作站一般是一台装有网络管理软件的服务器或者PC机,是所有被管设备的管理信息的收集点,是网络管理员管理、监控网络的接口,并向用户提供图形化的管理界面。管理工作站通过SNMP协议与被管设备(代理)通信,向代理发送查询命令和接收代理发来的应答及Trap报告。
被管设备是指在计算机网络中被监视和被管理的设备。主要包括:路由器、交换机、防火墙、服务器,甚至还包括网络打印机、不间断电源(UPS)等。
代理是指安装在被管理的网络设备上的软件或者固件(firmware),是一种软件进程,被管设备只有装有代理才能够接受管理工作站的监视和管理。代理接受来自网络管理工作站的查询并作出响应。当本地发生重大网络事件(如端口中断)时负责向管理工作站发送Trap报告。
管理工作站和代理之间通过SNMP网络管理通信协议来完成通信。SNMP定义了5种报文操作,网络管理工作站通过GetRequest、GetNextRequest向代理查询管理信息,通过使用SetRequest来对代理进行远程参数配置,而代理通过GetResponse响应来自管理工作站的查询。代理还可以通过主动发送Trap消息,来向管理工作站报告本地发生的重大网络事件。代理通过161端口来监听Get或Set报文,管理工作站通过162端口来监听Trap报文。
管理信息库(MIB)是指Oid(对象标识符)的集合,是一个逻辑数据库,并非物理数据库。它使用ASN.1中的基本类型和SMI中的定义类型来对管理对象及其值进行描述,是代理设备所维护的全部被管信息的集合。管理信息库采用和域名系统DNS相似的树型结构。
3 系统的设计和开发
现有的一些网络设备商针对自己的产品,开发了一些专用的、可以实现自动管理网络的应用软件,但是不能兼容其他品牌的网络设备。由于现在网络的异构特性,网络中的设备往往不止来自一家生产商。为了兼容所有设备自己动手开发一套网络管理软件,这样既可以增强网络管理员的学习能力,提高业务知识水平,又能全面了解整个管理系统的部署与运作,还能为单位节省一大笔业务支出。
本文所述网络管理软件的开发平台为Windows XP操作系统,基于SNMP协议来开发的,编程语言为VC6.0,并利用第三方开发软件包SNMP++所实现。SNMP++是由HP公司开发的一款免费软件包,使用C++语言编写,是基于WinSNMP的二次开发,包含70多个大类,能实现基本的SNMP开发。SNMP能为不同种类、不同生产厂家、不同型号的设备,定义一个统一的接口和协议,使得开发人员可以对需要管理的网络设备进行统一
管理。
本管理软件的功能模块:能自动发现网络拓扑;能实时监控网络中重要设备的接口流量;当网络设备的CPU、I/O发生异常或者网络线路发生故障时,能接收E-mail信息和手机短信报警通知。由于篇幅关系,本文不能对所有功能模块进行一一详解,主要介绍通信线路故障报警模块,对其他模块只是简要概述。
网络拓扑自动发现模块:网络拓扑自动发现是指通过获取当前运行的网络设备的信息,并确定之间的相互关系,向网络管理员提供一个实时、动态、准确、清晰反应网络设备存活状况的图形界面。
端口流量监控模块:端口流量是否正常会直接影响所连端口以下的网络性能。轻则出现上网缓慢,重则直接导致网络瘫痪。通过监控端口流量,当流量达到设定的阀值时,管理系统及时报警,通知管理人员尽快做出检查和处理。可利用MIB中的ifOutOctets减去ifInOctets,然后除以时间间隔,得到端口流量的值。 网络设备性能监控模块:影响网络设备性能变差的原因有多种,但其症状表现基本一致,设备CPU利用率居高不下,系统可用内存剧减。以交换机为例,众所周知,交换机中的系统内存,分为系统运行进程所用内存(Processor内存)和缓存数据帧所用的内存(I/O内存)。当网络中出现大量数据需要交换处理时,需要耗费较多的缓存来临时存储数据帧。此时,不仅交换机CPU使用率高,而且可用I/O内存严重不足,严重影响网络性能。因此,必须对CPU的利用率和内存进行实时监控,当连续一段时间内超过事先设定的阀值时,系统就向指定的手机发送短信报警,通知网络管理员尽快做出检查和处理。以华为S3050为例,本系统所采集的交换机的CPU利用率为最近一分钟内的平均利用率,与之相关的Oid对象变量为1.3.6.1.4.1.2011.6.1.1.1.3.0 。
4 通信线路故障报警模块详细介绍
线路故障管理是网络管理中的基础,一切网络活动都是在无故障网络的基础之上进行。所以,无论多么先进的通信技术,也不能保证线路不出故障。通信线路的工作状态与网络设备(路由器、交换机)接口的工作状态有密切联系。当线路状态发生变化时,所连网络设备的接口状态也随之相应发生变化(up或者down)。
在网络管理活动中,网络管理工作站为了获得被管设备(代理)的运行状态信息,一般采用管理工作站主动轮询管理代理来索求管理信息的方法和代理主动发送Trap报告的方法。但是,在基于主动轮询代理的方法中,轮询时间间隔难以确定,如果时间间隔过长,不能及时获取网络运行状态信息,如果时间间隔太短,会增加网络管理带宽,加重网络负担。
本系统通信线路故障报警模块所使用的方法是代理主动发送Trap信息的方法。当被管网络设备接口状态发生改变时,会给指定的管理工作站发送Trap信息,至于发送给哪个管理工作站,是事先在代理中指定,当管理工作站接收到Trap信息后,首先解析Trap包含的信息,然后根据程序算法从而判断出Trap的具体含义并作相应的处理。SNMP++预定义了6种通用的trap Oid,其中表示设备端口状态的两种Oid变量为linkDown("1.3.6.1.6.3.1.1.5.3")和linkUp("1.3.6.1.6.3.1.1.5.4")。
运行本系统,首先要求被监视设备启动SNMP,并配置发送Trap的命令。在接收和处理Trap的工作中,首先用snmp.notify_set_listen_port(trap_port)设置监听端口,使用指定的过滤器来接收trap。如果收到的trap满足过滤条件,则相应的trap会被送到调用者指定的回调中,在回调函数中处理Trap信息。
当系统接收到有报警信息,会将报警信息发送到指定邮箱。现在很多手机运营商提供的邮箱,例如移动的139邮箱,都免费提供邮件到达手机短信通知功能。本系统采用第三方邮件操作组件Jmail,能很简单的实现邮件发送功能。
5 结束语
本系统主要介绍了网络管理的相关概念和部分功能模块,通过实验实现了所需求的基本的功能,但距离整个网络管理功能的实现还有一定的差距,有些附加功能(如:远程参数设置、批量ping等功能)还没完全加入到系统中,今后可在这方面作进一步的研究和开发,以完善其管理。
参考文献
[1]武孟军,徐,任相臣.Visual C++开发基于SNMP的网络管理软件(第2版)[M].人民邮电出版社,2009.
作者简介
梁荣余(1978-),山东莒县人,网络工程师(中级),山东大学(威海)网络与信息管理中心,研究方向:计算机
网络。
冯帆,山东大学信息科学与工程学院,本科生。
关键词 网络管理;网络报警;SNMP
中图分类号:TP393 文献标识码:A 文章编号:1671-7597(2013)12-0044-02
计算机网络是计算机技术和通信技术相结合的产物,它从20世纪50年代起步至今已经有50多年的发展历程。中国互联网的产生虽然比较晚,但是经过几十年的持续发展,已经形成了较为稳定的网络基础架构和相对丰富的网络应用平台。随着网络规模的不断扩大,大量网络设备的增加,使得网络管理的重要性和迫切性也日显突出,为了便于IT运维管理员的管理和维护,急需开发一套网络管理系统变得十分必要。
1 需求分析
早期缺乏网络管理系统的计算机网络,管理人员往往不能主动发现问题,故障的发现和诊断一般是在得到用户的电话反馈以后才会去现场检查、解决。而准确定位故障点并解决需要花费很长时间,降低了工作效率和用户满意度。这种事件驱动式的网络管理,主要是通过人为的干预来进行,此时,网络管理员就充当了“救火队的角色”,整天疲于奔波、解决各种各样的问题。
网络管理的重要性现在已经得到广大网络管理员的认可。简单、粗糙的管理方式已经不再适应现代的计算机网络,现代的网络管理必须向高度集中和高度自动智能化的方向发展。通过计算机网络管理可以对整个网络进行监督、控制和组织,使网络能够按照设定的目标,发挥应有的功能,在网络出现异常时能及时响应和排除故障。在移动通信技术高度发展的今天,可在任何时间,任何地方,利用通信终端,实时掌握网络运行状态,并在网络出现异常或者故障时,及时接收短信通知,迅速定位处理网络异常或故障。
2 计算机网络管理系统概述
计算机网络管理系统就是管理网络的软件系统。所谓网络管理就是从网络设备中获取当前网络运行状态信息,并对这些信息进行综合分析、判断,展示网络运行状态,从而预测网络故障,优化网络性能,提高网络利用率。
一套完整的网络管理系统应该包括五个基本组成部分:管理工作站、被管设备、管理代理、网络管理协议和管理信息库。
管理工作站一般是一台装有网络管理软件的服务器或者PC机,是所有被管设备的管理信息的收集点,是网络管理员管理、监控网络的接口,并向用户提供图形化的管理界面。管理工作站通过SNMP协议与被管设备(代理)通信,向代理发送查询命令和接收代理发来的应答及Trap报告。
被管设备是指在计算机网络中被监视和被管理的设备。主要包括:路由器、交换机、防火墙、服务器,甚至还包括网络打印机、不间断电源(UPS)等。
代理是指安装在被管理的网络设备上的软件或者固件(firmware),是一种软件进程,被管设备只有装有代理才能够接受管理工作站的监视和管理。代理接受来自网络管理工作站的查询并作出响应。当本地发生重大网络事件(如端口中断)时负责向管理工作站发送Trap报告。
管理工作站和代理之间通过SNMP网络管理通信协议来完成通信。SNMP定义了5种报文操作,网络管理工作站通过GetRequest、GetNextRequest向代理查询管理信息,通过使用SetRequest来对代理进行远程参数配置,而代理通过GetResponse响应来自管理工作站的查询。代理还可以通过主动发送Trap消息,来向管理工作站报告本地发生的重大网络事件。代理通过161端口来监听Get或Set报文,管理工作站通过162端口来监听Trap报文。
管理信息库(MIB)是指Oid(对象标识符)的集合,是一个逻辑数据库,并非物理数据库。它使用ASN.1中的基本类型和SMI中的定义类型来对管理对象及其值进行描述,是代理设备所维护的全部被管信息的集合。管理信息库采用和域名系统DNS相似的树型结构。
3 系统的设计和开发
现有的一些网络设备商针对自己的产品,开发了一些专用的、可以实现自动管理网络的应用软件,但是不能兼容其他品牌的网络设备。由于现在网络的异构特性,网络中的设备往往不止来自一家生产商。为了兼容所有设备自己动手开发一套网络管理软件,这样既可以增强网络管理员的学习能力,提高业务知识水平,又能全面了解整个管理系统的部署与运作,还能为单位节省一大笔业务支出。
本文所述网络管理软件的开发平台为Windows XP操作系统,基于SNMP协议来开发的,编程语言为VC6.0,并利用第三方开发软件包SNMP++所实现。SNMP++是由HP公司开发的一款免费软件包,使用C++语言编写,是基于WinSNMP的二次开发,包含70多个大类,能实现基本的SNMP开发。SNMP能为不同种类、不同生产厂家、不同型号的设备,定义一个统一的接口和协议,使得开发人员可以对需要管理的网络设备进行统一
管理。
本管理软件的功能模块:能自动发现网络拓扑;能实时监控网络中重要设备的接口流量;当网络设备的CPU、I/O发生异常或者网络线路发生故障时,能接收E-mail信息和手机短信报警通知。由于篇幅关系,本文不能对所有功能模块进行一一详解,主要介绍通信线路故障报警模块,对其他模块只是简要概述。
网络拓扑自动发现模块:网络拓扑自动发现是指通过获取当前运行的网络设备的信息,并确定之间的相互关系,向网络管理员提供一个实时、动态、准确、清晰反应网络设备存活状况的图形界面。
端口流量监控模块:端口流量是否正常会直接影响所连端口以下的网络性能。轻则出现上网缓慢,重则直接导致网络瘫痪。通过监控端口流量,当流量达到设定的阀值时,管理系统及时报警,通知管理人员尽快做出检查和处理。可利用MIB中的ifOutOctets减去ifInOctets,然后除以时间间隔,得到端口流量的值。 网络设备性能监控模块:影响网络设备性能变差的原因有多种,但其症状表现基本一致,设备CPU利用率居高不下,系统可用内存剧减。以交换机为例,众所周知,交换机中的系统内存,分为系统运行进程所用内存(Processor内存)和缓存数据帧所用的内存(I/O内存)。当网络中出现大量数据需要交换处理时,需要耗费较多的缓存来临时存储数据帧。此时,不仅交换机CPU使用率高,而且可用I/O内存严重不足,严重影响网络性能。因此,必须对CPU的利用率和内存进行实时监控,当连续一段时间内超过事先设定的阀值时,系统就向指定的手机发送短信报警,通知网络管理员尽快做出检查和处理。以华为S3050为例,本系统所采集的交换机的CPU利用率为最近一分钟内的平均利用率,与之相关的Oid对象变量为1.3.6.1.4.1.2011.6.1.1.1.3.0 。
4 通信线路故障报警模块详细介绍
线路故障管理是网络管理中的基础,一切网络活动都是在无故障网络的基础之上进行。所以,无论多么先进的通信技术,也不能保证线路不出故障。通信线路的工作状态与网络设备(路由器、交换机)接口的工作状态有密切联系。当线路状态发生变化时,所连网络设备的接口状态也随之相应发生变化(up或者down)。
在网络管理活动中,网络管理工作站为了获得被管设备(代理)的运行状态信息,一般采用管理工作站主动轮询管理代理来索求管理信息的方法和代理主动发送Trap报告的方法。但是,在基于主动轮询代理的方法中,轮询时间间隔难以确定,如果时间间隔过长,不能及时获取网络运行状态信息,如果时间间隔太短,会增加网络管理带宽,加重网络负担。
本系统通信线路故障报警模块所使用的方法是代理主动发送Trap信息的方法。当被管网络设备接口状态发生改变时,会给指定的管理工作站发送Trap信息,至于发送给哪个管理工作站,是事先在代理中指定,当管理工作站接收到Trap信息后,首先解析Trap包含的信息,然后根据程序算法从而判断出Trap的具体含义并作相应的处理。SNMP++预定义了6种通用的trap Oid,其中表示设备端口状态的两种Oid变量为linkDown("1.3.6.1.6.3.1.1.5.3")和linkUp("1.3.6.1.6.3.1.1.5.4")。
运行本系统,首先要求被监视设备启动SNMP,并配置发送Trap的命令。在接收和处理Trap的工作中,首先用snmp.notify_set_listen_port(trap_port)设置监听端口,使用指定的过滤器来接收trap。如果收到的trap满足过滤条件,则相应的trap会被送到调用者指定的回调中,在回调函数中处理Trap信息。
当系统接收到有报警信息,会将报警信息发送到指定邮箱。现在很多手机运营商提供的邮箱,例如移动的139邮箱,都免费提供邮件到达手机短信通知功能。本系统采用第三方邮件操作组件Jmail,能很简单的实现邮件发送功能。
5 结束语
本系统主要介绍了网络管理的相关概念和部分功能模块,通过实验实现了所需求的基本的功能,但距离整个网络管理功能的实现还有一定的差距,有些附加功能(如:远程参数设置、批量ping等功能)还没完全加入到系统中,今后可在这方面作进一步的研究和开发,以完善其管理。
参考文献
[1]武孟军,徐,任相臣.Visual C++开发基于SNMP的网络管理软件(第2版)[M].人民邮电出版社,2009.
作者简介
梁荣余(1978-),山东莒县人,网络工程师(中级),山东大学(威海)网络与信息管理中心,研究方向:计算机
网络。
冯帆,山东大学信息科学与工程学院,本科生。