0

我正在为 net-snmp 开发共享库和子代理。我需要针对特定​​硬件事件发送 v3 陷阱。我想知道 send_v3trap API 的上下文值需要填写什么值。

void send_v3trap(netsnmp_variable_list * vars,const char * context )    

此上下文值是否与用户定义的引擎 ID 相同?即,需要在 snmptrapd.conf 中配置的一个如下?

createUser -e ENGINEID myuser SHA "my authentication pass" AES "my encryption pass"

更多关于在这个链接中配置

有一个示例源代码可用于发送 v2traps

通过查看 net-snmp 源代码,send_v3trap 内部调用了 send_v2trap,最终,

/* A context name was provided, so copy it and its length to the v2 pdu
     * template. */
if (context != NULL)
    {
        template_v2pdu->contextName    = strdup(context);
        template_v2pdu->contextNameLen = strlen(context);
    }
4

1 回答 1

0

回答我自己的问题。

“上下文”值可以填写

  1. “snmpv3_get_engineID”返回的值
  2. 无效的

只要在 v3 方面配置正确,即在主机和目标上指定 trapsess -v3,指定 net-snmp 的 engineid,那么一切正常。

唯一不清楚的部分是,如果有人能够在不指定“上下文”的情况下发送 v3 陷阱,那么在哪种情况下它真的很有用!

于 2018-10-29T10:13:26.803 回答