您好,欢迎访问三七文档
当前位置:首页 > 办公文档 > 工作范文 > SNMP与SNMP-Agent移植
SNMP与SNMPAgent移植SNMP与SNMPAgent移植修订记录时间描述作者2011-4-21创建文档,描述文档框架HenrySNMP与SNMPAgent移植目录1概述.........................................................42SNMP简介....................................................42.1GetSNMP..............................................42.2Host安装..............................................42.3SNMPintroduce........................................43SNMP移植....................................................53.1基本步骤...............................................53.2使用mib2c自动生成代码..................................73.2.1mib2c模板与使用.....................................73.2.2普通结点...........................................93.2.3一维表............................................123.2.4二维表............................................123.3MDF模板..............................................123.3.1Introduction.....................................123.3.2DataStructures..................................133.3.2.1UserContext................................133.3.2.2MIBcontext.................................133.3.2.3DataContext................................133.3.2.4RowRequestContext.........................133.3.3DataLookup......................................143.3.3.1container-cached............................143.3.3.2Iterator(unsorted-external)................143.3.3.3Direct......................................153.3.4Datamanipulation................................153.4代码修改..............................................163.4.1MIB_例子..........................................163.4.2生成代码说明.......................................163.4.3框架说明..........................................173.4.3.1_...............................错误!未定义书签。3.4.3.2_Interface..................................203.4.3.3_data_access................................213.4.3.4_data_get...................................22SNMP与SNMPAgent移植3.4.3.5_data_set...................................223.4.4移植.............................................243.4.4.1方法........................................243.4.4.2_...........................................243.4.4.3_Interface..................................253.4.4.4_data_access................................293.4.4.5_data_get...................................323.4.4.6_data_set...................................323.5全局修改..............................................383.6MakeAll.............................................394部署........................................................395参考........................................................39SNMP与SNMPAgent移植SNMP与SNMPAgent移植1概述SNMP(SimpleNetworkManagementProtocol)规定了在网络环境中对设备进行监视和管理的标准化管理框架、通信的公共语言、相应的安全和访问控制机制。网络管理员使用SNMP功能可以查询设备信息、修改设备的参数值、监控设备状态、自动发现网络故障、生成报告等[1]。目前最新版本为:SNMPv3。本文档描述GT3000中,SNMPAgent的实现方法。2SNMP简介2.1GetSNMP从可以获取SNMP的开源代码。我们基于net-snmp-5.2.6移植.2.2Host安装在开发中需要net-snmp中一些相关的工具,如mib2c、手册等,这需要先在本机安装。cdnet-snmp-5.2.6./configure–-with-perl-modulesmakemakeinstall2.3SNMP目录安装完成后的目录结构,及重要目录介绍..|--agent||--helpers||--mibgroup(C实现的MIB模块)|--apps(一些应用工具,snmpget...)|--dist|--includeSNMP与SNMPAgent移植|--local|--man|--mibs(MIB文件)|--ov|--perl|--snmplib|--testing|--win32所有的MIB模块都在agent/mibgroup目录下,而工具软件在apps下。3SNMP移植本部分介绍在SNMP中增加MIB、实现SNMPAgent方法;以GEboard中,Port结点为例说明。3.1基本步骤下面是GEboard中定义的Port结点:移植基本步骤:1.对MIB使用mib2c生成的.c和.h文件,用法见3.2.1。2.一个模块包含多个文件时,要添加或修改依赖关系,具体见3.4.4.3SNMP与SNMPAgent移植3.把mib2c生成的文件和我们放到源码目录net-snmp-5.2.6/agent/mibgroup下,我们自己的API文件也放到这个目录下,包括c和h。4.修改代码(包括snmpd.c),具体见3.4.45.执行configure。根据我们的应用,去掉了一些我们不需要的模块,在—with-mib-modules中,增加新的MIB/.c文件。配置如下:./configure\--build=i686-linux\--host=arm-linux\--target=arm-linux\--with-endianness=little\--enable-mini-agent\--enable-as-needed\--disable-ipv6\--disable-manuals\--disable-scripts\--disable-embedded-perl\--disable-applications\--disable-ucd-snmp-compatibility\--disable-snmptrapd-subagent\--without-perl-modules\--with-out-mib-modules=snmpv3mibsmibII/snmp_mibmibII/system_mibmibII/sysORTablemibII/vacm_varsmibII/vacm_confutilities/execute--with-mib-modules=util_funcsxl3000SnmpgePortTableatmPortTable\--with-default-snmp-version=2\--with-sys-contact=contact\--with-sys-location=location\--with-logfile=/log/snmpd.log\--with-persistent-directory=/var/net-snmpxl3000Snmp是我们自己的API,把他当做一个模块编译进Agent。6.修改make文件为支持C++代码,还要修改相应的链接器,并加入我们自己的头文件搜索目录和链接库。文件:net-snmp-5.2.6/agent/mibgroup/Makefile修改:arm-linux-gccSNMP与SNMPAgent移植改为:arm-linux-g++文件:net-snmp-5.2.6/agent/Makefile修改:--mode=link$(CC)改为:--mode=linkarm-linux-g++文件:net-snmp-5.2.6/agent/mibgroup/Makefile增加:SRC_MIBGROUP_INCLUDES+=-I$HOME/xl2005sw/inc文件:net-snmp-5.2.6/agent/Makefile增加:LOCAL_LIBS+=$HOME/xl2005sw/lib/libxl3000all.a-lpthread7.部署并运行snmpd在net-snmp-5.2.6目录下执行make,把agent下生成的snmpd拷贝到目标机的/usr/local/sbin目录下,修改配置文件(具体见4.1),并在目标机上执行snmpd-Le-f-DgePortTable注:-f不创建后台进程-DTOKEN打开指定标志Debug信息,这里为gePortTable-Le把错误信息输出到标准错误由于每次configure后,make文件都会被重新建立一次,因此上述步骤每次都需要重做!.3.2使用mib2c自动生成代码使用MIB2C可以根据MIB文件,自动生成代码;运行时,需要指定MIB库中的结点名,mib2c生成以该结点为树根的树(所有子树/结点)的访问代码。其生成的源代码文件名,就是MIB文件中该根结点的名字。一个MIB文件可以生成多套源代码文件;3.2.1mib2c模板与使用mib2c支持3种类型变量。提供了9
本文标题:SNMP与SNMP-Agent移植
链接地址:https://www.777doc.com/doc-5833154 .html