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

StackOverflow https://stackoverflow.com/questions/65809

  •  09-06-2019
  •  | 
  •  

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

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

有帮助吗?

解决方案

MIB 一旦发布,就不会转移到新的 OID。这样做会破坏网络管理工具并引发支持电话,这是没人愿意的。为了继续您的示例,CDP MIB 已发布在 Cisco SNMP 对象导航器。

为了保证一般代码的整洁,最好在一个中心位置定义 OID,特别是因为您不想为需要访问的每个表复制完整的 OID。

最需要注意的地方是Cisco最近收购的产品中的一个独特的MIB。如果没有其他措施将 OID 移至自己的企业 OID 空间,OID 将会发生变化,但 MIB 也可能会发生变化以符合 Cisco 的 SNMP 实践。

其他提示

这是非常一致的。

监控工具依赖于一致性,Cicso 生成的 MIB 很少更改旧值,通常只实施新值。

看看思科 OID查找工具.

请注意,它不会询问您查找的产品是什么。

-MW

OID 可能随硬件的不同而变化,也可能随同一硬件的固件版本的变化而变化,因为随着时间的推移,管理功能的架构可能会发生变化并需要新的 MIB。值得检查一下您打算使用的任何 OID 是否位于已弃用的 MIB 中,或者在应用程序的生命周期中是否已弃用,因为这不仅表明该 MIB 有一天可能不受支持,而且还可能会得到改进、更丰富的数据或访问数据。在广泛部署之前,作为固件更新例行测试的一部分,针对示例升级设备测试管理应用程序也是一种很好的做法。

由于 MIB 被弃用而导致 OID 更改的示例位于

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

“本文档显示了如何使用Cisco-Config-Copy-Mib将配置文件复制到Cisco设备。如果您从CiscoIos®软件版本12.0或最早在发行版11.2p上开始在某些设备上,Cisco已使用新的Cisco-Config-Copy-Mib实现了简单网络管理协议(SNMP)配置管理的新方法。该MIB取代了旧的Cisco-System-MIB的弃用配置部分。”

  • 我会避免输入数字 OID,而是使用“OID 名称”,并将繁重的(翻译)工作留给您正在使用的任何 SNMP API。

如果不可能,则可以使用 OID,因为根据 SNMP MIB 准则,它们不应更改。除非设备本身发生变化,但无论如何都需要新的 MIB,而新的 MIB 不能重用旧的 OID。

  • 这是显而易见的,但一定要查看 SNMP MIB 变量的属性。确保不要查询状态为“过时”的变量。

杰..

在某些情况下,使用名称而不是数字表示可能会严重影响性能,因为需要读取和解析 MIB 文件以获得较低级别库所需的 OID 的数字表示。

例如,假设您使用程序每分钟收集一些内容,那么一遍又一遍地加载 MIB 的效率非常低。

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

如果您有权访问命令行 SNMP 工具,请查看“snmp翻译' 这是一个从文本到数字 OID 来回切换的好工具。

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

大多数 SNMP API(例如 AdventNet、CMU)在启动时加载 MIBS,此后每次您要求从名称到 oid 的“翻译”时都不会加载 MIB 的“开销”,反之亦然。更重要的是,其中一些会缓存结果,此时,名称查找和直接编码 OID 之间没有区别。

这有点类似于指定“IP 地址”与“主机名”。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top