本科毕业设计(论文)题目:基于SNMP网络管理系统的设计与实现院(系):计算机科学与工程学院专业:班级:学生:学号:指导教师:2014年6月1 基于SNMP网络管理的研究在Windows环境下进行SNMP编程,可以使用WinSNMP API函数。
这些函数实现了基本的SNMP功能,但直接使用WinSNMP API函数要复杂得多,幸运的是,目前有许多支持SNMP功能的第三方开发包,如UCD SNMP,PowerTCP 和SNMP++等,使用这些开发包,可以大大简化Windows环境下的SNMP编程工作。
SNMP++是网络管理程序与SNMP代理之间的通信协议,因此SNMP编程也包括两大部分:网络管理程序的开发和SNMP代理软件的开发。
SNMP代理运行在特定的网络设备中,由设备生产商负责开发。
本文主要研究在Windows 环境下开发基于SNMP的网络管理程序,不涉及SNMP代理开发方面的内容。
微软的Windows系统(包括Windows NT、Windows 2000、Windows XP、Windows 2003等)支持SNMP,默认是关闭的,可以通过添加组件的方式进行打开并进行简单配置。
启动后,代理在主机上启动一个SNMP代理服务器进程,监听从UDP端口161接收的SNMP操作请求。
但是还不能使用SNMP获取到系统的信息,因为此时代理支持的MIB-II中还没有定义相关的被管理对象,因此,还需要安装第三方支持的软件。
SNMP第三方软件实际上是一个SNMP子代理,系统中原来的代理称为SNMP主代理,主代理与子代理之间使用特有的协议进行通信。
通过安装子代理,可以在系统中扩展主代理不支持的MIB。
Net-SNMP就是这样的一款第三方软件,安装后即可为SNMP提供信息。
2 环境配置使用windows XP 操作系统,软件使用VC++6.0,测试设备,本机,工大瑞普虚拟实验环境,可以模拟如帧中继,路由交换的环境。
从 下载SNMP++开发包,解压后进行编译,形成一个静态链接库,下面的步骤将在VC++6.0开发环境中将SNMP软件包编译成一个静态的链接库。
在VC6中编辑生成snmp_pp.lib文件,操作步骤如下:1) 在开发环境下,选择“File”->“New…”项,在弹出的窗口中选择“Win32 Static Library”,工程名为“snmp_pp”,如图2.1所示。
图 2.1 建立一个静态链接库工程2) 单击“OK”按钮,进入下一步,使用缺省选项,如图2.2所示,点击“Finish”完成,建立一个没有文件的静态链接库工程。
图2.2 静态链接库工程建立完成3) 在工作区内,为工程添加解压缩后的所有源文件(即snmp++目录下的src目录下的所有后缀为CPP的文件,如图3.3所示)。
图2.3 向工程中添加源文件为了让编译的链接库支持SNMPV3,用上步同样方法,要把snmp++目录下的libdes目录下的c文件包含进来。
4) 文件添加完后,设置工程编译环境。
主菜单选“Project”->“Settings…”项,弹出的窗口中,选“C/C++”页,按照下表进行设置,如图2.5所示。
图2.5 工程设置5) 目录设置。
主菜单“Tools”->“Options…”项,弹出的窗口中,选“Directories”页,添加SNMP++头文件所在的目录,如图2.6所示。
图4.6 工程目录设置6) 选择“Build”->“Build snmp_pp.lib”项,生成静态链接库文件snmp_pp.lib.7) 将生成的静态链接库文件直接复制到VC安装目录:\VC98\Lib中去,就可以像使用VC自带的其他库文件一样使用它了。
3 代理设备的配置a. windows主机安装,启用SNMP;首先查看本地服务,检查SNMP服务是否已经安装。
如没有安装,按下列步骤进行安装。
(1) 单击“开始”→“设置”→“控制面板”→“添加/删除程序”→“添加/删除Windows组件”,勾选“管理和监视工具”项,再单击“详细信息”按钮,此时出现如图3.1所示的界面。
图3.1 Windows XP操作系统启用SNMP(2) 勾选“简单网络管理协议”项,单击“确定”按钮。
安装SNMP后,默认的community字符串是“public”,可以修改为其他字符串,如图3.2。
图 3.2 修改community字符串(3) 安装第三方软件Net-SNMP:如图3.3所示。
图3.3 安装net-snmp 时选择安装目录b. 可配置网络设备启用SNMP服务SNMP 代理是运行在可网管设备中的一个管理进程,在网络管理软件运行前要对其进行配置,使它能够响应网络管理站的信息请求,发送Trap 消息,并进行权限限制与身份验证。
需要配置的代理设备主要是网络中可网管的路由器与交换机,不同的厂商的不同设备配置有所区别,但都大同小异,都可以通过telnet 进行命令行设置,需要配置的内容我们通过配置一个Cisco7200 路由器的实例来具体描述:(1) 接受的团体名称和权限。
SNMP 服务需要至少一个团体名,一般设备都有默认的团体名,public 为只读权限的团体名,private 为可读写权限的团体名。
这两个团体名被普遍地使用,每个人都会被猜到,为安全起见,配置团体名时尽量为不同权限使用不同的团体名,并要为团体名选择强壮的口令,定期更改。
配置命令如下:snmp-server community public RO命令配置了一个RO 权限的团体名public,(2) 配置访问控制列表ACL。
默认情况下,在仅配置了团体名和权限后,代理会接受来自任何主机的SNMP 数据包,这使得在团体名在被破译或泄漏后任何主机都可通过代理进行读写操作,所以必须考虑安全性方面,设置访问控制列表,使SNMP 代理只接受访问控制中主机发出的SNMP 数据包。
配置如下:access-list 3 permit 192.168.0.0 0.0.0.255snmp-server community public RW 3第一个命令创建了一个编号为 3 的访问控制列表,允许来自网络192.168.0.0255.255.255.0 的信息流量。
第二个命令设置代理只接受来自于网络192.168.0.0 255.255.255.0的SNMP 数据包,并且数据包中的commnunity 是可读写权限的团体名public。
(3) 发送身份验证Trap。
身份验证是验证团体名或地址是否有效的过程。
当SNMP 代理收到错误的团体名,或者不是从可接受访问控制列表成员发出的请求,那么代理将发送身份验证Trap 消息到Trap 目标(管理站),指出身份验证失败,在默认情况下,该项是启动的。
(4) 配置SNMP Trap。
配置使得路由器能够向管理工作站发送陷阱消息。
配置如下;snmp-server host 192.168.216.128 public snmpsnmp-server enable traps snmp第一条命令指明SNMP标准Trap被发送到主机192.168.216.128;第二条命令指明激活本设备上的所有SNMP标准的Trap消息。
4 设计与实现基于SNMP的网络管理系统的关键功能之一为采集被管理Windows主机的信息资源。
按照管理人员信息监测和维护工作的要求,信息采集主要涉及以下几个方面,管理人员可以通过采集到的信息数据来判断远程主机的运行情况、业务状态和网络安全。
a. 配置管理对系统的配置有详细了解是网络管理的一个重点,任何时候都需要。
在需要的时候及时,准确的查看系统配置,包括基本信息、系统信息、IP地址,路由信息,TCP连接,UDP连接,进程信息,软件安装信息。
利用MIB对象组的OID,将感兴趣的流量或数据进行分类,之后再进行显示出来,达到我们所要的效果。
表4.1为与配置管理有关的MIB对象与OID的对应关系表。
系统组(System Group)提供了系统的一般信息,对象的OID如表4.2所示。
IP组提供了与IP协议有关的信息。
IP组包含的对象如表4.3 所示。
路由组提供了本地的路由信息。
路由组包含的对象如表4.4所示。
主机的CPU,内存的使用情况对主机的性能影响很大,如果出现问题,将直接影响到主机的正常运行,进而对服务器上正在运行的重要的应用系统带来不可预料的后果,所以,对服务器主机的CPU,内存资源使用情况进行监测是网络管理的首要任务。
通过特定的Oid,不断检测CPU和内存的使用信息,并通过简单的公式计算相应数值,并用图表进行显示。
1) CPU 5秒内平均利用率的OID:1.3.6.1.4.1.9.2.1.56.0;2) CPU 利用率的OID:1.3.6.1.4.1.9600.1.5.1.5.1.48;3) 可用物理内存(Bytes)的OID:1.3.6.1.4.1.9600.1.1.2.1.0;c. 故障管理根据预先设置,代理对网络中的异常断开及时发送错误提示给管理站,使管理者最快发现网络中存在的问题,及时进行处理。
通过SNMP获取设备端口的相关信息需要设备的SNMP代理对一些被管对象的支持。
这些被管理对象有的是通用的,比如MIB-II中的某些被管理对象;有的是私有的,例如CISCO定义和一些MIB。
当查询到某一接口的值时,由索引对象的值来决定OID,如表4.5所示。
Serial0/0的接口变量的OID值为:1.3.6.1.2.1.2.2.1.8.2,即列对象ifOperStatus 的OID(1.3.6.1.2.1.2.2.1.8)+索引对象ifIndex值(2)。
d. 网络可达性在网络运行过程中,常常有各种各样的原因,致使网络产生中断,较好的发现这些问题,并进行专业的测试,网络中一点到一点的连通性很是关键。
利用ICMP协议的请求应答报文的特点,适合作为连通性测试的工具。
利用ICMP协议进行相关的检测;根据ICMP报文的特点,当报文的类型部分的值为8,代码部分值为0,就是一个回显请求报文。
5 总结本文主要叙述了基于SNMP进行网络管理的方法。
通过对传统网络管理方法的学习、比较,发现传统网络管理方法的一些局限性和不足之处,从而提出采用基于SNMP的网络管理的思路,探索一种简便的网络管理方法。
本论文首先分析了网络管理的基本概念和功能,然后概述目前网络管理发展新趋势——以一种设计简单、操作简便的方法来进行网络管理,应用SNMP++开发包来进行网络管理软件开发的新思路,以适应网络管理技术的发展需要。
本文使用VC对基于SNMP的网络管理系统的开发,实现了VC对SNMP++各个类的成员调用的方法,在此基础上利用SNMP进行对网络实施管理,包括网络信息的采集和获取,对网络资源进行合理监控,实现对可管网络资源信息的处理,建立了基于SNMP的网络管理系统,初步尝试了一种不同于传统网络管理方法的新的网络管理技术运用。