2011-12-30 9 views

उत्तर

6

यह आपको आरएफसी दस्तावेज़ों के माध्यम से जाने की आवश्यकता है, जिसका अर्थ है कि यह प्रोग्रामिंग से संबंधित नहीं है, और शायद सर्वरफॉल्ट से संबंधित है।

आप कुछ संकेत दें:

  1. SNMP v1 एक विशेष जाल संदेश स्वरूप, (जैसे कि प्राप्त के रूप में) अन्य संदेशों से अलग परिभाषित करता है। http://tools.ietf.org/html/rfc1157#page-27 यह संदेश प्रारूप अब एसएनएमपी v2 और v3 में उपयोग नहीं किया जाता है। यदि कोई एसएनएमपी एजेंट v2 या v3 के लिए ऐसे TRAP संदेश भेजता है, तो यह एक बग हो सकता है।
  2. v2 के बाद से, TRAP सामान्य संदेश प्रारूप (जीईटी और इसी तरह के समान) का उपयोग करना शुरू कर देता है। तो इसे एसएनएमपीवी 2-ट्रैप-पीडीयू कहा जाता है। http://tools.ietf.org/search/rfc3416#page-22
  3. एसएनएमपी v3 सभी संदेशों को सुरक्षा मॉडल प्रस्तुत करता है, इसलिए TRAP को भी ऐसे अपडेट प्राप्त होते हैं। यह अभी भी एसएनएमपीवी 2-ट्रैप-पीडीयू पर आधारित है।
+0

संबंधित: "यदि कोई एसएनएमपी एजेंट v2 या v3 के लिए ऐसे TRAP संदेश भेजता है, तो यह एक बग हो सकता है।" @ lex-li क्या आपके पास इस टिप्पणी के लिए कोई संदर्भ या यूआरएल है? धन्यवाद। – k1eran

+2

यह आरएफसी1157 और आरएफसी 3416 के आधार पर मेरा निजी दृश्य है। चूंकि बाद में एक नया TRAP संदेश प्रारूप परिभाषित किया गया है, इसलिए पूर्व में पुराना प्रारूप अप्रचलित होना चाहिए। हकीकत में मुझे पता चला कि कुछ डिवाइस एसएनएमपी v2 के लिए पुराने प्रारूप को भेजते हैं (एक # एसएनएमपी लाइब्रेरी उपयोगकर्ता ने मुझे बताया है), लेकिन मुझे लगता है कि फर्मवेयर का एक बग होना चाहिए। –

+0

शायद, # 3 उपर्युक्त कारण है, Wireshark शीर्षक में 'msgVersion: 3' और' msgData' में 'snmpV2-trap' के रूप में ऐसे पैकेट दिखाता है (डिक्रिप्ट करने के बाद) – vyom

2

एसएनएमपीवी 2 जाल को थोड़ा अलग तरीके से परिभाषित करता है।

एक एमआईबी में, एसएनएमपीवी 1 जाल को ट्रैप-पीडीयू के रूप में परिभाषित किया जाता है, एसएनएमपीवी 2 जाल को अधिसूचना-प्रकार के रूप में परिभाषित किया जाता है। एसएनएमपीवी 2 इसके बजाय जेनेरिक जाल की धारणा को दूर करता है, यह सार्वजनिक एमआईबी में कई विशिष्ट जाल (ठीक से बोलने, अधिसूचना) को परिभाषित करता है।

एसएनएमपीवी 3 जाल, जो अतिरिक्त प्रमाणीकरण (प्रमाण-आधारित) (सामान्य प्रमाणीकरण तकनीक एमडी 5 या एसएचए) और गोपनीयता क्षमताओं (एन्क्रिप्शन तकनीक - डीईएस, 3 डीईएस, एईएस 128/1 9 2/256) के साथ बस एसएनएमपीवी 2 जाल हैं।

अधिकांश एसएनएमपी कार्यान्वयन केवल v1 का समर्थन करता है।

Reference_1Reference_2

नीचे SNMPv3 जाल भेजने के लिए SNMP4j कोड है।

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

संबंधित मुद्दे