MIB文件就是一个规范的ASN.1的模块,也可以称为MIB模块。
MIB 结构

模块声明部分

  • 所有的MIB模块都需要使用 DEFINITIONS 关键字定义模块,以END标识结束

导入/导出部分:

  • 也就是IMPORT/EXPORT,它一般紧跟在模块声明后,该部分主要声明导入其他模块,尤其是标准模块中定义的数据类型,宏等。只有导入相关数据类型,才可以在本模块中使用。
    利用IMPORTS标识,所有的模块引用使用FROM关键字说明其出处,引用使用分号(;)结束
IMPORTS  Unsigned32              FROM SNMPv2-SMIOBJECT-TYPE              FROM RFC-1212enterprises                FROM SNMPv2-SMI;

模块标识部分:

  • 一般都使用MODULE-IDENTITY以描述该模块的详细信息。该部分必须紧跟IMPORTS子句后。模块有更新历史时使用关键字REVISION进行描述。
 ipMIB MODULE-IDENTITYLAST-UPDATED "200602020000Z"ORGANIZATION "IETF IPv6 MIB Revision Team"CONTACT-INFO"Editor:EMail: <sar@iwl.com>"DESCRIPTION"The MIB module for managing IP and ICMP implementations, butexcluding their management of IP routes.REVISION      "200602020000Z"DESCRIPTION"The IP version neutral revision with added IPv6 objects forND, default routers, and router advertisements.  As well asbeing the successor to RFC 2011, this MIB is also thesuccessor to RFCs 2465 and 2466.  Published as RFC 4293."REVISION      "199411010000Z"DESCRIPTION"A separate MIB module (IP-MIB) for IP and ICMP managementobjects.  Published as RFC 2011."REVISION      "199103310000Z"DESCRIPTION"The initial revision of this MIB module was part of MIB-II,which was published as RFC 1213."::= { mib-2 48}

分配OID空间:

  • 该部分使用宏OBJECT IDENTIFIER为管理对象建立OID分支。在这部分可以规划并建立整个MIB中的分支
gcc_test OBJECT IDENTIFIER   ::= { enterprises 100 }
gcc_test_entry OBJECT IDENTIFIER    ::= { gcc_test 1 }

gcc_test 是一个子树支,它定义在enterprises树支下,“100” 是子树gcc_test 在父树enterprises下的一个唯一对象标识符。

Trap对象的定义:

  • 该部分是使用宏NOTIFICATION-TPYE(或TRAP-TYPE)定义本模块中的Trap对象,它为可选部分。

MIB对象的定义:

  • 指的是使用宏 OBJECT-TYPE定义管理对象。一般来说该部分是MIB文件中的主要内容。
 objectname OBJECT-TYPESYNTAX (syntax)MAX-ACCESS (access)STATUS (status)DESCRIPTION (description)::= { ( parent ) ( number )
test_entry1 OBJECT-TYPESYNTAX OCTET STRINGMAX-ACCESS read-writeSTATUS currentDESCRIPTION "entry1"::= { gcc_test_entry 1 }


标量和表格对象
管理对象可以以两种形式定义在MIB中,一种是标量对象,另一种是表格对象。
表格对象的定义

  • 1)使用SEQUENCE序列结构将各对象定义为序列结构,其中每一项都是标量对象,SEQUENCE的作用就是将这些标量对象按序列的方式组合起来;其中每个标量对象在表格中又称为列对象。要求该序列结构中定义的序列结构顺序一定要和表格中列对象的定义顺序一致,这也是SEQUENCE类型的含义。
  • 2)将SEQUENCE OF定义的序列结构定义为概念行,也称行对象。
  • 3)将概念行作为概念表的语法类型,定义概念表,即表格对象。
  • 表格对象和行对象语法类型都为“not-accessible”。表索引的访问权限也定义为“not-accessible”。
    现实应用中我们定义表时,会将上面3点的定义顺序反过来,请看代码:

—定义概念表,非叶子节点,不可访问:not-accessible

gccTestTable OBJECT-TYPESYNTAX SEQUENCE OF GccTestEntryMAX-ACCESS not-accessibleSTATUS   currentDESCRIPTION "概念表,not-accessible"::= { gcc_test 2 }

—以序列结构定义概念表中的概念行,非叶子节点,不可访问:not-accessible

gccTestEntry OBJECT-TYPESYNTAX GccTestEntryMAX-ACCESS not-accessibleSTATUS   currentDESCRIPTION "概念行,not-accessible"INDEX { gcctestIndex } --INDEX 子句定位::= { gccTestTable 1 }

—定义序列结构

GccTestEntry::=SEQUENCE {gcctestIndex Integer32,  --整型 indexgcctestValue Integer32,gcctestString DisplayString}

—标量;定义表中的索引,通过索引区分分列对象

gcctestIndex OBJECT-TYPESYNTAX Integer32MAX-ACCESS not-accessibleSTATUS  currentDESCRIPTION "表索引,通过索引区分列对象"::= { gcctestEntry 1 }

—标量;定义了一个整型的管理对象

gcctestValue OBJECT-TYPESYNTAX Integer32MAX-ACCESS read-onlySTATUS   currentDESCRIPTION "列对象"::= { gcctestEntry 2 }

—标量;定义了一个字符型的管理对象

gcctestString OBJECT-TYPESYNTAX DisplayStringMAX-ACCESS read-createSTATUS    currentDESCRIPTION "列对象"
::= { gcctestEntry 3 }

上面的代码定义的表结构如图所示:

概念行 列对象- gcctestIndex 列对象- gcctestValue 列对象- gcctestString

以上表格定义方法可以总结如下:表格名以小写字符开头,一般为了便于辨认以“Table”结束。xxxZzzTable的语法为SEQUENCE OF XxxZzzTable,其含义为定义表格的行对象。行对象的名称中首字母要求大写,以“Entry”结束。

MIB开发人员将MIB编写完成后,还需要使用工具对其进行编译,使之转化为NMS可使用的格式。对于使用Net-SNMP开发的人员来说一般都还需要将MIB转化为代码框架,这也涉及到对MIB文件的解析。

SNMP的MIB文件语法相关推荐

  1. snmp中mib文件解析

    mib文件的配置 在进行接口对接和数据访问中避免直接使用oid的情况, 使用时可将编写的新库放在管理端的mibs库中(/usr/share/snmp/mibs) ACCEL-PPP-MIB DEFIN ...

  2. SNMP功能开发简介 五 使用MIB Builder创建MIB文件图文介绍

    开发snmp功能一般都会涉及到添加私有节点,此外还要提供给其他人私有节点的MIB文件以方便查看.这里使用MG SOFT提供的MIB Builder工具创建MIB文件,工具下载链接:https://pa ...

  3. SNMP、MIB、OID概念的理解

    为什么80%的码农都做不了架构师?>>>    1.1. SNMP概览 SNMP的基本知识介绍 简单网络管理协议(SNMP-Simple Network Management Pro ...

  4. 基于SNMP的MIB库访问实现的研究

    蔡国森 (北京工商大学  计算机学院) 摘要  SNMP是用于网络管理/代理之间的请求/应答协议.管理信息库(MIB)定义了由代理者维护的各种变量,它们由管理者来进行存取操作,从而实现具体的网络管理. ...

  5. php 解析mib文件,Mib库解析

    MibAnalyser 介绍 MibAnalyser可以解析MIB文件,并转化为对应的实体,持久化到本地.MibAnalyser分为三个模块:解析模块.持久化模块.工具库模块. 解析模块 解析模块用于 ...

  6. SNMP、MIB和OID概述

    SNMP.MIB和OID概述 在网络监控方面,SNMP是最常用的技术之一.带宽监控程序使用它.但是SNMP如何工作?什么是MIB和OID? SNMP基础知识 SNMP代表简单网络管理协议,由三个关键组 ...

  7. Zabbix-01简单导入MIB文件并测试

    这里写自定义目录标题 安装 MIB文件 启用MIB文件 测试MIB文件 MIB文件 MIB代表管理信息库. MIB文件允许您使用OID(对象标识符)的文本表示. ##例如: ifHCOutOctets ...

  8. MG-SOFT 导入MIB文件

    之前SNMP测试一直用的是IReasoning MIB browser,最近测试snmp V3,需要使用MG-SOFT MIB Browser.在导入之前使用的MIB文件时,发现跟IReasoning ...

  9. Android.mk文件语法规范及使用模板 (转载)

    2019独角兽企业重金招聘Python工程师标准>>> http://blogold.chinaunix.net/u3/99423/showart_2206760.html Andr ...

最新文章

  1. 文献阅读方法 如何阅读英文文献 - 施一公(转)
  2. Boost:返回报告错误report errors
  3. java 类似结构体_Java中如何实现类似C++结构体的二级排序
  4. Svn服务器的搭建与配置
  5. [css] 写出几个初始化CSS的样式,并解释说明为什么要这样写
  6. 9.思科交换路由基本命令操作
  7. mysql fsync_MySQL - InnoDB特性 - Buffer Pool漫谈
  8. 文件和目录属性ls which alias
  9. 孔浩javaScript原型的内存分析
  10. java课设心得体会2000字_java课程设计课心得体会
  11. 用91卫图助手获取研究区(勾画研究矢量shp格式范围等)
  12. 【信号与系统】Multisim 仿真信号合成与分解
  13. 怎么样简单的进行dwg转pdf格式
  14. 基于串口通信的摇杆控制器 ---- 摇杆数据的读取、通信协议、从设备解开数据包
  15. 思科交换机配置【串口初始配置】
  16. 公鸡5文钱一只,母鸡3文钱一只,小鸡3只一文钱, 用100文钱买一百只鸡,其中公鸡,母鸡,小鸡都必须要有,问公鸡,母鸡,小鸡要买多少只刚好凑足100文钱。
  17. 【阿里云高校计划】阿里云AI训练营_Day04_车辆检测系统
  18. P2757 [国家集训队]等差子序列
  19. DOO-SABIN 细分正方体(2)利用半边数据结构表示(一次和两次细分)
  20. 怎么把照片的四个角修成圆形?

热门文章

  1. 乖乖不得了,这款数字机器人竟然能够识别发票扫描信息!
  2. 【Java -- Map】
  3. 苏州源特国产隔离DC-DC电源芯片替代SN6505/SGM46000/MAX256/B0505-1W的方案
  4. Windows下QT设置应用程序(exe)图标、任务栏托盘图标、任务栏窗口图标
  5. 三星G9006W 6.0 root
  6. 蓝牙安全入门详解 超详细
  7. 云服务器和真实服务器,个人网站主机选择原则 看配置也要看是不是有助于优化...
  8. fpga的EPCS 配置的2种方法(图文讲解,哈哈,网上互相抄袭的一些文字说明太不明了了)
  9. HDU 4069 Squiggly Sudoku DLX 精确覆盖
  10. Btree 数据结构