用NET-SNMP软件包开发简单客户端代理.doc
文本预览下载声明
扩展MIB的方法
写在前面的话:
对于net-snmp我也是一个初学者,开始学习时也碰到了很多低级的问题。在很多论坛上(事实上比较少^_^, 建议大家直接去sourcefoge社区看关于net-snmp的mail-list),都没有比较初级入门的文章,本着开源学习的精神,把自己的一点收获,共享给大家。通过参考一些前辈的文章和帮助文档,本文实现了一个简单的mib,并编写了文档。本文主要面向初级学习者(我也是个菜鸟),欢迎大家留言讨论。
!--[if !supportEmptyParas]-- !--[endif]--
作者:solomoon
完成时间:2005-9-11
Email:lilofreeman@
Web:
目录
1 SNMP协议简介 2
1.1 网络管理协议结构 3
1.2 管理信息库 3
1.3 SNMP的版本 3
2 SNMP开发软件包 3
2.1 NET-SNMP简介和安装 3
2.2 NET-SNMP代理的配置 4
2.3 NET-SNMP工具的使用 4
3 扩展开发——代理 5
3.1 NET-SNMP中的scalar对象和table对象 5
3.2 NET-SNMP扩展代理的两种方式 6
3.3 自定义MIB 6
3.4 自定义MIB——简单变量的实现 7
3.5 自定义MIB——表对象的实现 9
3.5.1 mib.iterator.conf模版的实现 9
3.5.2 mib.iterator_access.conf模版的实现 11
3.6 代码的合并 11
3.7 配置和运行 11
4 开发中的问题与解决 12
5 总结 12
6 附录 13
6.1 主函数foxmail_new.c 13
6.2 简单变量实现代码 14
6.2.1 display_time.c 14
6.2.2 display_time.h 16
6.3 表的实现 16
6.3.1 ExampleTable.c 16
6.3.2 ExampleTable.h 23
6.3.3 ExampleTable_access.c 23
6.3.4 ExampleTable_access.h 29
6.3.5 ExampleTable_checkfns.c 30
6.3.6 ExampleTable_checkfns.h 31
6.3.7 ExampleTable_checkfns_local.c 31
6.3.8 ExampleTable_checkfns_local.h 32
6.3.9 ExampleTable_columns.h 32
6.3.10 ExampleTable_enums.h 33
6.4 自定义mib文件MyMib.txt 33
用NET-SNMP软件包开发简单客户端代理
????????? SNMP协议简介
作为一个完备的系统,必须有一套反馈机制来调整系统的运行。简单网络管理协议产生的目的,就是为了使松散的网络更加有效地运行。它广泛的应用于监测网络的状态、网络设备的运行情况、各种电脑设备以及一些辅助的外围设备,使得网络管理员通过对节点的查询和设置,发现并定位故障,进而采取相应措施维护网络。网络管理的研究已经发展了许多年,对于日益纷繁的需求,简捷性和扩展性仍是研究的主题。本文档的目的是关于客户端代理的开发,不是对协议发展的探讨。本文中协议相关资料可以参考RFC文档:??????
RFC1155:Structure and Identification of Management Information for TCP/IP-based
Internets?????????
RFC1157: SNMP??????????????????
RFC1212: Concise MIB Definitions
RFC1215: A Convention for Defining Traps
RFC1905: Protocol Operations for SNMPv2????????
RFC2011: SNMPv2 Management Information Base for the Internet Protocol using SMIv2
RFC2578: Structure of Management Information
RFC2579: Textual Conventions
RFC2580: Conformance Statements
???????? 网络管理协议结构
SNMP的网络管理模型包括以下关键元素:管理端、代理端、管理信息库、网络管理协议。它基于tcp/ip协议,属于应用层协议,通过udp协议通信。管理端与代理端的通信原语包括:Get,Getnext,Set,Trap。对应这些命令相应的SN
显示全部