未找到 SNMPWalk 模块

未找到 SNMPWalk 模块

我目前正在尝试在 SNMPWalk 上获取扩展输出。

我已经安装了 snmp-mibs 下载程序并一直在运行 download-mibs。

我正在使用以下命令:

snmpwalk -v2c -c public [ip] -m NET-SNMP-EXTEND-MIB::nsExtendObjects

并得到以下错误:

MIB search path:
/usr/share/snmp/mibs:/usr/share/snmp/mibs/iana:/usr/share/snmp/mibs/ietf:/var/lib/mibs:/var/lib/mibs/ietf:/var/lib/mibs/iana
Cannot find module (nsExtendObjects): At line 1 in (none)

我可以确认我的模块位于正确的位置,正如我手动验证的那样。

我尝试使用 -M 来指定模块的位置。

我使用NET-SNMP版本:5.9

发生错误后,我得到的输出与未使用扩展模式时相同。

我还可以确认应该有不同的输出,因为使用相同配置的另一台机器能够获得扩展输出。 “public”字符串是正确的。

感谢您的任何帮助 :)

答案1

-m选项采用一个参数:以冒号分隔的列表MIB 模块名称,而不是各个 MIB 对象的名称。

结果,-m NET-SNMP-EXTEND-MIB::nsExtendObjects被解析为三个 MIB 模块名称:

  • NET-SNMP-EXTEND-MIB这是有效的 MIB 模块名称
  • <null>这显然被忽略了
  • nsExtendObjects它实际上是 NET-SNMP-EXTEND-MIB 模块中 MIB 对象的名称。

指定开始遍历的 OID 实际上是可选的snmpwalk:如果未指定,它将默认为 SNMPv2-SMI::mib-2,这就是为什么您没有收到有关错误语法的错误消息的原因。相反,该命令尝试查找名为的 MIB 模块nsExtendObjects,但显然没有找到。

如果您出于某种原因想继续使用该-m选项,正确的语法是:

snmpwalk -v2c -c public [ip] -m NET-SNMP-EXTEND-MIB NET-SNMP-EXTEND-MIB::nsExtendObjects

换句话说,第一个NET-SNMP-EXTEND-MIB是选项的参数-m,第二个是您希望开始行走的 OID 的一部分。

但在这种情况下,您可能可以完全省略该-m选项:

snmpwalk -v2c -c public [ip] NET-SNMP-EXTEND-MIB::nsExtendObjects

这两种形式应该产生相同的结果。

如果download-mibs已成功完成,您/usr/share/snmp/mibs/NET-SNMP-EXTEND-MIB.txt的系统上应该有一个名为的文件。

$ sha256sum /usr/share/snmp/mibs/NET-SNMP-EXTEND-MIB.txt
ad05abc5ec39107a140d46e4e62e3fc0cf38eb26c1abe634fd7e9a7c7715e64e  /usr/share/snmp/mibs/NET-SNMP-EXTEND-MIB.txt

相关内容