1、MIB 库扩展的方法一、描述在已有的网管控制命令的基础上添加新的命令需要对相应的被控端的 snmp 代理的 MIB 库进行扩展,即在已有的 MIB 库中添加新的节点。二、具体步骤1. 按照 ASN.1 标准编写 mib 文件可以在已有的 MIB 文件中根据 ASN.1 标准直接添加节点定义即可。ASN.1 标准的内容比较多,网上可以搜索到相关的资料,这里不作过多的说明,实际的使用中可以参考 snmp 源代码中给出的示例。这里给出一个例子。在已有的 PARAM-MIB.txt 中添加新节点 mynodePARAM-MIB DEFINITIONS := BEGINIMPORTSOBJECT-GRO
2、UP, NOTIFICATION-GROUPFROM SNMPv2-CONFenterprises, Integer32, Gauge32, OBJECT-TYPE, MODULE-IDENTITY,NOTIFICATION-TYPEFROM SNMPv2-SMITEXTUAL-CONVENTIONFROM SNMPv2-TC;- 用户站设备 usr OBJECT IDENTIFIER := enterprises 1 - 我的私有节点-oid=.1.3.6.1.4.1.1- ?string size password OBJECT-TYPESYNTAX OCTET STRING (SIZE
3、(064)MAX-ACCESS read-onlySTATUS currentDESCRIPTION“login password“ := usr 1 . - 新增节点定义 oid=.1.3.6.1.4.1.1.20Mynode OBJECT-TYPESYNTAX Integer32MAX-ACCESS read-writeSTATUS currentDESCRIPTION“new node for test“ := usr 20 END2. 使用 mib2c 编译工具编译 mib 文件命令格式为:mib2c+对象名称例如:mib2c mynode根据需要选择相应的选项即可生成相应的 myno
4、de.c 和 mynode.h 文件,在mynode.c 中编辑相应的控制代码。3. 将生成的.c 和.h 文件加入到 snmp 源码中将生成的 mynode.c 和 mynode.h 拷贝到 snmp 源代码文件夹下的 agent/mibgroup下4. 重新编译、安装 snmp1)需要加上新加的节点(红色部分)./configure -prefix=/usr/local/net-snmp -enable-mfd-rewrites -with-default-snmp-version=“2“ -with-sys-contact=““ -with-sys-location=“China“ -with-logfile=“/var/log/snmpd.log“ -with-persistent-directory=“/var/net-snmp“ -with-mib-modules=“mynode “2)make3)make install