2
지난 며칠 동안 Auth 및 priv 문구를 사용하여 SNMPV3 트랩을 보내려고 고민 중입니다. 문제는 : Auth-Priv와 함께 첫 번째 트랩 SNMPv3을받은 후 때때로 (약 2 분) 트랩을받을 수 없습니다. 수신기는 오는 모든 함정을 무시하는 것과 같습니다. 여기 첫 번째 전송 후 SNMPv3 트랩을 몇 번받을 수 없습니다. [snmp4j-Java]
내 코드 경우 : Receiver.java
try {
// set udpAdress and transportMapping
final UdpAddress udpAddress = new UdpAddress(162);
final TransportMapping transportMapping = new DefaultUdpTransportMapping(udpAddress);
// Protocole de sécurité +usm +snmp
this.snmp = new Snmp(new MessageDispatcherImpl(), transportMapping);
SecurityProtocols.getInstance().addDefaultProtocols();
final USM usm = new USM(SecurityProtocols.getInstance(),
new OctetString(MPv3.createLocalEngineID(new OctetString())),
0);
SecurityProtocols.getInstance().addPrivacyProtocol(new PrivDES());
usm.setEngineDiscoveryEnabled(true);
// Add the MPv
snmp.getMessageDispatcher().addMessageProcessingModel(new MPv1());
snmp.getMessageDispatcher().addMessageProcessingModel(new MPv2c());
snmp.getMessageDispatcher().addMessageProcessingModel(new MPv3(usm));
// Security model
SecurityModels.getInstance().addSecurityModel(usm);
// Add user
snmp.getUSM().addUser(new OctetString("v3AuthSHAPrivDESSecName"),
new UsmUser(new OctetString("v3AuthSHAPrivDESSecName"), AuthMD5.ID,
new OctetString("v3AuthSHAPrivDESAuthPassword"), PrivDES.ID,
new OctetString("v3AuthSHAPrivDESPrivPassword")));
// Launch of the listener
this.snmp.addCommandResponder(this);
snmp.listen();`
Sender.java
try {
// set udpAdress and transportMapping
Address targetAddress = GenericAddress.parse("udp:" + ipAddress + "/" + port);
TransportMapping transport = new DefaultUdpTransportMapping();
Snmp snmp = new Snmp(transport);
// Protocole de sécurité +usm +snmp
SecurityProtocols.getInstance().addDefaultProtocols();
final USM usm = new USM(SecurityProtocols.getInstance(),
new OctetString(MPv3.createLocalEngineID(new OctetString())),
0);
SecurityProtocols.getInstance().addPrivacyProtocol(new PrivDES());
SecurityModels.getInstance().addSecurityModel(usm);
transport.listen();
// Ajout d'un user avec les paramètres de sécurité
snmp.getUSM().addUser(new OctetString("v3AuthSHAPrivDESSecName"),
new UsmUser(new OctetString("v3AuthSHAPrivDESSecName"), AuthMD5.ID,
new OctetString("v3AuthSHAPrivDESAuthPassword"), PrivDES.ID,
new OctetString("v3AuthSHAPrivDESPrivPassword")));
// Create Target
UserTarget target = new UserTarget();
target.setAddress(targetAddress);
target.setRetries(1111);
target.setTimeout(11111500);
target.setVersion(SnmpConstants.version3);
target.setSecurityLevel(SecurityLevel.AUTH_PRIV);
target.setSecurityName(new OctetString("v3AuthSHAPrivDESSecName"));
// Create PDU 1 for V3
ScopedPDU pdu = new ScopedPDU();
pdu.setType(PDU.TRAP);
pdu.add(new VariableBinding(SnmpConstants.sysUpTime));
pdu.add(new VariableBinding(SnmpConstants.snmpTrapOID, SnmpConstants.linkDown));
pdu.add(new VariableBinding(new OID(trapOid), new OctetString("V33333")));
snmp.send(pdu, target);
System.out.println("Sending Trap to (IP:Port)=> " + ipAddress + ":" + port);
snmp.addCommandResponder(new CommandResponder() {
public void processPdu(CommandResponderEvent arg0) {
System.out.println(arg0);
}
});
snmp.close();
나는 snmp4j-1.1을 사용하고 있습니다 의존. 나는 왜 그것이 처음 2 분 후에 오는 트랩을 무시하는지 모르겠다. 당신을위한
많은 감사의 친구들은 내가 답을 발견
안녕하세요 친구 :-), 나는 당신의 도움이 사전에 내 질문에, speciellay "히 친구 :"하지만,) 내 편집 X을 나던 감사를 일부 편집을 추가하고 있으 아이디어, 큰 위로 –