SNMP的MIB文件的语法简述

转载 2015年11月18日 19:05:26
转自:http://blog.csdn.net/shanzhizi/article/details/15340305

MIB file的开始和结束

所有的MIB file的都以DEFINITIONS ::= BEGIN关键字开始,以END结束。我们所有添加的节点均应在此之间。

XXX-TEST-MIB DEFINITIONS ::= BEGIN

……

……

END

 

模块引用区域

MIB开始关键字后,即是模块引用区域,利用IMPORTS标识,所有的模块引用及群组的引用均使用FROM关键字说明其出处,引用使用分号(;)结束。

注:分号,英文全角分号。

在一个MIB file中,所有引用到的数据类型均应有引用。

如:

IMPORTS

enterprises

            FROM RFC1155-SMI

        Integer32

            FROM SNMPv2-SMI            

        DisplayString

            FROM SNMPv2-TC;

MIB核心部分(对象标识,标量节点,表格对象的定义)

对象标识

对象标识用关键字OBJECT IDENTIFIER声明,它的主要功能是用来将一类功能的对象结合起来。展开或折叠此对象标识即可展开或折叠此类功能的所有对象。

在ASN.1中,对象标识符类型描述对象的抽象信息,MIB树中的每一个标号是用对象标识符描述的。

例如:

  xxx OBJECT IDENTIFIER ::= {enterprises 22566}

 

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

其编译后的视图为:

 blog.csdn.net/shanzhizi

 


标量节点

在每一个树支下,可以定义被管理资源的管理对象,其中一类是标量节点(直观地看象树叶的节点)。利用OBJECT-TYPE定义。其定义的句法如下:

objectname OBJECT-TYPE

     SYNTAX (syntax)

     MAX-ACCESS (access)

     STATUS (status)

     DESCRIPTION (description)

     ::= { ( parent ) ( number )

 

关键字

说明

备注

objectname

被管理对象的名字

必须以小写字母开头

OBJECT-TYPE

每一个叶子对象所必须的关键字

 

syntax

被管理对象类型的关键字

Counter(计数)

Gauge(标准)

DisplayString(显示字符串)

Interger(整数)

TimeTicks(时间戳)

NetworkAddress(网络地址)

IpAddress(Ipv4地址)

access

该节点支持的访问方式

read-only(只读)

read-write(读写)

read-create(读和创建)

no-accessible(不可访问)

status

该节点的状态

current (当前的)

deprecated (反对的)

obsolete(废弃的)

description

对被管理对象的功能、特征等进行描述的关键字

 

例如:

Xxxx OBJECT-TYPE

SYNTAX DisplayString

MAX-ACCESS read-only

STATUS current

DESCRIPTION

"

"                  

::= { xxxx 1 }

表类型

表类型是一个特殊类型的声明,表内声明的对象称为列对象,表对象可以看作是一些标量对象的集合。利用SEQUENCESEQUENCE OF定义表格和表格中的行, 通常来说,表格对象的名字后面加有后缀Table,行对象的名字后面加有后缀Entry。

其声明如下:                          

     tablename OBJECT-TYPE

SYNTAX  SEQUENCE OF Entrytype            

MAX-ACCESS  not-accessible

STATUS  current

DESCRIPTION (description)

:: ={ (parent) (number)}

 

      entryname OBJECT-TYPE

SYNTAX  Entrytype

MAX-ACCESS not-accessible            

STATUS  current

DESCRIPTION  description

    INDEX { index list }

                   :: ={ (tablename) 1}

     

     (Entrytype)  :: =

SEQUENCE {

            (column1)   (column1type),

            (column2)   (column1type),

              ( columnN)    (columnNtype) }

 

关键字

说明

备注

tablename

表格名 

xxxxTable首字母小写

Entrytype

表对象名

XxxxEntry首字母大写

not-accessible

访问方式

此处必须是not-accessible

entryname

行名

XxxxEntry名相同,首字母小写xxxxEntry

description

描述信息

 

 

源码如下:

XXX-TEST-MIB DEFINITIONS ::= BEGIN

IMPORTS

enterprises

            FROM RFC1155-SMI

        Integer32

            FROM SNMPv2-SMI            

        DisplayString

            FROM SNMPv2-TC;

  

   xxx OBJECT IDENTIFIER ::= {enterprises 22566}

  

   zkClassInfoTable OBJECT IDENTIFIER ::= {xxx 1}  

   zkClassInfoTable2 OBJECT IDENTIFIER ::= {xxx 2}  

  

zkClassInfoTable OBJECT-TYPE 

SYNTAX   SEQUENCE OF ZkClassInfoEntry 

   MAX-ACCESS not-accessible

   STATUS  current

   DESCRIPTION 

   "

   This is test table.

   "

        ::= {xxx 1}

  

   zkClassInfoEntry OBJECT-TYPE 

   SYNTAX    ZkClassInfoEntry 

   MAX-ACCESS  not-accessible    

   STATUS  current

   DESCRIPTION

   "

   This is teat entry.

   "     

   INDEX  {zkClassInfoIndex}             

   ::= {zkClassInfoTable 1}   

  

ZkClassInfoEntry ::= SEQUENCE {

zkClassInfoIndex  Integer32,

    zkClassInfoSex Integer32,

    zkClassInfoAge Integer32,

    zkCLassInfoName  DisplayString,

    zkClassInfoAddress  DisplayString

}

zkClassInfoIndex OBJECT-TYPE 

SYNTAX  Integer32

MAX-ACCESS read-write

STATUS current

DESCRIPTION 

"

"

::= {zkClassInfoEntry 1}

zkClassInfoSex OBJECT-TYPE

SYNTAX  Integer32  {

              man(1),

              woman(2)

}

MAX-ACCESS read-write

STATUS current

DESCRIPTION 

"

"

::= {zkClassInfoEntry 2}   

zkClassInfoAge OBJECT-TYPE 

SYNTAX  Integer32

MAX-ACCESS read-write

STATUS current

DESCRIPTION 

"

"

::= {zkClassInfoEntry 3} 

zkCLassInfoName OBJECT-TYPE 

SYNTAX  DisplayString

MAX-ACCESS read-write

STATUS current

DESCRIPTION 

"

"

::= {zkClassInfoEntry 4}

zkClassInfoAddress OBJECT-TYPE 

SYNTAX  DisplayString

MAX-ACCESS read-write

STATUS current

DESCRIPTION 

"

"

::= {zkClassInfoEntry 5}   

zkClassInfoTable2 OBJECT-TYPE 

SYNTAX   SEQUENCE OF ZkClassInfoEntry2 

   MAX-ACCESS not-accessible

   STATUS  current

   DESCRIPTION 

   "

   This is test table.

   "

        ::= {xxx 2}

  

   zkClassInfoEntry2 OBJECT-TYPE 

   SYNTAX    ZkClassInfoEntry2 

   MAX-ACCESS  not-accessible    

   STATUS  current

   DESCRIPTION

   "

   This is teat entry.

   "     

   INDEX  {zkClassInfoIndex}             

   ::= {zkClassInfoTable2 1}   

  

ZkClassInfoEntry2 ::= SEQUENCE {

    zkClassInfoSex2 Integer32,

    zkClassInfoAge2 Integer32,

    zkCLassInfoName2  DisplayString,

    zkClassInfoAddress2  DisplayString

}

zkClassInfoSex2 OBJECT-TYPE 

SYNTAX  Integer32

MAX-ACCESS read-write

STATUS current

DESCRIPTION 

"

"

::= {zkClassInfoEntry2 1}

END

 

XXX-TEST_MIB DEFINITIONS ::= BEGIN

IMPORTS

enterprises

            FROM RFC1155-SMI

        Integer32

            FROM SNMPv2-SMI            

        DisplayString

            FROM SNMPv2-TC;

  

   xxx OBJECT IDENTIFIER ::= {enterprises 40256}

  

   zkClassInfoTable OBJECT IDENTIFIER ::= {xxx 1}  

   zkClassInfoTable2 OBJECT IDENTIFIER ::= {xxx 2}  

  

zkClassInfoTable OBJECT-TYPE 

SYNTAX   SEQUENCE OF ZkClassInfoEntry 

   MAX-ACCESS not-accessible

   STATUS  current

   DESCRIPTION 

   "

   This is test table.

   "

        ::= {xxx 1}

  

   zkClassInfoEntry OBJECT-TYPE 

   SYNTAX    ZkClassInfoEntry 

   MAX-ACCESS  not-accessible    

   STATUS  current

   DESCRIPTION

   "

   This is teat entry.

   "     

   INDEX  {zkClassInfoIndex}             

   ::= {zkClassInfoTable 1}   

  

ZkClassInfoEntry ::= SEQUENCE {

zkClassInfoIndex  Integer32,

    zkClassInfoSex Integer32,

    zkClassInfoAge Integer32,

    zkCLassInfoName  DisplayString,

    zkClassInfoAddress  DisplayString

}

zkClassInfoIndex OBJECT-TYPE 

SYNTAX  Integer32

MAX-ACCESS read-write

STATUS current

DESCRIPTION 

"

"

::= {zkClassInfoEntry 1}

zkClassInfoSex OBJECT-TYPE

SYNTAX  Integer32  {

              man(1),

              woman(2)

}

MAX-ACCESS read-write

STATUS current

DESCRIPTION 

"

"

::= {zkClassInfoEntry 2}   

zkClassInfoAge OBJECT-TYPE 

SYNTAX  Integer32

MAX-ACCESS read-write

STATUS current

DESCRIPTION 

"

"

::= {zkClassInfoEntry 3} 

zkCLassInfoName OBJECT-TYPE 

SYNTAX  DisplayString

MAX-ACCESS read-write

STATUS current

DESCRIPTION 

"

"

::= {zkClassInfoEntry 4}

zkClassInfoAddress OBJECT-TYPE 

SYNTAX  DisplayString

MAX-ACCESS read-write

STATUS current

DESCRIPTION 

"

"

::= {zkClassInfoEntry 5}   

zkClassInfoTable2 OBJECT-TYPE 

SYNTAX   SEQUENCE OF ZkClassInfoEntry2 

   MAX-ACCESS not-accessible

   STATUS  current

   DESCRIPTION 

   "

   This is test table.

   "

        ::= {xxx 2}

  

   zkClassInfoEntry2 OBJECT-TYPE 

   SYNTAX    ZkClassInfoEntry2 

   MAX-ACCESS  not-accessible    

   STATUS  current

   DESCRIPTION

   "

   This is teat entry.

   "     

   INDEX  {zkClassInfoIndex}             

   ::= {zkClassInfoTable2 1}   

  

ZkClassInfoEntry2 ::= SEQUENCE {

    zkClassInfoSex2 Integer32,

    zkClassInfoAge2 Integer32,

    zkCLassInfoName2  DisplayString,

    zkClassInfoAddress2  DisplayString

}

zkClassInfoSex2 OBJECT-TYPE 

SYNTAX  Integer32

MAX-ACCESS read-write

STATUS current

DESCRIPTION 

"

"

::= {zkClassInfoEntry2 1}

END


相关文章推荐

关于SNMP的MIB文件的语法简述

MIB file的开始和结束 所有的MIB file的都以DEFINITIONS ::= BEGIN关键字开始,以END结束。我们所有添加的节点均应在此之间。 XXX-TEST-MIB DEFIN...

SNMP的MIB文件的语法简述

DEFINITIONS ::= BEGIN SNMP始终使用ASN.1概念中的描述块(module)来组织ASN.1对象的,ASN.1的描述块是一些相关描述语句的集合,module的结构如下 mo...
  • sdlyjzh
  • sdlyjzh
  • 2017年03月29日 15:05
  • 460

SNMP中MIB语法解释

MIB file的开始和结束 所有的MIB file的都以DEFINITIONS ::= BEGIN关键字开始,以END结束。我们所有添加的节点均应在此之间。 XXX-TEST-MIB DEFIN...

SNMP协议的MIB文件的常见宏定义的描述

转载:http://blog.csdn.net/shanzhizi/article/details/15340391 对MIB文件中一些常见的宏定义的描述 1.DEFINITI...

snmp-mib文件设计

  • 2011年05月23日 23:09
  • 695KB
  • 下载

net-snmp扩展trap类型的私有mib

注:本文介绍的是静态编译的方法扩展的私有mib,别的方法请看本人整理的《net-snmp agent开发(用net-snmp扩展MIB库)》 1. 首先创建一个简单的含有table变...

SNMP MIB 文法分析--基于Scala Parser模块

1.为何要分析SNMP MIB文件。 分析MIB文件主要为了提取MIB文件中的oid定义及其对应的OID值,包含(OBJECT-IDENTIFIER 和OBJECT-TYPE等具有OID值的对象).2...

什么是 SNMP 和 MIB

SNMP(Simple Network Management Protocol)即简单网络管理协议,它为网络管理系统提供了底层网络管理的框架。SNMP协议的应用范围非常广泛,诸多种类的网络设备、软件和...

SNMP MIB中的含read-create节点的表的实现

mib中的含read-create节点表的实现
  • Ropai
  • Ropai
  • 2013年10月16日 16:55
  • 6422

net-snmp添加自定义MIB

管理信息库(MIB,Management Information Base)是TCP/IP网络管理协议标准框架的内容之一,MIB定义了受管设备必须保存的数据项、允许对每个数据项进行的操作及其含义,即管...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:SNMP的MIB文件的语法简述
举报原因:
原因补充:

(最多只允许输入30个字)