现在的位置: 首页 > 综合 > 正文

基于SNMP的SNMP仿真系统的设计及实现

2013年10月02日 ⁄ 综合 ⁄ 共 2893字 ⁄ 字号 评论关闭
 

当前,简单网络管理协议(simple network management protocol,snmp)已经成为事实上的网络管理标志,得到了很大范围内的应用,但snmp作为网络管理的重要协议,在教学过程中发现学生难以掌握其工作原理和过程,为此设计了一个snmp仿真系统,可以辅助教学和学习,而且该系统本身也是基于snmp实现的,这对设计基于snmp的其他系统具有较强的实践指导意义。

1 仿真系统的总体框架结构

在我们设计的系统工作在局域网中,可用于课堂教学演示,帮助学生掌握snmp的工作原理,考虑到有些教学环境中只有一台机器(如多媒体教室),在同一个主机上也能运行该系统。

该系统采用客户/服务器(client/server)模式,采用tcp/ip和snmp实现,从功能的角度看,该系统分为管理站软件和代理端软件2部分。从逻辑上看,该系统既是对snmp的实现,又是对snmp的仿真,其总体框架结构如图1所示。


2 仿真系统所实现的功能

系统的功能实现依赖于以下几个方面的要求:

(1)对管理端主机行为的仿真;

(2)对代理端主机行为的仿真;

(3)对snmp的实现;

(4)对相关信息的查看及打印;

(5)为了实现以上要求,系统主要有4个相对独立的模块组成;运行在管理端主机上的管理端仿真模块;运行在管理端主机上的管理端实现模块,运行在代理端数据上的代理端仿真模块,运行在代理端主机上的代理端实现模块。

管理端仿真模块的功能如下:

1)支持用户查看和编辑mib-ii;

2)用户选择snmp消息类型(get,set),并输入相应的参数;

3)用户选择生成编码命令;

4)用户选择查看编码结果命令;

5)用户选择发送snmp消息命令;

6)用户选择查看收到的snmp消息命令;

7)用户选择解码命令;

8)用户选择查看解码结果命令;

9)在线打印和帮助。

管理端实现模块的功能如下:

1)监视用户在管理端仿真模块中输入的命令,并做出相应的处理;

2)对从管理端仿真模块传来的消息进行ber编码;

3)把编码结果传给管理端仿真模块;

4)把编码结果发送到snmp代理端;

5)从snmp代理端接收的信息,并传给管理端仿真模块;

6)对从snmp代理端接收的消息进行ber解码;

7)把解码结果传给管理端仿真模块;

代理端仿真模块的功能如下:

1)支持用户查看和编辑mbi-ii;

2)用户选择查看消息命令;

3)用户选择对收到的信息进行解码命令;

4)用户选择查看解码结果命令;

5)用户选择snmp消息类型(getresponse,trap),并输入相应的参数;

6)用户选择生成编码命令;

7)用户选择查看编码结果命令;

8)用户选择发送snmp消息命令;

9)在线打印和帮助。

代理端实现模块的功能如下:

1)监视用户在代理端仿真模块中输入的命令,并做出相应的处理;

2)从snmp管理端接收消息,并传给代理端仿真模块;

3)对从snmp管理端接收的消息进行ber解码;

4)把解码结果转给代理端仿真模块;

5)对从代理端仿真模块传来的消息进行ber编码;

6)把编码结果传给代理端仿真模块;

7)把编码结果发送到snmp代理端。

3 对仿真模块与实现模块间通信的设计

无论是管理端主机还是代理端主机,都有一个snmp实现模块和一个仿真模块,也就是说,运行在同一台机器上的snmp实现模块和snmp仿真模块之间必然要进行通信,这种通信属于同一个主机上不同进程间的通信,考虑本系统是一个演示用系统,采用阻塞模式的进程通信机制。

当仿真模块发出命令后,一直等待实现模块的响应,收到响应后才能发出下一个命令。

其通信模型如图2所示。

4 管理端实现模块和代理端实现模块间的通信

管理端实现模块和代理端实现模块都实现了snmp,他们之间使用snmp进行通信,其通信模型如图3所示。
5 利用agentx技术完善代理和仿真系统

agentx协议是由ietf在1998年提出的,通过将snmp代理的功能模块进行分解,提供了另外一种扩展代理的途径。与通过更改代理内部的mib结构来扩展代理功能的方法不同,基于agentx框架的代理软件将snmp协议处理和管理信息访问这2个功能进行了分解,从结构上将代理软件划分为主代理和子代理2个部分,主代理负责与管理工作站进行交互,处理snmp消息的发送与接收,但几乎不对设备的管理信息进行访问,各个子代理负责对各自的管理信息进行访问,并将其所负责的mib域报告给主代理,但却不能处理主代理的snmp消息,主代理和子代理之间根据agentx协议进行通信。

对于管理工作站来说,agentx协议是透明的,这样的结构,通过子代理向主代理的注册来扩展注册的功能,代理的扩展功能更加灵活,通常情况下,主代理和子代理共存于同一个主机上,agentx的通信属于进程间的通信,具有较高的效率。

5.1 agentx的框架

在支持agentx的代理结构中包括以下要素:

一个主代理 主代理负责处理snmp协议消息,与管理工作站进行交互,但是一般不具备直接访问管理信息的权限。

若干子代理 子代理负责访问管理对象,对于snmp协议来说,子代理是透明的。

主代理和子代理交互的协议,就是agentx协议,实现主代理和子代理之间的通信,支持agentx的代理软件的结构如图4所示。

5.2 代理的功能

主代理需要实现以下功能:

(1)接受子代理建立agentx会话的请求;

(2)接受子代理注册mib域的请求;

(3)接收和发送snmp协议消息;

(4)实现除管理操作以外的代理应该实现的功能;

(5)提供对与管理框架相关的mib对象的支持;

(6)根据子代理注册的mib域,发送和接收agentx协议消息来访问管理信息;

(7)转发由子代理产生的通知信息。

子代理需要实现以下功能:

(1)与主代理建立agentx会话;

(2)向主代理注册mib域;

(3)实例化管理对象;

(4)将其注册的mib域中的对象标识符与实际管理变量进行绑定;

(5)对管理变量进行管理操作;

(6)初始化通知信息。

6 系统实现

本系统采用标准的snmp协议和纯java语言,这样有利于保证系统的平台无关性和通用性,并分别在windows2000及linux平台上实现了该系统,测试的环境分为3种,系统的c端和s端运行在同一个主机上,系统的c端和s端运行在2个以上主机上,但是所有主机使用的是同一种平台(如:windows2000);系统的c端和s端运行在2个以上主机上,并且各个主机使用的是不同平台(如:windows 2000,linux等),经过测试,验证了该仿真系统的平台无关性和通用性,运行在不同平台上的仿真系统c端和s端能够很好的通信,完成仿真模拟功能。

7 结语

我们开发的snmp仿真系统已经成功地应用于教学中,曾作为学院网络管理课程的优秀教学课件被多次使用,获得了师生的一致好评,考虑到教学的灵活性和学生的学习的自主行,该系统支持单机运行和网络运行,既可以在机房通过局域网进行实验,也可以用一台机器进行实验,易于使用和管理,该系统的下一个版本,将与web技术相结合,通过internet,用户可以远程查看snmp管理端和代理端的工作过程,进一步扩大该系统的可利用价值。

抱歉!评论已关闭.