首页 > 解决方案 > 进行 snmp walk 时未实现 snmp 值范围约束

问题描述

我已经为 Host Resources MIB 执行了 SNMP walk。

有关主机资源 MIB 的更多了解,请参阅此

https://www.netscantools.com/snmp-host-resources-mib-analysis.html

snmp walk 是使用命令完成的

snmpwalk -v 2c -c <community_string> <ip_address> 1.3.6.1.2.1.25.2.3

这里 hrStorageRam 的值

HOST-RESOURCES-MIB::hrStorageType.1 = OID: HOST-RESOURCES-TYPES::hrStorageRam

给出尺寸值

HOST-RESOURCES-MIB::hrStorageSize.1 = INTEGER: 2677943624 分配单元为 1024 字节

在浏览此 MIB 的 RFC 页面时https://www.rfc-editor.org/rfc/rfc2790

我们可以看到 hrStorageType 是 Intger32 类型,并且有 -2147483648 到 2147483647 范围的约束

但是为什么 SNMP walk 给出的结果比这个约束更多。

想要验证 SNMP walk 是否遵循这个 RFC2790 规则。

标签: integersnmprfcpysnmp

解决方案


正确的答案是它取决于您使用的 SNMPWALK 和版本。到处都是虫子。

首先,代理应该返回正确的值。所以如果没有,那就是一个错误。

但是,即使不是这样,因为在 SNMP 中设备应该是“简单”设备,管理应用程序应该是“智能”设备,并正确处理它。

无论如何,我用 MIMIC Simulator 和 NET-SNMP 版本花了 5 分钟来测试它

% snmpwalk -V
NET-SNMP version: 5.8

并且它的行为正确(例如,使用您的确切值):

% snmpwalk -v2c -c public 10.0.0.8 .1.3.6.1.2.1.25.2.3.1.5
HOST-RESOURCES-MIB::hrStorageSize.1 = INTEGER: 0
HOST-RESOURCES-MIB::hrStorageSize.2 = INTEGER: 1150404
HOST-RESOURCES-MIB::hrStorageSize.3 = INTEGER: -1617023672
HOST-RESOURCES-MIB::hrStorageSize.4 = INTEGER: 7483
                                                                  

推荐阅读