Не удается получить ловушки SNMPv3 несколько раз после первой отправки. [snmp4j-Java]

Последние несколько дней я изо всех сил пытаюсь отправить ловушку SNMPV3, используя фразу Auth и priv. Проблема в следующем: после того, как я получил первую ловушку SNMPv3 с Auth-Priv, я иногда не могу получить ловушку (около 2 минут). Получатель подобен игнорированию каждой ловушки, которая приближается.

Вот мой код:

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 минуты после первой отправки.

    Большое спасибо друзья за вашу помощь


person Abdelhakim Ait Errami    schedule 13.03.2017    source источник
comment
Привет, друзья, я добавляю некоторые изменения в свой вопрос, особенно Привет, друзья :), но это не требует моего редактирования x), заранее спасибо за вашу помощь и идею, большое   -  person Abdelhakim Ait Errami    schedule 13.03.2017


Ответы (1)


Я нашел ответ! :D Просто измените зависимость на snmp4j-2.* и все заработает, теперь я использовал snmp4j-2.5.0. и он работает отлично, приведенный выше код работает идеально, если вы хотите его использовать.

Хорошего дня кода :-)

person Abdelhakim Ait Errami    schedule 21.03.2017