send_v3trap 上下文值

send_v3trap context value

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

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"

在此 link

中详细了解配置

有一个示例源代码可以发送 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);
    }

回答我自己的问题。

"context"值可以填

  1. "snmpv3_get_engineID"
  2. 返回的值

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

唯一不清楚的部分是,如果有人能够在不指定 "context" 的情况下发送 v3 陷阱,在什么情况下它真的有用!