snmp协议扩展

来源:互联网 发布:英文阅读软件 编辑:程序博客网 时间:2024/06/18 12:42
1 下载源码包net-snmp-5.4.1
1.1 下载地址可以搜到很多
1.2 下载源码包net-snmp-5.4.1.tar.gz
1.3 用net-snmp是因为它是开源项目,并且容易扩展功能
1.4 最新版本是5.4.1

2 目录结构
net-snmp-5.4.1\agent\mibgroup是存放私有MIB文件目录:

3 编译:修改编译选项, 移植到不同硬件平台
3.1 各平台不同的参数主要有GCC、HOST、CFLAGS等几项,特别注意的是这两个参数:
企业OID:--with-enterprise-oid = 1567
企业名称OID:--with-enterprise-sysoid = .1.3.6.1.4.1.1567.5000.1.27

3.2 XSCALE下的编译选项:
./configure --with-cc=/opt/dev_env/XSCALE/usr/local/bin/arm-linux-gcc --with-cflags="-mbig-endian -O2"
--host=xscale
--with-endianness=big
--disable-applications
--disable-debugging
--with-sys-location="guoren"
--with-sys-contact="www.powercn.com"
--with-default-snmp-version="3"
--with-enterprise-oid=1567 --with-enterprise-sysoid=.1.3.6.1.4.1.1567.5000.1.27 --with-persistent-directory="/tmp"
--with-logfile="/tmp/snmp.log"
--sysconfdir="/etc/IWNCOMM/snmp" --with-libs=/home/wlan/zhaopz/project/0045-2/net-snmp-5.4.1/agent/libiw.so.xscale
3.3 其它平台如ARM9等的编译方式见源码包的cfg.arm文件;

4 修改公有MIB的代码, 使第二步能编译通过
4.1 只加入项目要使用的公有MIB的功能,原因是源码包在不同平台下编译时存在兼容性的问题,不能通过;常用的公有MIB库包括:mibII/system_mib、mibII/interfaces两项:
4.2 system_mib.c文件修改的是:存取系统名称的方法,原来是只读的方法,修改为可读写的;
4.3 interfaces.c文件修改的是:存取网络接口数据信息的方法,原来的方法和其它文件偶合过于紧密,修改后只在interfaces.c文件中实现所有功能;

5 扩展私有MIB
5.1 私有功能和网管系统(源码包)的接口
新增加的文件必须包含到
net-snmp-5.4.1\agent\mibgroup\default_modules.h文件中,并执行以下步骤:make distcleanàconfigureàmake;

5.2 5.3 开发方式:“添加私有MIB文件à配置à编译à修改文件à再编译”
5.3.1 新增加的文件必须包含到
net-snmp-5.4.1\agent\mibgroup\default_modules.h文件中,
并执行以下步骤:make distcleanàconfigureàmake;
5.3.2 修改文件内容直接执行:make

6 简单数据项和表格数据的存取原理
6.1.1 简单数据项直接通过OID存取;
6.1.2 表格数据需要需要提供列数和行数,才能读取某行某列的数据项;

7 网管的调试方法:
7.1.1 编译产生的应用程序snmpd,通过wget下载到AP的/tmp目录,然后重新启动snmpd;wget的使用方法:
wget ftp://username:password@IP_ADDR/PATH/snmpd
7.1.2 PC机上运行MIB察看工具,通过get/set读写每一项的值,验正其正确性;也可以通过walk读取一个分支的所有值,批量验正;

8 开发网管需要具备的技能:
8.1 熟练撑握C语言程序设计方法;
8.2 熟练使用VIM + Makefile + make + gdb的软件开发模式;
8.2.1 VIM的使用技巧,VIM的功能强大,使用方便,不亚于任何一种其它编辑器;一些常用的编辑技巧整理如下:
n 重复还原类
撤消上一个编辑操作:U
重复上一个编辑操作:.
还原被撤消的编辑操作:Ctrl + R
n 大小写转换指令
~ :交换大小写
U :将小写变大写
u : 将大写变小写
n 跳转指令
ctrl + o :下一位置
ctrl + i :上一位置
ctrl + ] + i : 跳到变量定义处
n 多窗口操作
在各个窗口切换: ctrl+w
在一个窗口总打开一个文件: new filename
分割窗口: split
左右分栏: vsplit
在新窗口中打开文件:new filename
8.2.2 另外熟练使用gdb是调试小程序必不可少的技能:
gdb环境下的命令:
n b(reak):插入断点
n l(ist):显示下十行程序;
n r(un):执行程序
n s(tep):步入子程序
n c(ontinue):继续执行程序

8.3 熟悉UNIX系统调用方法,熟练编写UDP、UNIX socket等应用程序;
8.4 熟练撑握用C语言操作文本文件和二进制文件;
8.5 对网络设备驱动程序的原理和运行机制要有一定的了解;
8.6 良好的编程风格:尤其是模块化的程序设计方法,为开发才自己和后续开发人员都能提供极大的方便;
原创粉丝点击