解释v1,v2c和v3陷阱PDU /格式之间的区别。SNMP v1,v2c和v3陷阱差异
9
A
回答
6
这要求您通过RFC文档,这意味着这不是编程相关的,并且可能属于ServerFault。
给你一些提示:
- SNMP V1定义了一个特殊TRAP消息格式,从其它消息(例如GET)不同。 http://tools.ietf.org/html/rfc1157#page-27此消息格式在SNMP v2和v3中不再使用。如果SNMP代理发送v2或v3的TRAP消息,那可能是一个错误。
- 自v2开始,TRAP开始使用通用消息格式(与GET等相同)。所以它被称为SNMPv2-Trap-PDU。 http://tools.ietf.org/search/rfc3416#page-22
- SNMP v3将安全模型引入到所有消息中,因此TRAP也会收到此类更新。它仍然基于SNMPv2-Trap-PDU。
2
SNMPv2以稍微不同的方式定义陷阱。
在MIB中,SNMPv1陷阱定义为Trap-PDU,SNMPv2陷阱定义为NOTIFICATION-TYPE。 SNMPv2也取消了通用陷阱的概念,它在公有MIB中定义了许多特定的陷阱(正确地说,通知)。 (通用认证技术MD5或SHA)和隐私功能(加密技术 - DES,3DES,AES128/192/256)SNMPv3陷阱,这些陷阱只是简单的SNMPv2陷阱。
大多数SNMP实现仅支持v1。
下面是SNMP4J代码发送到SNMPv3陷阱。
public void sendTrap_Version3() {
//TrasportMapping
TransportMapping transport;
try {
transport = new DefaultUdpTransportMapping();
transport.listen();
//Creating SNMP object
snmp = new Snmp(transport);
//Creating USM
USM usm = new USM(SecurityProtocols.getInstance(), new OctetString(MPv3.createLocalEngineID()), 0);
SecurityModels.getInstance().addSecurityModel(usm);
// Add user to the USM
snmp.getUSM().addUser(
new OctetString("MD5DES"),
new UsmUser(new OctetString("MD5DES"), AuthMD5.ID, new OctetString("MD5DESUsrAuthPwd"), PrivDES.ID,
new OctetString("MD5DESUsrPrivPwd")));
// Create the target
Address targetAddress = GenericAddress.parse("udp:10.120.7.107/162");
UserTarget target = new UserTarget();
target.setAddress(targetAddress);
target.setRetries(3);
target.setTimeout(5000);
target.setVersion(SnmpConstants.version3);
target.setSecurityLevel(SecurityLevel.AUTH_PRIV);
target.setSecurityName(new OctetString("MD5DES"));
// Create PDU
ScopedPDU pdu = new ScopedPDU();
pdu.add(new VariableBinding(SnmpConstants.sysUpTime, new TimeTic(new Date().toString())));
pdu.add(new VariableBinding(SnmpConstants.snmpTrapOID,SnmpConstants.linkDown));
pdu.add(new VariableBinding(SnmpConstants.snmpTrapAddress, new IpAddress("127.3.4.1")));
pdu.add(new VariableBinding(new OID("1.3.6.1.2.1.2.2.1.1.1"), new Integer32(1)));
pdu.setType(ScopedPDU.TRAP);
snmp.send(pdu, target);
} catch (IOException e) {
e.printStackTrace();
}
}
+0
上述v2代码片段?为什么在代码段中有相关的安全性? – ifelsemonkey 2017-12-12 14:57:31
相关问题
- 1. SNMP陷阱和社区
- 2. SNMP陷阱到IPv6地址
- 3. Unix上的SNMP陷阱
- 4. 如何在Ruby中处理SNMP v3陷阱?
- 5. SNMP陷阱未在Windows XP中捕获
- 6. 触发器计数SNMP陷阱
- 7. 在网页上显示SNMP陷阱(jsp)
- 8. 如何从“C”发送net-snmp陷阱
- 9. 在Nagios中配置SNMP陷阱监控
- 10. SNMP陷阱中的子OID是什么?
- 11. InfluxDB - Kapacitor作为SNMP陷阱输出
- 12. 如何使用C#发送SNMP陷阱?
- 13. 定义MIB并发送SNMP陷阱.net
- 14. 接收陷阱与westhawk snmp堆栈
- 15. Datastax Opscenter 6.0不发送SNMP陷阱
- 16. snmp陷阱中的变量实例号
- 17. 如何使用PowerShell发送SNMP陷阱?
- 18. 如何使用net-snmp API接收SNMP陷阱?
- 19. 陷阱
- 20. SNMP4j陷阱严重性
- 21. 从MS Access的空陷阱的陷阱
- 22. 软件陷阱vs硬件陷阱
- 23. ValueConstraintError在pysnmp陷阱接收
- 24. C角箱和陷阱
- 25. Rufus-Scheduler,DaemonKit和陷阱
- 26. @Autowired和线程的陷阱
- 27. 如何发送SNMP陷阱到不同的IP
- 28. 如何解析Perl中的原始SNMP陷阱?
- 29. net-snmp:我如何注册新的企业陷阱?
- 30. 在使用net-snmp加密企业陷阱时遇到困难
关于:“如果SNMP代理为v2或v3发出这样的TRAP消息,那可能是一个错误。” @ lex-li你有这个评论的任何参考或网址吗?谢谢。 – k1eran 2014-07-31 16:36:35
这是我个人的观点,基于RFC1157和RFC3416。由于后者定义了新的TRAP消息格式,因此前者的旧格式应完全过时。事实上,我确实知道有些设备会发送SNMP v2的旧格式(一个#SNMP Library用户向我报告),但我认为这应该是固件的错误。 – 2014-08-01 02:16:44
可能是#3以上的原因,Wireshark在头文件中显示这样的数据包为“msgVersion:3”,在msgData中显示为“snmpV2-trap”(解密后) – vyom 2017-02-17 08:53:03