【问题标题】:snmp value range constraint not implemented while doing snmp walk进行 snmp walk 时未实现 snmp 值范围约束
【发布时间】:2020-12-10 07:14:37
【问题描述】:

我已经为主机资源 MIB 执行了 SNMP walk。

更多关于Host Resource 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 规则。

【问题讨论】:

  • snmpwalk 可能不会费心去验证 SNMP 代理返回的值。无论如何,“不正确”的结果是由您测试的 SNMP 代理给出的,而不是 snmpwalk 本身。
  • @LexLi 不是 netsnmp 支持的 snmp walk,当我通过那里的文档时,有 Integer32 的约束值,如 RFC 中所述,由于这个原因,我在 pysnmp 中有约束值错误,我不是很确定如何继续 问题与google.com/… 类似,您对此有何评论
  • 您应该决定是否验证该值。如果您确实想验证这一点,那么您必须做的不仅仅是一个 SNMP WALK 操作(这是一堆 GET NEXT 或 GET BULK 操作),还需要一个 MIB 文档解析器来加载所有必要的文档并提取约束。这就是为什么pysnmp 报告错误(在它验证时)而其他一些工具不会。

标签: integer snmp rfc pysnmp


【解决方案1】:

正确的答案是取决于您使用的 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
                                                                  

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-02
    相关资源
    最近更新 更多