Différence entre les pièges SNMP v1,v2c et v3

expliquer la différence entre les pièges v1, v2c et v3 PDU/format.

10
demandé sur k1eran 2011-12-30 15:47:30

2 réponses

cela nécessite de parcourir les documents RFC, ce qui signifie que cela n'est pas lié à la programmation, et appartient probablement à ServerFault.

vous Donner quelques conseils:

  1. SNMP v1 définit un format de message de TRAP spécial, différent des autres messages (comme GET). http://tools.ietf.org/html/rfc1157#page-27 ce format de message n'est plus utilisé dans SNMP v2 et v3. Si un agent SNMP envoie de tels messages TRAP pour v2 ou v3, cela peut être bogue.
  2. depuis v2, TRAP commence à utiliser le format de message courant (le même que GET et ainsi de suite). Il s'appelle donc SNMPv2-Trap-PDU. http://tools.ietf.org/search/rfc3416#page-22
  3. SNMP v3 introduit le modèle de sécurité à tous les messages, donc TRAP reçoit aussi cette mise à jour. Il est toujours basé sur SNMPv2-Trap-PDU.
7
répondu Lex Li 2013-12-17 07:54:31

SNMPv2 définit les pièges d'une manière légèrement différente.

dans un MIB, les pièges SNMPv1 sont définis comme des pièges-PDU, les pièges SNMPv2 sont définis comme des types de NOTIFICATION. SNMPv2 supprime également la notion de pièges génériques à la place, il définit de nombreux pièges spécifiques (à proprement parler, la notification) dans les MIB publics.

pièges SNMPv3, qui sont simplement des pièges SNMPv2 avec authentification ajoutée (basée sur les justificatifs d'identité) (Techniques D'authentification communes MD5 ou SHA) et confidentialité capacités (techniques de cryptage - DES,3DES,AES128/192/256).

la plupart des implémentations de SNMP ne prennent en charge que v1.

Reference_1Reference_2

ci-dessous est le code SNMP4j pour envoyer le piège 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();
    }
}
3
répondu Kanagavelu Sugumar 2017-12-12 15:27:40