MIB结构和语法(共13页).doc

上传人:飞****2 文档编号:14164706 上传时间:2022-05-03 格式:DOC 页数:13 大小:69.50KB
返回 下载 相关 举报
MIB结构和语法(共13页).doc_第1页
第1页 / 共13页
MIB结构和语法(共13页).doc_第2页
第2页 / 共13页
点击查看更多>>
资源描述

《MIB结构和语法(共13页).doc》由会员分享,可在线阅读,更多相关《MIB结构和语法(共13页).doc(13页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、精选优质文档-倾情为你奉上1 MIB基础知识MIB(Management Information Base,管理信息库)是MO(Managed Object管理对象)定义的集合。MIB文件是按照ASN.1定义的文本文件。每个管理对象都对应一个节点,并且用OID(Object Identifier)来标识;数据管理对象对应叶子节点;所有的管理对象形成了一棵管理树。1.1 基本概念对象标识:对象标识是一种数据类型,它指明一种授权命名的对象。表示为一个整数序列,以点分隔。MIB树:表示对象标识的整数构成一个树型结构,类似于DNS和文件系统。对象标识从顶部开始,顶部没有标识,以root表示。所有的MI

2、B变量都从1.3.6.1.2.1这个标识开始。树上的每个节点还有文字名,例如:1.3.6.1.2.1就和iso.org.dod.internet.memt.mib对应。图1 管理信息库的对象命名举例1.2 MIB分类MIB依据数据的通用性可以分为:(1)标准MIB:rfc1213, rfc1471 , rfc1724, rfc2618等等 注: 通用性MIB rfc1213习惯称为MIB-II(2)自定义MIB:当标准MIB信息不足以描述厂商设备,需要自定义MIB,但首先要向IANA组织申请编号。1.3 MIB管理对象的基本属性管理对象的四个基本属性如下:(1)对象类型(Object Type

3、):定义了一个特定对象的名字,例如sysUpTime。这个名字只是一个标示符。MIB对象既可以用这个标示符来表示,也可以用相应的MIB号码来表示。例如定义internet OBJECT IDENTIFIER := iso org(3) dod(6) 1 那么既可以用internet也可以用字串 .1.3.6.1来表示这个对象。(2)语法(Syntax) :指定了数据类型,例如整数、8位组串数字(字符串;范围为0至255)、对象标识符(预先定义的数据类型别名)或NULL。NULL是留待的后使用的空位。(3)访问(Access):表明了这个特定对象的访问级别。合法的值有:只读、读写、只写和不可存取

4、。(4)状态(Status):定义了这个对象的实现需要:必备的(被管理节点必须实现该对象);可选的(被管理对象可能实现该对象):或者已废弃的(被管理设备不需要再实现该对象)1.4 MIB两种对象类型(1)标量(Type-Specific Objects):sysDescr OBJECT-TYPE SYNTAX DisplayString (SIZE(0.255):= system 1OID: mib-2.system.1.0(2)表量(Columnar Objects):OID:mib-2.interface.ifTable.ifEntry.ifDescr.2mib-2.interface.i

5、fTable.ifEntry.ifDescr.6mib-2.interface.ifTable.ifEntry.ifType.2mib-2.interface.ifTable.ifEntry.ifType.62 自定义MIB 自定义MIB包含的内容有:模块级别信息、对象定义(OBJECT TYPE,包括标量对象和表对象)、陷阱定义(TRAP TYPE)。第1行是MIB开始第2-7行引入外部定义第8-13行是模块信息定义第19-28行是MO定义第30-36行是TRAP定义第37行是MIB结束2.1 常用对象类型v1中的(1)简单类型:Integer、Octet String、Object Ide

6、ntifier、Null(2)应用类型:IpAddress、Counter、Gauge、TimeTicks、Opaquev2中的(1)简单类型:Integer32、OctetString、Object Identifier、Null(2)应用类型:IpAddress、Counter32、Counter64、Gauge32、Unsigned32、TimeTicks、Opaque、BIT STRING2.2 自定义MIB基本原则(1)优先采用标准MIB:如果确实无法满足要求才考虑自定义MIB(2)采用最新的SNMPV2SMI来定义MIB:使用最新的SNMPv2定义MIB可以使得对MIB的描述更详尽

7、,可用的类型也更丰富。(3)层次清晰,定义时顺序合理 先定义根节点。 在定义对象前,如有自定义类型,应当先书写自定义类型的定义。 先定义标量对象,再表量对象。(4)符合惯例,以标准MIB为参考3理解和掌握ASN.1句法3.1 对象标识符 类型(OBJECT IDENTIFIER)在ASN.1中,对象标识符 类型 描述对象的抽象信息,MIB树中的每一个标号是用对象标识符描述的。由于树的各个分支是用数值表示的,所以实际上对象标识符是一个整数数值的序列。它用OBJECT IDENTIFIER来声明,如:myBranch OBJECT IDENTIFIER := parentBranch 10 其中m

8、yBranch是一个子树支,它定义在parentBranch树支下,“10”是子树myBranch在父树支parentBranch下的一个唯一对象标识符,即通常所说的OID。在parentBranch树支下,可以定义多个子树支,但子树支的名字和数字(如上的10)不能重复,即必须是唯一的。3.2 标量(叶子)对象标识符简单变量在一个树支下,读者可以定义多个子树,也可以定义被管理资源的管理对象,其定义的句法如下:(objectname) OBJECT-TYPESYNTAX (syntax)ACCESS (access)STATUS (status)DESCRIPTION (description)

9、:= (parent) (number举例) sysContact OBJECT-TYPE SYNTAX DisplayString (SIZE (0.255) ACCESS read-write STATUS mandatory DESCRIPTION The textual identification of the contact person for this managed node, together with information on how to contact this person. := system 4 以上的各部分解释如下:(1)(objectname). 这是被

10、对象的名字,ASN.1句法要求所有对象的名字必须以小写字母开头,而且该名字在MIB中必须是唯一的。(2)OBJECT-TYPE.这是一个每一个叶子对象的所必须的关键字。(3)SYNTAX.被管对象类型的关键字,说明随后跟着的是一个类型。(4)(syntax).被管对象的类型,ASN.1句法要求所有的对象类型必须以大写字母开头,其中已预定义了的类型有Counter、Gauge、DisplayString、INTEGER等等,请参阅“3.对象语法定义”及“5.ASN.1的派生类型”。(5)ACCESS.被管对象的访问方式的关键字。在SNMP第二版中为MAX-ACCESS关键字。(6)(access

11、).被管对象的访问方式,可为如下列举值中之一:read-only、read-write、 no-accessible,SNMP第2版中又新增了read-create。(7)STATUS.被管对象的状态的关键字。(8)(status).可取的值为:mandatory 、optional、obsolete、deprecate(SNMP第1版中),current、obsolete、deprecate(SNMP第2版)。其中:mandatory为该对象的状态是必备的optional为该对象的状态是可选的obsolete为该对象的状态是不再使用deprecate使用该值使得MIB的某些部分标记为过时,被

12、标记为“废弃”的对象将从现行版本中删除,并在新的MIB版本中标记为“过时”。current为该对象的状态是当前可用的。(7)DESCRIPTION.对被管对象的功能、特征等等进行描述的关键字。(8)(description).被管对象的文本描述。须用双引号把其文本说明括起来,有时由于用MIB编译器编译结果太大时,可以把文本说明删除,即只保留一个空的双引号。(9)(parent).包含此叶子对象的树支,即叶子对象的父亲必须是用“OBJECT IDENTIFIER”声明。(10)(number).在此父树支下的第几个叶子对象,这个数字在此父树支下必须是唯一的。一般number都是从取1开始的。例如

13、:“:= myObject 22 ”,则在myObject树支下22必须是唯一的,否则在用MIB编译器(如pSOS所提供的MIB编译器)进行编译时会提示有错。除此之外,还有一些关键字:UNITS、INDEX、REFERENCE、DEFVAL等等,分别代表被管对象的单位、索引、参考、缺省值。这些关键字都并不是很重要,有兴趣的读者可参阅RFC1155的说明。值得注意的是INDEX关键字在表对象定义中必须存在的,否则表内的对象不能使用。3.3 表类型 SNMP表是一个特殊类型的声明,表内声明的对象称为列对象,声明如下: (tablename)OBJECT-TYPESYNTAXSEQUENCEOF(t

14、abletype)ACCESSnot-accessibleSTATUSmandatory DESCRIPTION(description):=(parent)(number) (entryname)OBJECT-TYPE SYNTAX(tabletype)ACCESSnot-accessibleSTATUSmandatory DESCRIPTION(description):=(tablename)1 (tabletype):=SEQUENCE (column1)(column1type),(column2)(column2type),(columnN)(columnNtype) 读者也许注意

15、到(tablename)和(entryname)中的ACCESS为not-accessible,这是因为表和行对象没有叶子对象,因此不能被SNMP访问。ASN.1句法中关于定义一个表的规则如下: (1)在表名(tablename)的命名中,必须要有一个“Table”关键字,例如定义一 个表对象“myTable” (2)同样,在表对象下面的表目(entryname)也须有一个“Entry”关键字,例如 “myEntry”。 (3)(column1)是表的列对象,(column1type)是此列对象的类型为了加深理解,举个子如下:myTableOBJECT-TYPESYNTAXSEQUENCEOF

16、MyEntryACCESSnot-accessibleSTATUSmandatoryDESCRIPTION这是一个表名为myTable的表对象.:=myParent1myEntryOBJECT-TYPESYNTAXMyEntryACCESSnot-accessibleSTATUSmandatoryDESCRIPTION这是一个表的表目,其中INDEX关键字必须存在,它的索引值为列对象中的第一个对象INDEXmyIndex:=myTable1MyEntry:=SEQUENCEmyIndexINTEGER,myColumn1INTEGER,myColumn2OCTETSTRING, 上表中有三个列

17、对象myIndex、myColumn1、myColumn2源码如下用ifTable:XXX-TEST-MIB DEFINITIONS := BEGINIMPORTSenterprises 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 z

18、kClassInfoTable OBJECT-TYPE SYNTAX SEQUENCE OF ZkClassInfoEntry MAX-ACCESSnot-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 := zkC

19、lassInfoTable 1 ZkClassInfoEntry := SEQUENCE zkClassInfoIndex Integer32, zkClassInfoSexInteger32, zkClassInfoAgeInteger32, zkCLassInfoName DisplayString, zkClassInfoAddress DisplayStringzkClassInfoIndex OBJECT-TYPE SYNTAX Integer32MAX-ACCESSread-writeSTATUScurrentDESCRIPTION := zkClassInfoEntry 1zkC

20、lassInfoSex OBJECT-TYPESYNTAX Integer32 man(1), woman(2)MAX-ACCESSread-writeSTATUScurrentDESCRIPTION := zkClassInfoEntry 2 zkClassInfoAge OBJECT-TYPE SYNTAX Integer32MAX-ACCESSread-writeSTATUScurrentDESCRIPTION := zkClassInfoEntry 3 zkCLassInfoName OBJECT-TYPE SYNTAX DisplayStringMAX-ACCESSread-writ

21、eSTATUScurrentDESCRIPTION := zkClassInfoEntry 4zkClassInfoAddress OBJECT-TYPE SYNTAX DisplayStringMAX-ACCESSread-writeSTATUScurrentDESCRIPTION := zkClassInfoEntry 5 zkClassInfoTable2 OBJECT-TYPE SYNTAX SEQUENCE OF ZkClassInfoEntry2 MAX-ACCESSnot-accessible STATUS current DESCRIPTION This is test tab

22、le. := xxx 2 zkClassInfoEntry2 OBJECT-TYPE SYNTAX ZkClassInfoEntry2 MAX-ACCESS not-accessible STATUS current DESCRIPTION This is teat entry. INDEX zkClassInfoIndex := zkClassInfoTable2 1 ZkClassInfoEntry2 := SEQUENCE zkClassInfoSex2Integer32, zkClassInfoAge2Integer32, zkCLassInfoName2 DisplayString,

23、 zkClassInfoAddress2 DisplayStringzkClassInfoSex2 OBJECT-TYPE SYNTAX Integer32MAX-ACCESSread-writeSTATUScurrentDESCRIPTION := zkClassInfoEntry2 1ENDXXX-TEST_MIB DEFINITIONS := BEGINIMPORTSenterprises FROM RFC1155-SMI Integer32 FROM SNMPv2-SMI DisplayString FROM SNMPv2-TC; xxx OBJECT IDENTIFIER := en

24、terprises 40256 zkClassInfoTable OBJECT IDENTIFIER := xxx 1 zkClassInfoTable2 OBJECT IDENTIFIER := xxx 2 zkClassInfoTable OBJECT-TYPE SYNTAX SEQUENCE OF ZkClassInfoEntry MAX-ACCESSnot-accessible STATUS current DESCRIPTION This is test table. := xxx 1 zkClassInfoEntry OBJECT-TYPE SYNTAX ZkClassInfoEn

25、try MAX-ACCESS not-accessible STATUS current DESCRIPTION This is teat entry. INDEX zkClassInfoIndex := zkClassInfoTable 1 ZkClassInfoEntry := SEQUENCE zkClassInfoIndex Integer32, zkClassInfoSexInteger32, zkClassInfoAgeInteger32, zkCLassInfoName DisplayString, zkClassInfoAddress DisplayStringzkClassI

26、nfoIndex OBJECT-TYPE SYNTAX Integer32MAX-ACCESSread-writeSTATUScurrentDESCRIPTION := zkClassInfoEntry 1zkClassInfoSex OBJECT-TYPESYNTAX Integer32 man(1), woman(2)MAX-ACCESSread-writeSTATUScurrentDESCRIPTION := zkClassInfoEntry 2 zkClassInfoAge OBJECT-TYPE SYNTAX Integer32MAX-ACCESSread-writeSTATUScu

27、rrentDESCRIPTION := zkClassInfoEntry 3 zkCLassInfoName OBJECT-TYPE SYNTAX DisplayStringMAX-ACCESSread-writeSTATUScurrentDESCRIPTION := zkClassInfoEntry 4zkClassInfoAddress OBJECT-TYPE SYNTAX DisplayStringMAX-ACCESSread-writeSTATUScurrentDESCRIPTION := zkClassInfoEntry 5 zkClassInfoTable2 OBJECT-TYPE

28、 SYNTAX SEQUENCE OF ZkClassInfoEntry2 MAX-ACCESSnot-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 zkClassInfoSex2Integer32, zkClassInfoAge2Integer32, zkCLassInfoName2 DisplayString, zkClassInfoAddress2 DisplayStringzkClassInfoSex2 OBJECT-TYPE SYNTAX Integer32MAX-ACCESSread-writeSTATUScurrentDESCRIPTION := zkClassInfoEntry2 1END专心-专注-专业

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁