论文部分内容阅读
摘 要:本文论述了基于Web的网络监视系统的软件实现,包括使用SNMP协议从网络设备上采集网络流量信息,数据库设计,Web流量显示,实现了 SNMP协议中的 GET、SET 、GETNEXT操作。
关键词:简单网络管理协议(SNMP) 网络监视 Web
引言
随着网络的不断发展,规模增大,复杂性增加,简单的网络管理技术已不能适应网络迅速发展的要求。以往的网络管理系统往往是厂商在自己的网络系统中开发的专用系统,很难对其他厂商的网络系统,通信设备软件等进行管理,这种状况很不适应网络异构互联的发展趋势。目前SNMP已成为网络管理领域中事实上的工业标准,并被广泛支持和应用,大多数网络管理系统和平台都是基于SNMP的,本文所研究的网络监视系统也是基于SNMP的。
1. SNMP简介
1.1 概述
SNMP(Simple Network Management Protocol,简单网络管理协议)首先是由IEIT的研究小组为了解决Internet上的路由器管理问题而提出的。SNMP的设计原则是简单性混合扩展性。 简单性是通过信息类型限制、请求响应协议而取得。扩展性是通过将管理信息模型与协议、被管理对象的详细规定(MIB)分离而实现的。
SNMP的网络管理模型包括以下关键元素:管理站、代理者、管理信息库、网络管理协议。 管理站一般是一个分立的设备,也可以利用共享系统实现。管理站作为网络管理员与网络管理系统的接口,它的基本构成为:一组具有分析数据、发现故障等功能的管理员程序;一个用于网络管理员监控网络的接口;将网络管理员的要求转变为对远程网络元素的实际监控的能力;一个从所有被管网络实体的MIB中抽取信息的数据库。
网络管理系统中另一个重要元素是代理者。装备了SNMP的平台,如主机、网桥、路由器及集线器均可作为代理者工作。代理者对来自管理站的信息请求和动作请求进行应答,并随机地为管理站报告一些重要的意外事件。
管理站和代理者之间通过网络管理协议通信,SNMP通信协议主要包括以下能力:
(1) Get:管理站读取代理者处对象的值。
(2) Set:管理站设置代理者处对象的值。
(3) Trap:代理者向管理站通报重要事件。
1.2 SNMP协议数据单元
SNMP规定了5种协议数据单元PDU(也就是SNMP报文) ,用来在管理进程和代理之间的交换。Get-request 操作:从代理进程处提取一个或多个参数值。Get-next-request操作:从代理进程处提取紧跟当前参数值的下一个参数值。Set-request操作:设置代理进程的一个或多个参数值。Get-response操作:返回的一个或多个参数值。这个操作是由代理进程发出的,它是前面三种操作的响应操作。Trap操作:代理进程主动发出的报文,通知管理进程有某些事情发生。
前面的3种操作是由管理进程向代理进程发出的,后面的2个操作时代理进程发给管理进程的,为了简化起见,前面3个操作以下叫做Get、Get-next和Set操作。图2.1描述了SNMP的这5种报文操作。请注意,在代理进程端是用熟知端口161来接收Get或Set报文,而在管理进程端是用熟知端口162来接收Trap报文。
本系统的软件层次结构分为四层,直接面向用户的最高层为流量数据显示层和统计分析层。统计分析从数据库中获取数据,流量显示是基于B/S构架的,可以从任何一台计算机中通过浏览器实时地看到流量的显示。Web服务器也从数据库中获取数据,经过处理以图形方式传给浏览器。数据库中的数据是数据采集模块采集过来的。数据采集基于WinSNMP的。使用的协议是SNMP协议。
流量数据采集模块从指定的IP地址采集网络流量信息,这些信息包括:系统描述、SysObjectOid、系统名、管理员名、收到/发送的TC包、收到/发送的UDP包、收到/发送的IP包。并且每隔一分钟将收到的TCP,UDP,IP包信息相加计算出一分钟内该路由器发送/接受的总流量,将这些信息插入数据库symptom的winsnmp——collection表。
2.2 开发环境搭建和配置
①服务器搭建,搭建两台基于Windows 2000服务器A和B。
②配置开发环境,服务器A上安装VISUAL C++6.0,WINSNMP包程序 SQL SERVER2000;服务器B上安装MICOSOFT VISUAL STUDIO.NET。(.NET的框架使服务器支持ASP.NET)
③数据库模块设计,在服务器A上新建数据库symptom,并建winsnmp_collection表。
④编写流量数据采集模块,在服务器A 上使用VISUAL C++ 编写流量数据采集模块,并将采集的信息存储进symptom数据库的winsnmp_collection表。
⑤编写Web模块,在服务器B上连接服务器A上的symptom数据库的winsnmp_collection表并且将数据读出,然后在Web浏览器中以图表形式表现出来。
2.3 功能模块简介
服务器和开发环境组建完毕即可开始实现各模块的功能了,各模块设计说明如下:
2.3.1 数据库模块简介
开发平台:WINDOWS 2000 SP3 +SQL SERVER。
数据库模块说明:因为网络流量巨大,且变化较快对数据库的稳定性和速度要求较高。因此选择使用SQL SERVER数据库来存储网络流量信息。
功能说明:存储网络流量数据信息,将流量数据采集模块采集到的数据存储起来,供当Web模块显示之用和供日后进行网络流量分析所用。Winsnmp-collection及表中各个表项介绍如下:
2.3.2 数据流量采集模块简介
开发环境:WINDOWS 2000 SP3 + VISUAL C++ MG-SOFT WINSNMP。
功能说明:数据流量采集模块的任务是监视目标IP地址的网络流量吞吐情况,并将这些信息存储在数据库中。
该模块是在VC++环境下调用WinSNMP的相关函数来采集网络流量信息,并利用ADO实现数据库接口。采集到的数据根据MIB库对数据进行分析然后分类存储进数据库。
对信息进行分析,包括远端路由器接收/发送的IP包,TCP包,UDP包,和路由器的信息等。将分析的数据插入数据库。
2.3.3 Web模块简介
开发环境:WINDOWS 2000 SP3 +ASP.NET(C#) +DUNDAS CHART。
功能说明:Web块的主要任务是将服务器A上的SQL SERVER数据库中的内容读出来,然后在Web上以图片的形式显示出来。利用ADO在ASP.NET环境下实现数据库接口,连上数据库后可以使用SQL语句来检索更新删除数据库中的数据信息。在ASP.NET以图表的形式将数据表现。
实际意义:能够很好地解决分布式服务器的网络管理,方便网络管理者在异地维护网络和查看网络流量等信息。
3. 网络监视系统三大模块的具体实现
3.1 数据库模块实现
建立SQL SERVER数据库的实现具体步骤如下:
(1) 启动“SQL SERVER服务管理器”;
(2) 打开“企业管理器”;
(3) 点开本地数据库,并且新建立一个名为symptom的数据库;
(4) 在symptom数据库中添加名为winsnmp_collection的表,将表的操作权限设置为可SELECT,UPDATE,DELECT数据库至此搭建完毕,启动SQL SERVER服务管理器,数据库即开始运行。
Web模块实现的第一步即连接SQL SERVER数据库,然后利用ADO连接SQL SERVER数据库:在图象显示功能方面,以线形图来显示流量变化。
结束语
本文主要采用了WinSNMPAPI实现了一个简单的基于SNMP的网络监视系统,网络数据库和一个NET环境下的Web显示程序,并实现了 SNMP协议中的 Get、Set 、Get next操作。
参考文献:
[1]IETE.RFC1905 Protocol Operations for Version 2 of the Simple Network Management Protocol(SNMPv2)[S].1996年1月.
[2]http://www.8181.net.cn/magazine/html/214/214764.htm.
[3]黄基前.理解SNMP、SNMP++及用VC++6.0实现Window SNMP编程[J].程序员,2001年,第一期.
[4]吴刚,白英彩.基于Web的网络管理技术研究和设计[J].计算机工程,1999年9月,第22卷,第9期:22-24.
关键词:简单网络管理协议(SNMP) 网络监视 Web
引言
随着网络的不断发展,规模增大,复杂性增加,简单的网络管理技术已不能适应网络迅速发展的要求。以往的网络管理系统往往是厂商在自己的网络系统中开发的专用系统,很难对其他厂商的网络系统,通信设备软件等进行管理,这种状况很不适应网络异构互联的发展趋势。目前SNMP已成为网络管理领域中事实上的工业标准,并被广泛支持和应用,大多数网络管理系统和平台都是基于SNMP的,本文所研究的网络监视系统也是基于SNMP的。
1. SNMP简介
1.1 概述
SNMP(Simple Network Management Protocol,简单网络管理协议)首先是由IEIT的研究小组为了解决Internet上的路由器管理问题而提出的。SNMP的设计原则是简单性混合扩展性。 简单性是通过信息类型限制、请求响应协议而取得。扩展性是通过将管理信息模型与协议、被管理对象的详细规定(MIB)分离而实现的。
SNMP的网络管理模型包括以下关键元素:管理站、代理者、管理信息库、网络管理协议。 管理站一般是一个分立的设备,也可以利用共享系统实现。管理站作为网络管理员与网络管理系统的接口,它的基本构成为:一组具有分析数据、发现故障等功能的管理员程序;一个用于网络管理员监控网络的接口;将网络管理员的要求转变为对远程网络元素的实际监控的能力;一个从所有被管网络实体的MIB中抽取信息的数据库。
网络管理系统中另一个重要元素是代理者。装备了SNMP的平台,如主机、网桥、路由器及集线器均可作为代理者工作。代理者对来自管理站的信息请求和动作请求进行应答,并随机地为管理站报告一些重要的意外事件。
管理站和代理者之间通过网络管理协议通信,SNMP通信协议主要包括以下能力:
(1) Get:管理站读取代理者处对象的值。
(2) Set:管理站设置代理者处对象的值。
(3) Trap:代理者向管理站通报重要事件。
1.2 SNMP协议数据单元
SNMP规定了5种协议数据单元PDU(也就是SNMP报文) ,用来在管理进程和代理之间的交换。Get-request 操作:从代理进程处提取一个或多个参数值。Get-next-request操作:从代理进程处提取紧跟当前参数值的下一个参数值。Set-request操作:设置代理进程的一个或多个参数值。Get-response操作:返回的一个或多个参数值。这个操作是由代理进程发出的,它是前面三种操作的响应操作。Trap操作:代理进程主动发出的报文,通知管理进程有某些事情发生。
前面的3种操作是由管理进程向代理进程发出的,后面的2个操作时代理进程发给管理进程的,为了简化起见,前面3个操作以下叫做Get、Get-next和Set操作。图2.1描述了SNMP的这5种报文操作。请注意,在代理进程端是用熟知端口161来接收Get或Set报文,而在管理进程端是用熟知端口162来接收Trap报文。
本系统的软件层次结构分为四层,直接面向用户的最高层为流量数据显示层和统计分析层。统计分析从数据库中获取数据,流量显示是基于B/S构架的,可以从任何一台计算机中通过浏览器实时地看到流量的显示。Web服务器也从数据库中获取数据,经过处理以图形方式传给浏览器。数据库中的数据是数据采集模块采集过来的。数据采集基于WinSNMP的。使用的协议是SNMP协议。
流量数据采集模块从指定的IP地址采集网络流量信息,这些信息包括:系统描述、SysObjectOid、系统名、管理员名、收到/发送的TC包、收到/发送的UDP包、收到/发送的IP包。并且每隔一分钟将收到的TCP,UDP,IP包信息相加计算出一分钟内该路由器发送/接受的总流量,将这些信息插入数据库symptom的winsnmp——collection表。
2.2 开发环境搭建和配置
①服务器搭建,搭建两台基于Windows 2000服务器A和B。
②配置开发环境,服务器A上安装VISUAL C++6.0,WINSNMP包程序 SQL SERVER2000;服务器B上安装MICOSOFT VISUAL STUDIO.NET。(.NET的框架使服务器支持ASP.NET)
③数据库模块设计,在服务器A上新建数据库symptom,并建winsnmp_collection表。
④编写流量数据采集模块,在服务器A 上使用VISUAL C++ 编写流量数据采集模块,并将采集的信息存储进symptom数据库的winsnmp_collection表。
⑤编写Web模块,在服务器B上连接服务器A上的symptom数据库的winsnmp_collection表并且将数据读出,然后在Web浏览器中以图表形式表现出来。
2.3 功能模块简介
服务器和开发环境组建完毕即可开始实现各模块的功能了,各模块设计说明如下:
2.3.1 数据库模块简介
开发平台:WINDOWS 2000 SP3 +SQL SERVER。
数据库模块说明:因为网络流量巨大,且变化较快对数据库的稳定性和速度要求较高。因此选择使用SQL SERVER数据库来存储网络流量信息。
功能说明:存储网络流量数据信息,将流量数据采集模块采集到的数据存储起来,供当Web模块显示之用和供日后进行网络流量分析所用。Winsnmp-collection及表中各个表项介绍如下:
2.3.2 数据流量采集模块简介
开发环境:WINDOWS 2000 SP3 + VISUAL C++ MG-SOFT WINSNMP。
功能说明:数据流量采集模块的任务是监视目标IP地址的网络流量吞吐情况,并将这些信息存储在数据库中。
该模块是在VC++环境下调用WinSNMP的相关函数来采集网络流量信息,并利用ADO实现数据库接口。采集到的数据根据MIB库对数据进行分析然后分类存储进数据库。
对信息进行分析,包括远端路由器接收/发送的IP包,TCP包,UDP包,和路由器的信息等。将分析的数据插入数据库。
2.3.3 Web模块简介
开发环境:WINDOWS 2000 SP3 +ASP.NET(C#) +DUNDAS CHART。
功能说明:Web块的主要任务是将服务器A上的SQL SERVER数据库中的内容读出来,然后在Web上以图片的形式显示出来。利用ADO在ASP.NET环境下实现数据库接口,连上数据库后可以使用SQL语句来检索更新删除数据库中的数据信息。在ASP.NET以图表的形式将数据表现。
实际意义:能够很好地解决分布式服务器的网络管理,方便网络管理者在异地维护网络和查看网络流量等信息。
3. 网络监视系统三大模块的具体实现
3.1 数据库模块实现
建立SQL SERVER数据库的实现具体步骤如下:
(1) 启动“SQL SERVER服务管理器”;
(2) 打开“企业管理器”;
(3) 点开本地数据库,并且新建立一个名为symptom的数据库;
(4) 在symptom数据库中添加名为winsnmp_collection的表,将表的操作权限设置为可SELECT,UPDATE,DELECT数据库至此搭建完毕,启动SQL SERVER服务管理器,数据库即开始运行。
Web模块实现的第一步即连接SQL SERVER数据库,然后利用ADO连接SQL SERVER数据库:在图象显示功能方面,以线形图来显示流量变化。
结束语
本文主要采用了WinSNMPAPI实现了一个简单的基于SNMP的网络监视系统,网络数据库和一个NET环境下的Web显示程序,并实现了 SNMP协议中的 Get、Set 、Get next操作。
参考文献:
[1]IETE.RFC1905 Protocol Operations for Version 2 of the Simple Network Management Protocol(SNMPv2)[S].1996年1月.
[2]http://www.8181.net.cn/magazine/html/214/214764.htm.
[3]黄基前.理解SNMP、SNMP++及用VC++6.0实现Window SNMP编程[J].程序员,2001年,第一期.
[4]吴刚,白英彩.基于Web的网络管理技术研究和设计[J].计算机工程,1999年9月,第22卷,第9期:22-24.