专利名称:一种基于snmp网络管理的模拟器的制作方法
技术领域:
本发明涉及仿真工具,具体说是一种基于SNMP网络管理的模拟器。尤指基于SNMP 网络管理的Agent (管理代理)模拟器。
背景技术:
当前网络管理已经成为保证网络正常运行的重要应用。但是在网络管理的运维、 测试、实验中,一般通过搭建网络来提供实验环境,但是这样的实验环境不仅成本高而且难
于管理。简单网络管理协议(SimpleNetwork Management Protocol, SNMP)已成为网络管理领域中事实上的工业标准,并被广泛支持和应用,大多数网络管理系统和平台都是基于SNMP的。简单网络管理协议(SNMP)是一种基于TCP/IP的网络管理协议,它使用UDP作为传输层协议,能管理支持代理进程的网络设备。SNMP主要包括SMI (管理信息结构)、MIB (管理信息库)和SNMP协议几部分。图1说明SNMP体系结构模型。SMI给出了管理对象定义的一般框架。MIB是设备所维护的全部被管理对象的结构集合。SNMP协议包括SNMP操作、SNMP信息的格式、SNMP对象标识符(OID)以及如何在应用程序和设备间交换消息。SNMP对象标识符(OID)是定义在特定MIB模式中的值,来定义一个特定的在MIB数据库中SNMP目标。SNMP采用代理/管理站模型进行网络管理,图1示出了 SNMP的四个关键元素管理工作站(匪S,在后简称管理站)、管理代理(Agent)、管理信息库(MIB)和SNMP协议。管理代理(Agent)对来自管理站(匪S)的信息查询和动作执行请求做出响应,同时还可以异步地向管理站(匪S)发送重要的意外事件。网络管理站(匪S)与网络管理代理(Agent)之间是通过SNMP网络管理协议连接实现通信的,其包括以下几个主要操作(消息报文)分别为 Get—Request、Get—Response、Get-Next-RequestΛ Set-Request 禾口 Trap。管理代理禾口管理站之间通过这几种消息报文进行相互通信,以获取网络设备的各种信息,从而控制网络设备的正常运行。
发明内容
针对现有技术中存在的缺陷,本发明的目的在于提供一种基于SNMP网络管理的模拟器,以便网管软件能够更好地进行网络管理系统的联调和测试。为达到以上目的,本发明采取的技术方案是
一种基于SNMP网络管理的模拟器,其特征在于,所述模拟器为Agent模拟器,包括 MIB脚本一个XML文件,用于存放MIB数据,由用户自定义生成; 脚本解析模块把MIB脚本对应的XML文件解析为MIB数据; MIB数据库存放脚本解析模块解析后的MIB数据;
SNMP报文处理模块根据收到的SNMP报文,在MIB数据库中查询对应的响应数据,然后根据查询结果将MIB数据组织成相应的SNMP响应报文,并将SNMP响应报文发送给SNMP 协议通信模块;
SNMP报文处理模块还将需要处理的SNMP请求数据解析后放入到本地MIB数据库; TRAP报文组织模块按照一定格式将MIB数据组织成SNMP的TRAP报文,并将TRAP报文发送给SNMP协议通信模块;
SNMP协议通信模块基于SNMP协议,负责与外部对象进行通信;所述外部对象为管理站NMS,SNMP协议通信模块和管理站NMS之间通过Get-Request、Get-Response、 Get-Next-Request、Get-Next-Response> Set-Request、Set-Response 禾口 Trap 消息报文进行通信。在上述技术方案的基础上,Agent模拟器处理SNMP操作请求包括以下步骤 al.接收SNMP请求在某个端口 SNMP协议通信模块接收SNMP请求数据包;
bl. 解析SNMP请求数据SNMP报文处理模块解析SNMP请求数据包,得到相应的MIB 请求数据;
cl. 脚本解析模块读入MIB脚本文件,从该文件中解析出一个个MIB数据,并把解析出来的MIB数据存放到MIB数据库中;
dl. SNMP报文处理模块把解析出来的MIB请求数据与本地MIB数据库中的MIB数据进行映射,并根据映射结果从本地MIB数据库读取相应的数据,或者把数据赋值到本地MIB 数据库;
从本地MIB数据库读取相应的数据的过程如下
当A[I] = j时,其中j是某个SNMP请求中的配置数据,A是设置的MIB数据库结果集, I是结果集的下标,则称为在A结果集中,I号OID对应的SNMP请求结果为j ;
这样当Agent模拟器收到MIB数据库中的SNMP请求时,首先解析该SNMP请求的0ID, 然后根据OID找到对应MIB数据库中那个条目,最后取得该条目对应的数据值;
el. SNMP报文处理模块把步骤dl的执行结果组织为SNMP数据包并形成SNMP响应报
文;
Π. SNMP协议通信模块发送SNMP响应报文给管理站NMS。在上述技术方案的基础上,Agent模拟器处理TRAP发送包括以下步骤 a2. TRAP报文组织模块设置TRAP的接收地址;
b2. TRAP报文组织模块设置要发送的TRAP数据; c2. TRAP报文组织模块设置发送频率;
d2. TRAP报文组织模块从本地MIB数据库读取相应的数据,并形成TRAP报文; e2. TRAP报文组织模块通过SNMP协议通信模块向TRAP的接收地址即目的地址发送 TRAP报文。本发明所述的基于SNMP网络管理的模拟器,支持并发模拟大量设备,可以手工的设置SNMP的响应包数据,为网管软件的调试,以及大容量测试提供帮助。本发明所述的基于SNMP网络管理的模拟器,使用一个仿真程序模拟一个或多个支持SNMP管理设备,支持SNMP协议,实现的是网络设备中Agent的功能。能够响应管理站的 Get-Request、Get-Next_Request Jet-Request 等请求,能够生成、发送自陷 CTrap)报文及模拟网络设备的管理行为。
本发明有如下附图
图1是SNMP体系结构模型; 图2是Agent模拟器的系统结构; 图3是Agent模拟器处理SNMP操作请求的流程图; 图4是Agent模拟器处理TRAP发送的流程图。
具体实施例方式以下结合附图对本发明作进一步详细说明。本发明通过构造一个模拟的网络设备(模拟器)并将其用于网络管理的研究和测试,通过对该模拟器设定不同的网络状态,可以模拟不同的网络事件,以便于进行网络管理系统的研究。更进一步说,本发明的目的在于模拟网络管理系统中基于简单网络管理协议 SNMP的网络设备代理与网络管理系统间的网络通信。如图2所示,本发明所述的基于SNMP网络管理的模拟器,所述模拟器为Agent模拟器,包括
MIB脚本一个XML文件,用于存放MIB数据,由用户自定义生成; 脚本解析模块把MIB脚本对应的XML文件解析为MIB数据; MIB数据库存放脚本解析模块解析后的MIB数据;
SNMP报文处理模块根据收到的SNMP报文,在MIB数据库中查询对应的响应数据,然后根据查询结果将MIB数据组织成相应的SNMP响应报文,并将SNMP响应报文发送给SNMP 协议通信模块;
SNMP报文处理模块还将需要处理的SNMP请求数据解析后放入到本地MIB数据库; TRAP报文组织模块按照一定格式将MIB数据组织成SNMP的TRAP报文,并将TRAP报文发送给SNMP协议通信模块;
SNMP协议通信模块基于SNMP协议,负责与外部对象进行通信;所述外部对象为管理站NMS,SNMP协议通信模块和管理站NMS之间通过Get-Request、Get-Response、 Get-Next-Request、Get-Next-Response> Set-Request、Set-Response 禾口 Trap 消息报文进行通信。在上述技术方案的基础上,图3示出了 Agent模拟器处理SNMP操作请求的流程图,包括以下步骤
al.接收SNMP请求在某个端口 SNMP协议通信模块接收SNMP请求数据包; bl. 解析SNMP请求数据SNMP报文处理模块解析SNMP请求数据包,得到相应的MIB 请求数据;
cl. 脚本解析模块读入MIB脚本文件,从该文件中解析出一个个MIB数据,并把解析出来的MIB数据存放到MIB数据库中;
dl. SNMP报文处理模块把解析出来的MIB请求数据与本地MIB数据库中的MIB数据进行映射,并根据映射结果从本地MIB数据库读取相应的数据,或者把数据赋值到本地MIB 数据库;从本地MIB数据库读取相应的数据的过程如下
当A[I] = j时,其中j是某个SNMP请求中的配置数据,A是设置的MIB数据库结果集, I是结果集的下标,则称为在A结果集中,I号OID对应的SNMP请求结果为j ;
这样当Agent模拟器收到MIB数据库中的SNMP请求时,首先解析该SNMP请求的0ID, 然后根据OID找到对应MIB数据库中那个条目,最后取得该条目对应的数据值;
el. SNMP报文处理模块把步骤dl的执行结果组织为SNMP数据库并形成SNMP响应报
文;
Π. SNMP协议通信模块发送SNMP响应报文给管理站NMS。
在上述技术方案的基础上,图4示出了 Agent模拟器处理TRAP发送的流程图,包括以下步骤
a2. TRAP报文组织模块设置TRAP的接收地址; b2. TRAP报文组织模块设置要发送的TRAP数据; c2. TRAP报文组织模块设置发送频率;
d2. TRAP报文组织模块从本地MIB数据库读取相应的数据,并形成TRAP报文; e2. TRAP报文组织模块通过SNMP协议通信模块向TRAP的接收地址(目的地址)发送 TRAP报文。以上所述仅为本发明的较佳实施例,并不用于限制本发明,凡在本发明精神和原则之内所做的任何修改、等同替换和改进等,均含于本发明的保护范围之内。本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。
权利要求
1.一种基于SNMP网络管理的模拟器,其特征在于,所述模拟器为Agent模拟器,包括 MIB脚本一个XML文件,用于存放MIB数据,由用户自定义生成;脚本解析模块把MIB脚本对应的XML文件解析为MIB数据; MIB数据库存放脚本解析模块解析后的MIB数据;SNMP报文处理模块根据收到的SNMP报文,在MIB数据库中查询对应的响应数据,然后根据查询结果将MIB数据组织成相应的SNMP响应报文,并将SNMP响应报文发送给SNMP 协议通信模块;SNMP报文处理模块还将需要处理的SNMP请求数据解析后放入到本地MIB数据库; TRAP报文组织模块按照一定格式将MIB数据组织成SNMP的TRAP报文,并将TRAP报文发送给SNMP协议通信模块;SNMP协议通信模块基于SNMP协议,负责与外部对象进行通信;所述外部对象为管理站NMS,SNMP协议通信模块和管理站NMS之间通过Get-Request、Get-Response、 Get-Next-Request、Get-Next-Response> Set-Request、Set-Response 禾口 Trap 消息报文进行通信。
2.如权利要求1所述的基于SNMP网络管理的模拟器,其特征在于=Agent模拟器处理 SNMP操作请求包括以下步骤al.接收SNMP请求在某个端口 SNMP协议通信模块接收SNMP请求数据包; bl.解析SNMP请求数据SNMP报文处理模块解析SNMP请求数据包,得到相应的MIB请求数据;cl.脚本解析模块读入MIB脚本文件,从该文件中解析出一个个MIB数据,并把解析出来的MIB数据存放到MIB数据库中;dl. SNMP报文处理模块把解析出来的MIB请求数据与本地MIB数据库中的MIB数据进行映射,并根据映射结果从本地MIB数据库读取相应的数据,或者把数据赋值到本地MIB 数据库;从本地MIB数据库读取相应的数据的过程如下当A[I] = j时,其中j是某个SNMP请求中的配置数据,A是设置的MIB数据库结果集, I是结果集的下标,则称为在A结果集中,I号OID对应的SNMP请求结果为j ;这样当Agent模拟器收到MIB数据库中的SNMP请求时,首先解析该SNMP请求的0ID, 然后根据OID找到对应MIB数据库中那个条目,最后取得该条目对应的数据值;el. SNMP报文处理模块把步骤dl的执行结果组织为SNMP数据包并形成SNMP响应报文;Π. SNMP协议通信模块发送SNMP响应报文给管理站NMS。
3.如权利要求1所述的基于SNMP网络管理的模拟器,其特征在于=Agent模拟器处理 TRAP发送包括以下步骤a2. TRAP报文组织模块设置TRAP的接收地址; b2. TRAP报文组织模块设置要发送的TRAP数据; c2. TRAP报文组织模块设置发送频率;d2. TRAP报文组织模块从本地MIB数据库读取相应的数据,并形成TRAP报文; e2. TRAP报文组织模块通过SNMP协议通信模块向TRAP的接收地址即目的地址发送TRAP报文。
全文摘要
本发明涉及一种基于SNMP网络管理的模拟器,脚本解析模块把MIB脚本文件解析为MIB数据并存放到MIB数据库;SNMP报文处理模块根据收到的SNMP报文,在MIB数据库中查询对应的响应数据,然后根据查询结果将MIB数据组织成SNMP响应报文,并将SNMP响应报文发送给SNMP协议通信模块;SNMP报文处理模块还将需要处理的SNMP请求数据解析后放入到本地MIB数据库;TRAP报文组织模块按照一定格式将MIB数据组织成SNMP的TRAP报文,并将TRAP报文发送给SNMP协议通信模块;SNMP协议通信模块负责与外部对象进行通信。本发明所述的模拟器,支持并发模拟大量设备,可以手工的设置SNMP的响应包数据,为网管软件的调试,以及大容量测试提供帮助。
文档编号H04L12/24GK102546260SQ20121002553
公开日2012年7月4日 申请日期2012年2月6日 优先权日2012年2月6日
发明者周俊杰, 季小庭, 李峰, 陈彤 申请人:烽火通信科技股份有限公司