本课题的任务是基于Linux系统平台通过Net-SNMP工具进行SNMP Agent的设计与实现,针对SNMP协议Agent端进行研究,设计并实现SNMP管理模型中的MIB库以及SNMP Agent端功能。要求熟悉网络协议和Linux环境下C语言编程[11][12]。
本文的主要研究内容是:
首先对本课题功能的设计与实现所涉及到的相关技术知识进行研究,主要包括:SNMP网络管理模型、SNMP各版本协议、SNMP管理系统与被管理设备之间的信息流程、ASN.1语法规则、MIB-II特性以及书写规则等[13][14][15]。然后就是熟悉Net-SNMP工具的使用方法和相关的操作命令,完成SNMP主代理snmpd的配置和运行环境的搭建,SNMP Agent开发和编译环境的搭建。
接下来就是本文的核心研究部分,自定义MIB库的设计[16]和代码文件的编写、根据自定义MIB库完成相对应的Agent功能,实现网络管理系统NMS对Agent端轮询的数据交互,实现Agent端对NMS自陷进行情况汇报的功能。其中MIB库的设计主要分为两大类:scalar变量以及table变量各自的MIB设计。
最后是对本文设计和实现的SNMP Agent程序进行测试和改进。主要针对MIB文件是否正确的构建了符合假想的MIB树、NMS是否能够准确的获取运行Agent设备的相关信息、能否对该设备已实现代理功能的信息实施有效管理、Agent端能否给NMS准确发送trap信息以及NMS端能否准确收到trap信息等进行测试。
1.4 论文组织结构
根据课题研究工作的内容,本文主要分为优尔章:
第一章,引言,介绍采用SNMP协议作为载体进行子代理开发的课题意义和背景,并从全球IT云基础设施的市场增长数据以及IDC相关领域研究部经理Kuba Stolarski的观点引出SNMP应用的可观发展前景[4]。然后分析了使用Net-SNMP工具作为开发SNMP代理功能的现状,研究了使用Net-SNMP扩展MIB库的4种方法。最后对本文的内容组织结构安排做了简单的介绍。
第二章,SNMP协议及相关技术背景,介绍使用Net-SNMP工具进行SNMP Agent开发所涉及到的相关技术知识背景,主要包括:SNMP协议、SNMP网络管理模型、SNMP网络管理系统NMS与被管设备Agent之间的信息交互流、ASN.1语法规则、MIB-II特性以及书写规、Net-SNMP工具的使用方法和相关的操作命令、trap协议PDU格式解析等,为后面进行系统设计和实现提供理论支持。
第三章,SNMP环境的搭建,主要介绍Net-SNMP工具的安装和配置过程,主要包括:Net-SNMP工具的安装,snmpd.conf文件的配置,snmpd运行环境的配置以及Agent代理程序运行环境的配置。然后对环境的配置做一个简单的测试。
第四章,SNMP Agent系统设计与开发,主要介绍了基于Net-SNMP工具的SNMP Agent设计与实现,主要包括了两大模块的实现:scalar变量功能实现和table变量功能实现。而这两大模块均可细分为对MIB文件的编写、通过mib2c工具生成.c和.h文件、添加待实现的Agent功能代码、编译和运行等功能。其中table变量模块包含了对SNMP trap功能的实现。最后分析了如何将该框架整合到原有项目上的方法。
第五章,SNMP Agent功能测试,主要介绍对于SNMP Agent系统中的运行和测试,主要包括对scalar变量和table变量通过snmpget、snmpwalk、snmptable等操作获取数据、通过snmpset改变配置属性、访问权限测试以及对Agent的自陷trap功能等功能的测试。最后通过在别的机子上仿真运行一个NMS系统,用于测试远程访问功能。
第优尔章,存在的问题与下一步工作,在对本文所做的工作作总结的基础上分析存在的问题,并针对这些问题安排下一步改进的工作。
2 SNMP协议及相关技术背景
本章介绍使用Net-SNMP工具进行SNMP Agent开发所涉及到的相关技术知识背景,主要包括:SNMP协议、SNMP网络管理模型、SNMP网络管理系统NMS与被管设备Agent之间的信息交互流、ASN.1语法规则、MIB-II特性以及书写规、Net-SNMP工具的使用方法和相关的操作命令、trap协议PDU格式解析等,为后面进行系统设计和实现提供理论支持。 基于net-snmp的SNMP Agent开发与实现(3):http://www.youerw.com/jisuanji/lunwen_25723.html