基于SNMP协议的分布式异步管理电信设备的方法和系统与流程

文档序号:11236630阅读:553来源:国知局
基于SNMP协议的分布式异步管理电信设备的方法和系统与流程

本发明涉及网络管理技术领域,具体涉及基于snmp协议的分布式异步管理电信设备的方法和系统。



背景技术:

snmp(simplenetworkmanagementprotocol)简单网络管理协议,snmp就是用来规定网管工作站中的网管软件和网络设备的代理(agent)之间是如何传递管理信息的应用层协议。

snmp协议标准中定义了管理的对象和一些基本的操作,该对象是指保存在网络设备上的管理信息库(mib),该操作包括获取请求(get-request)、获取下一请求(get-next-request)、获取响应(get-response)、设置请求(set-request)和报告(trap)。利用snmp协议对信息管理库mib和操作的定义,网管工作站中的网管软件可以远程管理所有支持这种协议的网络设备,包括监视网络状态、修改网络设备配置、接收网络事件警告等。网管软件在对基于snmp协议的网络设备进行管理时,使用基于snmp协议的应用编程接口api函数直接向网络设备发送请求操作,即使用snmp协议定义的上述五种操作对网络设备进行访问,网络设备上的agent处理请求,并向网管软件返回该网络设备的配置信息。

但是,随着电信运营商对电信设备的要求越来越高,尤其是电信设备扩容后硬件上对设备的级联改造,由于现有的网管只能使用公网管理电信设备,使得公网压力较大,所以现有的管理方式不能够在不改变公网上层拓扑结构的情况下,管理改造后的电信设备。不能提升下游级联设备的总体性能,无法满足更多的用户电信业务需求。



技术实现要素:

针对现有技术中存在的缺陷,本发明的目的在于提供基于snmp协议的分布式异步管理电信设备的方法和系统,用于公网网管与私网子代理设备间的通信,从而实现电信设备的级联管理功能。

为达到以上目的,本发明采取的技术方案是:

一种基于snmp协议的分布式异步管理电信设备的方法,包括以下步骤:

s1,网管采用snmp协议向主代理设备发送原始snmp请求报文,所述原始snmp请求报文的udp报文包头包括主代理snmp报文共同体名、主代理的snmp版本号和原始snmp报文请求id值,根据业务需求选择性的在主代理snmp报文共同体上加入自定义snmp共同体名;

s2,主代理设备接收原始snmp请求报文后,判断是否存在自定义snmp共同体名,否,则进行主代理设备处理,是,则进入s3;

s3,主代理设备根据自定义snmp共同体名将原始snmp请求报文重新封装得到新的snmp请求报文,所述新的snmp请求报文包括子代理snmp共同体名、子代理snmp协议号、新的snmp报文请求id;同时,主代理设备将udp报文包头和新的snmp报文请求id保存到nat转发表,形成与所述原始snmp请求报文对应的nat转发表条目;

s4,主代理设备将新的snmp请求报文发送给子代理设备后,子代理设备生成原始snmp响应报文,并发送给主代理,所述原始snmp响应报文包括新的snmp报文请求id;

s5,主代理接收到原始snmp响应报文后,查询nat转发表,找到对应的nat转发表条目,重新封装原始snmp响应报文,得到新的snmp响应报文,并转发给网管,所述新的snmp响应报文包括udp报文包头。

在上述技术方案的基础上,还包括:

s5中主代理设备以新的snmp报文请求id为索引,查询nat转发表。

在上述技术方案的基础上,所述nat转发表条目还包括原始snmp请求报文的源ip地址和原始snmp请求报文的socket信息。

在上述技术方案的基础上,新的snmp响应报文根据所在nat转发表条目的原始snmp请求报文的源ip地址和原始snmp请求报文的socket信息发送至网管。

在上述技术方案的基础上,所述自定义snmp共同体名的格式为通过字段分隔符标识分隔的转发标识、snmp协议栈版本号、snmp协议栈共同体名、子代理设备内网ip地址和子代理设备snmp协议栈侦听端口号。

在上述技术方案的基础上,根据所述自定义snmp共同体名解析出snmp协议栈共同体名字段值和snmp协议栈版本号字段值分别作为子代理能够识别的子代理snmp共同体名和子代理snmp协议号。

在上述技术方案的基础上,所述主代理设备自行分配所述新的snmp报文请求id。

基于snmp协议的分布式异步管理电信设备的系统,包括网管、主代理设备和子代理设备,所述网管内设有原始snmp请求报文生成模块、所述主代理设备内设有代理转发模块,以及所述子代理设备内设置的原始snmp响应报文生成模块;

其中,所述原始snmp请求报文生成模块用于根据业务生成原始snmp请求报文,所述原始snmp请求报文的udp报文包头包括主代理snmp报文共同体名、主代理的snmp版本号和原始snmp报文请求id值,根据业务需求选择性的在主代理snmp报文共同体上加入自定义snmp共同体名;

所述代理转发模块用于根据自定义snmp共同体名封装新的snmp请求报文并转发给子代理设备,还用于将原始snmp响应报文重新封装成新的snmp响应报文转发给网管,所述新的snmp请求报文包括子代理共同体名、子代理snmp协议号、新的snmp报文请求id,所述新的snmp响应报文包括udp报文包头;

所述原始snmp响应报文生成模块用于根据所述新的snmp请求报文生成原始snmp响应报文,所述原始snmp响应报文包括新的snmp报文请求id。

在上述技术方案的基础上,所述代理转发模块包括新的snmp请求报文生成模块、nat转发表模块和新的snmp响应报文生成模块;

其中,所述新的snmp请求报文生成模块用于根据自定义snmp共同体名封装新的snmp请求报文;

所述nat转发表模块用于将原始snmp请求报文的udp报文包头和新的snmp报文请求id存储到nat转发表中,形成与所述原始snmp请求报文对应的nat转发表条目;

所述新的snmp响应报文生成模块用于根据对应的nat转发表条目重新封装所述原始snmp响应报文生成新的snmp响应报文。

在上述技术方案的基础上,所述新的snmp响应报文生成模块根据所述新的snmp报文请求id索引nat转发表,找到对应的nat转发表条目,根据nat转发表条目中的udp报文包头,重新封装原始snmp响应报文,得到新的snmp响应报文,所述新的snmp响应报文包括udp报文包头。

与现有技术相比,本发明的优点在于:

(1)本发明的基于snmp协议的分布式异步管理电信设备的方法通过在udp报文包头中加入自定义snmp共同体名,主代理设备可以将原始snmp请求报文和原始snmp响应报文进行重新封装,代替网管软件,直接从传输层转发报文给子代理设备,实现了网管与主代理设备通过公网进行通信,主代理设备与子代理设备通过私网进行通信,进而实现了不改变上层网络拓扑结构的同时,实现了网管对子代理设备的管理,其执行效率高、异步、通用性强,具有异步、并发通信和支持分布式部署的优点。

(2)本发明的基于snmp协议的分布式异步管理电信设备的系统根据业务需求选择在网管下发的原始snmp请求报文中添加自定义snmp共同体名,位于主代理内的代理转发模块根据自定义snmp共同体名将原始snmp请求报文重新封装成新的snmp请求报文,又将子代理设备发送的原始snmp响应报文重新封装成新的snmp响应报文,实现了主代理设备与网管公网通信,主代理设备与子代理设备之间的私网进行通信,进一步实现了部署在私网上的子代理设备的扩展和级联,从而实现了公网网管对主代理设备下级联的众多私网子代理设备的管理和维护功能。

(3)本发明的基于snmp协议的分布式异步管理电信设备的系统在nat转发表中记录每一条下发到子代理设备的请求报文的原始信息,当子代理设备响应主代理设备某一请求报文对应的响应报文时,只需要根据新的snmp报文请求id索引nat转发表即可得到原始信息,实现了主代理设备下发请求报文的同时可以转发其他响应报文,实现了异步和并发通信。

附图说明

图1为本发明实施例的方法流程图;

图2为本发明实施例的系统框图。

具体实施方式

以下结合附图及实施例对本发明作进一步详细说明。

参见图1所示,本发明实施例提供一种基于snmp协议的分布式异步管理电信设备的方法,包括以下步骤:

s1,网管采用snmp协议向主代理设备发送原始snmp请求报文,原始snmp请求报文的用户数据报协议udp报文包头包括主代理snmp报文共同体名、主代理的snmp版本号和原始snmp报文请求id值,根据业务需求选择性的在主代理snmp报文共同体上加入自定义snmp共同体名,若网管需要获取私网子代理设备的状态信息时,在主代理snmp报文共同体上加入自定义snmp共同体名,若网管需要获取公网上主代理设备的状态信息时,则不需要加入自定义snmp共同体名,其中,自定义snmp共同体名的格式为通过字段分隔符标识分隔的转发标识、snmp协议栈版本号、snmp协议栈共同体名、子代理设备内网ip地址和子代理设备snmp协议栈侦听端口号,自定义snmp共同体名的格式为转发标识@snmp协议栈版本号@snmp协议栈共同体名@子代理设备内网ip地址@子代理设备snmp协议栈侦听端口号;

s2,主代理设备接收原始snmp请求报文后,判断是否存在自定义snmp共同体名,否,则进行主代理设备处理,是,则进入s3;

s3,主代理设备根据自定义snmp共同体名解析出snmp协议栈共同体名字段值和snmp协议栈版本号字段值分别作为子代理能够识别的子代理snmp共同体名和子代理snmp协议号,结合子代理snmp共同体名和子代理snmp协议号将原始snmp请求报文重新封装得到新的snmp请求报文,新的snmp请求报文包括子代理snmp共同体名、子代理snmp协议号、新的snmp报文请求id,其中新的snmp报文请求id由主代理设备自行分配;同时,主代理设备将udp报文包头和新的snmp报文请求id保存到网络地址转换nat转发表,形成与原始snmp请求报文对应的nat转发表条目,其中,nat转发表条目包括与新的snmp报文请求id对应的原始snmp请求报文的源ip地址、原始snmp请求报文的socket信息和udp报文包头;

s4,主代理设备将新的snmp请求报文发送给子代理设备后,子代理设备生成原始snmp响应报文,并发送给主代理,原始snmp响应报文包括新的snmp报文请求id;

s5,主代理接收到原始snmp响应报文后,以新的snmp报文请求id为索引,查询nat转发表,找到新的snmp报文请求id对应的nat转发表条目,得到udp报文包头,并重新封装原始snmp响应报文,得到新的snmp响应报文,新的snmp响应报文包括udp报文包头,根据nat转发表条目的原始snmp请求报文的源ip地址和原始snmp请求报文的socket信息将新的snmp响应报文转发给网管。

参见图2所示,本实施例提供一种基于snmp协议的分布式异步管理电信设备的系统,包括网管、主代理设备和子代理设备,网管内设有原始snmp请求报文生成模块、主代理设备内设有代理转发模块,以及子代理设备内设置的原始snmp响应报文生成模块。

其中,原始snmp请求报文生成模块用于根据业务生成原始snmp请求报文,原始snmp请求报文的udp报文包头包括主代理snmp报文共同体名、主代理的snmp版本号和原始snmp报文请求id值,根据业务需求选择性的在主代理snmp报文共同体上加入自定义snmp共同体名。

代理转发模块用于根据自定义snmp共同体名封装新的snmp请求报文并转发给子代理设备,还用于将原始snmp响应报文重新封装成新的snmp响应报文转发给网管,新的snmp请求报文包括子代理共同体名、子代理snmp协议号、新的snmp报文请求id,新的snmp响应报文包括udp报文包头。

原始snmp响应报文生成模块用于根据新的snmp请求报文生成原始snmp响应报文,原始snmp响应报文包括新的snmp报文请求id,原始snmp响应报文生成模块接收来自代理转发模块发送的新的snpm请求报文并进行应答,可实现分布式部署。

代理转发模块包括新的snmp请求报文生成模块、nat转发表模块和新的snmp响应报文生成模块。

其中,新的snmp请求报文生成模块用于根据自定义snmp共同体名封装新的snmp请求报文;nat转发表模块用于将原始snmp请求报文的udp报文包头和新的snmp报文请求id存储到nat转发表中,形成与原始snmp请求报文对应的nat转发表条目;新的snmp响应报文生成模块根据新的snmp报文请求id索引nat转发表,找到对应的nat转发表条目,根据nat转发表条目中的udp报文包头,重新封装原始snmp响应报文,得到新的snmp响应报文,新的snmp响应报文包括udp报文包头。代理转发模块实现管理站发起的对私网设备访问请求的解析、转发表保存和报文转发功能,并不需要解析snmp静荷数据而直接从传输层转发,通过nat转发表实现类似nat功能,具有执行效率高、异步和通用性强的优点。

本发明不局限于上述实施方式,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围之内。本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1