Cisco IOS OID在不同型号设备之间使用SNMP查询数据的稳定性如何?
我正在使用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)在启动时都会加载MIBS,此后,每次我们要求从名称到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. "