摘要 本文介绍有关可扩展SNMP代理入手,提出了可扩展SNMP代理在WiMAX中的目前被广泛用于计算机网络管理,也是网络设备开发必须遵循的网络管理协议。
早期的代理进程是一种编译好的静态代码集,在其运行时无法动态的增加或删除MIB
实例。可扩展SNMP代理的引入,拓宽了基于SNMP网络管理系统对网络设备、重要部件及应用的控制能力,灵活可靠的扩展性,可以随时以模块化的方式将一个新加入的设备或部件纳入被管理的范围。
可扩展代理有一个主代理(master agent)和多个子代理(subagent)组成。主代理以代理的身份和网管站通信,发送和接收SNMP协议信息,但是基本访问不到管理信息。子代理不能访问主代理处理的SNMP信息,但是可以访问管理信息。主代理和网络管理站通过SNMP通信,与每个子代理是通过AgentX协议通信。
主代理负责接收与响应网络管理站的命令,并对命令进行解析,如果网络管理站所请求的MIB变量在自己本地的MIB中,那么主代理的行为与一个标准SNMP代理完全相同,就本地处理之后响应到网络管理站。如果网络管理站所请求的MIB变量不在自己的本地MIB中,它会找出管理此MIB变量的子代理,并向这个子代理发送请求,子代理收到请求之后,取得这个MIB变量的值并将其返回给主代理,主代理再将此MIB变量的值响应到网络管理站。
3 WiMAX中的可扩展SNMP代理
在WiMAX中,对操作维护控制器和WiMAX接入网控制器的接口的软件管理、事件管理、硬件管理等管理是基于SNMP协议的,其中的SNMP模块如图1所示。
图 1 SNMP 实现模型
每个模块的主要作用为:
SNMP主代理:它处理来自操作维护控制器的请求,如果这个请求是在WiMAX接入网控制器的扩展MIB中,它将把消息传递给SNMP子代理。在WiMAX中,免费软件包netsnmp的snmpd充当SNMP的主代理,它支持许多标准的MIB库,作为独立的进程运行,这里开发所用的标准接口都由netsnmp提供。
SNMP子代理:它实现WiMAX接入网控制器的扩展MIB,主要处理操作维护模块部分的关于软件管理、事件管理、硬件管理等管理的请求。这里SNMP子代理有两方面作用:
⑴ 监听来自SNMP主代理的请求,如果发现有来自主代理的请求,它将调用相关的操作维护模块接口来处理这个请求。
在实际系统中,MIB 库由操作维护模块维护,也即子代理不需要本地维护MIB库,只需通过调用与操作维护模块之间的接口来完成对MIB数据的操作。
当主代理接收到请求的MIB 变量在WiMAX接入网控制器扩展MIB中时,主代理将请求转到子代理 。子代理通过与操作维护模块主进程通信来得知是对WiMAX接入网控制器MIB对象进行取或设置操作。然后子代理调用操作维护模块提供的接口来get/set/get-next对象,然后将结果返还给主代理。
这些操作在子代理线程中实现。
⑵ 监听来自操作维护模块主进程的信息,如果接收到信息,它将信息打包成SNMP的TRAP数据包,然后发送到SNMP主代理。
这个操作在陷阱处理线程中实现。
四 设计与实现
在操作维护模块进程中SNMP 子代理有两个线程组成:子代理线程和陷阱处理线程。
⑴ 子代理线程
由于在MIB库中有标量和表两种不同的定义,所以有分别对标量和表的处理。由于两者处理过程相似,这里我们以对表的处理为例。
① 当次代理发现有get/set/get-next请求信息,就读入这个消息并解析,得到这个请求的列的对象标识和索引
② 我们会定义一张objAttr表,它是存放所有标量和表的对象类型和设置位属性的全局变量,它的数据结构包含:列的对象标识、列的对象标识的长度、MIB中定义的列对象的类型、只读或可读写标识。
由步骤1得到的列的对象标识查找objAttr表,得到列对象的类型和设置标识。
③ 根据请求信息中的模式,确定是GET、SET或GETNEXT 模式。
④ 如果是SET模式,首先它会检查由步骤2得到的设置标识是只读还是可读写,来确定这一列能否被设置。如果该列是可读写的,则通过对象标识查找表regGetAndSetApi,得到操作维护模块提供的应用编程接口(这里我们会得到set操作的接口),并调用该接口来设置所请求的变量,并返回成功。
如果该对象变量不能被设置,子代理则拒绝请求并返回,但不需要通知操作维护模块;如果对象标识所对应的接口没有找到,则返回并打印错误信息。
这里表regGetAndSetApi是全局变量。当注册时,对象标识所对应的操作维护模块提供的应用编程接口就被保存在表中,它的数据结构包含:列的对象标识、列的对象标识的长度、GET或SET模式、 要返回的操作维护模块的接口。
图2展示了WiMAX中主代理和子代理间的通信机制,图中我们以SET操作为例。
转贴于 范文论文吧 http://www.fwlw8.com[1] [2] 下一页