IP : 简单网络管理协议 (SNMP)

MIB 编译器和加载 MIB

2016 年 10 月 27 日 - 机器翻译
其他版本: PDFpdf | 英语 (2015 年 8 月 22 日) | 反馈


目录


简介

多数网络管理系统(NMS)为用户提供一个方式装载MIB。装载MIB是NMS能得知新的MIB对象,例如他们的名称、对象标识符的方法(OIDs)例如和这数据类型(计数器)。

MIB也许解析,当装载时,例如,或也许发生以后,当NMS应用程序运行时。执行解析的软件是MIB编译器。

其中任一语法上地应该由所有供应商的MIB编译器成功分析正确MIB。不幸地,不同的MIB编译器可能陈列不同的突变。

思科做连续努力保证MIB发布对客户语法上地正确。思科也避免证明有问题的在普遍的NMS产品的MIB构建。尽管这些努力,满足总计的突变MIB编译器在字段是不可能的。

本文讨论某些常见问题并且建议应急方案。如果遇到与您的供应商的MIB编译器的这些问题中的任一(除RFC 14xx外与RFC 19xx问题),归结于在该MIB编译器的缺乏。您可以希望敦促您的供应商或供应商修理他们的编译器。

先决条件

要求

本文读者应该熟悉MIB。

使用的组件

本文档不限于特定的软件和硬件版本。

本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您使用的是真实网络,请确保您已经了解所有命令的潜在影响。

规则

有关文档规则的详细信息,请参阅 Cisco 技术提示规则

装载问题的普通的MIB

加载顺序

当您装载MIB时,加载顺序是最重要和常见问题。许多MIB使用在其他MIB定义的定义。这些定义在MIB的顶部的附近导入条款列出。

例如,如果MIB嘟囔导入从MIB的一个定义请弄糟,一些MIB编译器要求您装载MIB在装载MIB嘟囔之前弄糟。如果获得负载顺序错误,编译器声称已导入MIB取消定义。

这是许多其他MIB导入和命令您应该装载他们的列表MIB。这很可能照料负载顺序问题的95百分比(其他MIB能按任何顺序最装载) :

  • SNMPv2-SMI.my

  • SNMPv2-TC.my

  • SNMPv2-MIB.my

  • RFC1213-MIB.my

  • IF-MIB.my

  • CISCO-SMI.my

  • CISCO-PRODUCTS-MIB.my

  • CISCO-TC.my

注意: 如果装载这些MIB v1版本, MIB文件名实际上将看起来象IF-MIB-V1SMI.my (“-V1SMI”被添加到从v2转换到v1) MIB的名称。对此的例外是RFC1213-MIB.my MIB,即只存在作为v1版本(没有RFC1213-MIB-V1SMI.my)。

如果尝试装载另一个MIB,并且,如果编译器抱怨未确定项目,然后请识别从哪MIB此MIB导入并且验证您首先装载所有其他MIB。

注意: 对于每个MIB,您能看到需要在它之前装载MIB的确切的列表—与确切的编译顺序—在SNMP目标导航>视图&下载MIB;选择视图MIB从属关系并且下载MIB

数据类型定义不匹配

虽然Cisco MIB数据类型定义不会不匹配,您可以查找那是一些标准RFC MIB的论点。例如:

  • MIB嘟囔定义了:SomeDatatype : := INTEGER(0..100)

  • MIB弄糟定义了:SomeDatatype : := INTEGER(1..50)

此示例认为一般错误,并且MIB成功负载与警告消息。

下一个示例认为一个重要错误(即使两个定义根本是等同的),并且MIB没有成功分析。

  • MIB嘟囔定义了:SomeDatatype : := DisplayString

  • MIB弄糟定义了:SomeDatatype : :=八位组字符串(SIZE(0..255))

如果您的MIB编译器对待这些作为错误,或者,如果希望摆脱警告消息,然后请编辑定义了此同样数据类型的其中一MIB,以便定义配比。

对象标识符重定义

您可以遇到OID重新定义,如果装载这些MIB (虽然可能有此错误出现)的其他实例:

例如:

  • OLD-CISCO-CPU-MIB.my定义了:lcpuOBJECT标识符: := {local 1}

  • OLD-CISCO-ENV-MIB.my定义了:lenvOBJECT标识符: := {local 1}

当您装载这两MIB时, MIB编译器可能抱怨被重新解释与新名字lenv的lcpu对象标识符。OLD-CISCO-MEMORY-MIB.my和OLD-CISCO-SYSTEM-MIB.my类似给予新名字对{local 1}

一般错误和MIB成功负载与警告消息,这对待。

如果MIB不成功负载,或者,如果希望摆脱警告消息,然后请编辑其中一MIB,以便所有MIB使用同一名称。

内置数据类型的定义

许多MIB编译器有一些数据类型内置的知识,例如DisplayString。其中一些编译器抱怨他们是否为在MIB的这些数据类型看到定义。例如, DisplayString在SNMPv2-TC定义。

应急方案是删除或评论在MIB文件的触犯的定义。

备选大小

这是一句法上有效的示例,表明值类型MyDatatype将是0个, 5个或者20个八位字节:

MyDatatype ::= OCTET STRING (SIZE(0 | 5 | 20))

一些MIB编译器不接受此语法。通常,一满足的应急方案是选择其中一个大小和删除其他。您应该保持最大的大小。例如,前一个示例将更改对此:

MyDatatype ::= OCTET STRING (SIZE(20))

奇怪的对象标识符

某OIDs被认为不适当,因为他们不参考在SMI的一个节点(类似多数对象标识符)。然而,他们是句法上有效的。一普通的示例是空对象标识符,例如, {0 0}。一些MIB编译器不喜欢不对应于在SMI的一个节点的对象标识符。这些是可能引起这些编译器的问题MIB语法的示例:

zeroDotZero OBJECT IDENTIFIER ::= { 0 0 }
myMIBObject OBJECT-TYPE
DEFVAL { {0 0} }

应急方案是删除或评论参考的那些类型在MIB文件的。

陷阱定义

在SNMPv1 MIB,陷阱定义与TRAP-TYPE宏。使用通知类型宏,在SNMPv2 MIB,陷阱定义。

一些MIB编译器不喜欢在他们解析的MIB文件的这些定义(他们不支持这些宏指令)。

如果这是实际情形,您能删除陷阱定义或评论定义(例如,请放置MIB注释定界符--在线路初)。

RFC 14xx基于编译器与RFC 19xx根据编译器

RFCs 1442通过1452定义了基于party的SNMPv2。这些RFC是已废弃的由更新的草案标准RFCs 1902通过1908年。

关于MIB语法,有SNMPv2之间这两个版本的差异;然而有一些。Cisco MIB根据RFC 19xx规则当前。

注意: 几年前,当思科MIB是基于14xx的RFC,一些RFC基于19xx的编译器会抱怨Unsigned32 : :=在CISCO-TC.my和PNNI-MIB.my MIB的文本规则线路。这是因为Unsigned32是在RFC 19xx的一个预定义的数据类型。为此,思科曾经有这些MIB异本(CISCO-TC-NO-U32.my和PNNI-MIB-NO-U32.my)没有Unsigned32的定义,装载在已经知道关于此数据类型的编译器。这不再是可适用的。

装载的和编译的MIB到第三方NMS里

最佳和多数有效的方法装载思科MIB、陷阱和图标到第三方NMS是使用CiscoWorks综合化程序(综合化程序),是可用的作为从http://www.cisco.com/cgi-bin/tablebuild.pl/cw2000-utility)的CiscoWorks Common Services (或独立一部分,用从http://www.cisco.com/tacpage/sw-center/cw2000/cmc3rd.shtml和最新的网络管理综合化数据套件(NMIDB)的对应的综合化程序适配器。欲了解更详细的信息检查综合化程序文档。

或者,您能参考第三方NMS的文档在MIB装载和编译的。本文包括HP OpenView和IBM的NetView说明;因为产品可能更改,但是您应该仍然参考HP或IBM文档。

从HP OpenView或IBM NetView GUI

遵从这些步骤装载您想要的思科MIB :

  1. 复制文件到网络管理站的目录/usr/OV/snmp_mibs。

    这是HP OpenView和IBM NetView寻找MIB文档的默认目录。如果在别处放置他们,请指定在loadmib图形界面的明确路径路径名字。

  2. 设置权限,以便您访问读访问MIB。

  3. 从GUI菜单,请选择选项>装载/卸掉的MIB

  4. 遵从在平台文档的说明,编译或装载思科MIB。

从HP OpenView或IBM NetView命令行界面

发出/opt/OV/bin/xnmloadmib -请装载filename命令,装载MIB文件。


相关信息


Document ID: 26015