2

我有一台发送snmpinform的客户端机器。在另一台机器上,我正在运行 snmptrapd 服务器。

我想明确提及上下文引擎 ID 和权威引擎 ID。

在发送命令时,我可以使用-e作为权威引擎 ID,使用-E作为上下文引擎 ID。

但是,问题是如何在 snmptrad.conf 中提及这些值

snmptrapd.conf 的片段是

createUser -e 0x000006D70000000000000000 FMS

authUser log,execute,net FMS noauth

engineID  000006D7C0A800C800000000

我对 snpinform 的命令是:

snmpinform -v 3 -d -n "" -l noAuthNoPriv -u FMS -E 0x000006D70000000000000000 -e 80001f8804303030303036443743304138303043383030303030303030 192.168.0.200 162 1.3.6.1.4.1.1751.2.119.1.1.1.0

输出是超时(错误消息来了)。对wireshark 的进一步调查显示,在报告中它提供了具有相同值的权威和上下文引擎ID。

我确实尝试了几种解决方法而没有任何用处

  1. 发送 snmpinform 时未提供 -e 选项。它确实发现了权威引擎 ID 并且输出仍然相同(错误消息和超时)

  2. 没有给 -E 选项。snpinform:未知用户名

    obv:这似乎是完全不同的行为。它能够正确解码上下文引擎 id 并能够识别用户名。但是,该报告具有不同的上下文引擎 ID。

  3. 创建用户时未提供 -e 选项,发送时仅提供 -e(权威引擎 ID)。然后它完美地工作了。

    obv:权威引擎 ID 和上下文引擎 ID 相同。所以,它工作得很好。

如果我想在 conf 文件中同时提及两个引擎 ID,该怎么办?

如何将 snmptrapd.conf 文件中的权威引擎 ID 作为十六进制数字提供?它需要文本字符串。如果我有不可打印的字符怎么办。

感谢您耐心阅读:-)

4

1 回答 1

0

我认为(安全)引擎 ID 的 -3e 和上下文引擎 ID 的 -3E 应该可以解决 snmptrapd.conf 的问题。我在 snmplib/snmpv3.c:150 的 net-snmp 源代码中找到了这些以供参考,不确定它们是否已记录在案。

我想这就是你要的吗?如果 snmptrapd 行为不正确,您可能需要使用 net-snmp 源代码并逐步完成。

于 2013-04-09T17:44:37.557 回答