Saltar al contenido

Diferencia de trampa SNMP v1, v2c y v3

Te traemos la contestación a esta preocupación, o por lo menos eso pensamos. Si sigues con alguna duda coméntalo, que sin pensarlo

Solución:

Esto requiere que revise los documentos RFC, lo que significa que esto no está relacionado con la programación y probablemente pertenece a ServerFault.

Darte algunos consejos:

  1. SNMP v1 define un formato de mensaje TRAP especial, diferente de otros mensajes (como GET). http://tools.ietf.org/html/rfc1157#page-27 Este formato de mensaje ya no se usa en SNMP v2 y v3. Si un agente SNMP envía dichos mensajes TRAP para v2 o v3, eso puede ser un error.
  2. Desde v2, TRAP comienza a usar el formato de mensaje común (igual que GET, etc.). Por eso se llama SNMPv2-Trap-PDU. http://tools.ietf.org/search/rfc3416#page-22
  3. SNMP v3 introduce el modelo de seguridad en todos los mensajes, por lo que TRAP también recibe dicha actualización. Todavía se basa en SNMPv2-Trap-PDU.

SNMPv2 define las trampas de una manera ligeramente diferente.

En una MIB, las trampas SNMPv1 se definen como Trap-PDU, las trampas SNMPv2 se definen como NOTIFICATION-TYPE. SNMPv2 también elimina la noción de trampas genéricas, sino que define muchas trampas específicas (hablando con propiedad, notificación) en MIB públicas.

Trampas SNMPv3, que son simplemente trampas SNMPv2 con autenticación adicional (basada en credenciales) (Técnicas de autenticación comunes MD5 o SHA) y capacidades de privacidad (Técnicas de cifrado: DES, 3DES, AES128/192/256).

La mayoría de las implementaciones de SNMP solo admiten v1.

Referencia_1 Referencia_2

A continuación se muestra el código SNMP4j para enviar la trampa 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();
    

Sección de Reseñas y Valoraciones

Al final de la página puedes encontrar las explicaciones de otros sys admins, tú igualmente puedes mostrar el tuyo si dominas el tema.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags : /

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *