Cisco IOS OID在不同型号设备之间使用SNMP查询数据的稳定性如何?

时间:2020-03-05 18:54:16  来源:igfitidea点击:

我正在使用SNMP从Cisco交换机查询大量信息。例如,我通过在.1.3.6.1.4.1.9.9.23上执行snmpwalk来获取使用CDP检测到的邻居的信息

我可以在不同的Cisco型号上使用此OID吗?我应该注意哪些陷阱?对我来说,使用数字OID有点不安,似乎我应该使用MIB数据库或者其他东西并使用命名的OID,以获得跨设备兼容性,但也许我只是在想那。

解决方案

回答

这是非常一致的。

监视工具取决于一致性,Cicso生成的MIB很少更改旧值,通常仅实现新值。

签出Cisco OID查找工具。

请注意,它不会问我们要查找的产品是什么。

-兆瓦

回答

一旦发布了MIB,它将不会移至新的OID。这样做会破坏网络管理工具并引起支持人员的电话,这是没人想要的。为了继续示例,CDP MIB已在思科的SNMP Object Navigator中发布。

为了使代码更整洁,最好在一个中央位置定义OID,尤其是因为我们不想为需要访问的每个表都复制完整的OID。

我们最需要注意的地方是思科最近收购的产品中的独特MIB。如果没有其他将OID移到自己的企业OID空间的方法,则OID会发生变化,但是MIB也可能会发生变化,以符合Cisco的SNMP惯例。

回答

  • 我会避免输入数字OID,而是使用" OID名称",而将(转换)的辛苦工作留给我们使用的SNMP API。

如果不可能,则可以使用OID,因为OID不应根据SNMP MIB准则进行更改。除非设备本身发生更改,否则无论如何都需要新的MIB,且该MIB不能重用旧的OID。

  • 这很明显,但是一定要查看SNMP MIB变量的属性。确保不要查询状态为"过时"的变量。

周杰伦

回答

在某些情况下,由于需要读取和解析MIB文件以获取下层库所需的OID的数字表示形式,因此使用名称代替数字表示形式可能会严重损害性能。

例如,假设我们使用程序每分钟收集一些东西,然后一遍又一遍地加载MIB​​效率很低。

正如其他人所说的那样,数字映射的名称一旦发布就永远不会改变,因此将内容硬编码到程序中的事实并不是真正的问题。

如果我们有权使用命令行SNMP工具,请查看" snmptranslate"以获得一个不错的工具,以从文本到数字OID往返。

回答

我认为这是一个常见的误解(每次解析名称时都会重新加载MIB​​)。

大多数SNMP API(例如AdventNet,CMU)在启动时都会加载MIB​​S,此后,每次我们要求从名称到oid的"转换",反之亦然,则没有加载MIB​​的"开销"。而且,其中一些缓存结果,此时,名称查找与直接编码OID之间没有区别。

这有点类似于指定" IP地址"而不是"主机名"。

回答

OID可能会随硬件而变化,但同一硬件的固件版本也会随时间而变化,因为随着时间的流逝,管理功能的体系结构可能会更改并需要新的MIB。值得检查我们打算使用的任何OID是否在已弃用的MIB中,或者在应用程序的生命周期中变得如此,因为这不仅表明MIB有一天可能不受支持,而且可能会得到改善,更丰富的数据或者对数据的访问。在广泛部署之前,作为固件更新常规测试的一部分,对升级的样本设备测试管理应用程序也是一种很好的做法。

一个由于MIB被弃用而导致的OID更改的示例是在

http://www.cisco.com/en/US/tech/tk648/tk362/technologies_configuration_example09186a0080094aa6.shtml

"This document shows how to copy a
  configuration file to and from a Cisco
  device with the CISCO-CONFIG-COPY-MIB.
  If you start from Cisco IOS? software
  release 12.0, or on some devices as
  early as release 11.2P, Cisco has
  implemented a new means of Simple
  Network Management Protocol (SNMP)
  configuration management with the new
  CISCO-CONFIG-COPY-MIB. This MIB
  replaces the deprecated configuration
  section of the OLD-CISCO-SYSTEM-MIB. "