微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何配置引擎ID以使用SNMP4J发送SNMP陷阱V3?

如何解决如何配置引擎ID以使用SNMP4J发送SNMP陷阱V3?

我正在使用snmp4j 2.8.4和Java 1.8

当我使用命令行发送陷阱时,它可以工作。例如

snmptrapd.conf

authCommunity   log,execute,net public
createuser -e 0x8000000001020304 myuser MD5 mypassword DES mypassword1
authUser log,net myuser noauth

命令是

snmptrap -e 0x8000000001020304 -v 3 -u myuser  -a MD5 -A myjjpassword -x DES -X myjjpassword1 -l noAuthnopriv 192.168.135.18:162 "" 1.3.6.1.4.1.48183 1.3.6.1.4.1.48183.1 s "smartmon"

现在还可以,但是当我使用SNMP4J时,我不知道我的引擎ID是否设置正确,这会导致陷阱失败或其他原因

USM usm = new USM(SecurityProtocols.getInstance(),localEngineID,0);

SecurityModels.getInstance().addSecurityModel(usm);

usm.updateUser(new UsmUserEntry(new OctetString("myuser"),new OctetString("0x8000000001020304".getBytes()),new UsmUser(new OctetString("myuser"),null,null)));
snmp = new Snmp(transport);

snmp.setLocalEngine(new OctetString("0x8000000001020304".getBytes()).getValue(),0);

snmp.getMessagedispatcher().addMessageProcessingModel(new MPv3(usm));
transport.listen();

您能告诉我我在哪里遇到问题吗?我应该如何设置引擎ID?非常感谢您的回答

解决方法

OctetString与NET-SNMP使用不同的字符串表示形式。因此,您需要将引擎ID指定为:

OctetString.fromString(“ 8000000001020304”,16);

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。