【发布时间】: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报告错误(在它验证时)而其他一些工具不会。