Re: [pysnmp-users] unknownEngineID error
Brought to you by:
elie
From: Paulo F. A. <pf...@me...> - 2007-05-17 12:41:55
|
Hi, I haven't tried the CVS version yet. I'm using pysnmp 4.1.7a-1 from debian unstable. Here is the script I'm using to test this: ------------------------- script --------------------------- #!/usr/bin/python from pysnmp.entity import engine from pysnmp.entity.rfc3413.oneliner import cmdgen from pysnmp import debug debug.setLogger(debug.Debug('secmod')) usmData =3D cmdgen.UsmUserData('user', 'XXXX', =20 'XXXX',cmdgen.usmHMACSHAAuthProtocol, cmdgen.usmDESPrivProtocol) udpTransport =3D cmdgen.UdpTransportTarget(('192.168.249.1',161)) errorIndication, errorStatus, errorIndex, varBindTable =3D =20 cmdgen.CommandGenerator().nextCmd( usmData, udpTransport, (1,3,6,1,2,1,1) ) print errorStatus print errorIndication =09 for varBindTableRow in varBindTable: print varBindTableRow ------------------------- /script --------------------------- Here are the results I got: ----------------- running teste.py --------------------- $ ./teste.py DBG: debug category secmod enabled DBG: __generateRequestOrResponseMsg: use empty USM data DBG: __generateRequestOrResponseMsg: local user usmUserName =20 usmUserAuthProtocol None usmUserPrivProtocol None by =20 securityEngineID securityName DBG: __generateRequestOrResponseMsg: assuming zero snmpEngineBoots, =20 snmpEngineTime DBG: __generateRequestOrResponseMsg: use snmpEngineBoots 0 =20 snmpEngineTime 0 for securityEngineID DBG: __generateRequestOrResponseMsg: UsmSecurityParameters: msgAuthoritativeEngineID=3D'' msgAuthoritativeEngineBoots=3D0 msgAuthoritativeEngineTime=3D0 msgUserName=3D'' msgAuthenticationParameters=3D'' msgPrivacyParameters=3D'' DBG: __generateRequestOrResponseMsg: plain outgoing msg DBG: processIncomingMsg: UsmSecurityParameters: msgAuthoritativeEngineID=3D'\x80\x00\x02}\x03\x00\xd0\x95\xd8A\xc5' msgAuthoritativeEngineBoots=3D0 msgAuthoritativeEngineTime=3D0 msgUserName=3D'' msgAuthenticationParameters=3D'' msgPrivacyParameters=3D'' DBG: processIncomingMsg: cache read securityStateReference 0 by =20 msgUserName DBG: processIncomingMsg: unknown securityEngineID ?}=D0=95?A? DBG: processIncomingMsg: store timeline for securityEngineID ?}=D0=95?A? DBG: processIncomingMsg: read from securityParams =20 msgAuthoritativeEngineID ?}=D0=95?A? msgUserName DBG: processIncomingMsg: now have usmUserSecurityName =20 usmUserAuthProtocol None usmUserPrivProtocol None for msgUserName DBG: processIncomingMsg: cached msgUserName info by =20 securityStateReference 1 DBG: StatusInformation: {'oid': ObjectName('1.3.6.1.6.3.15.1.1.4.0'), =20= 'sendPduHandle': 1L, 'val': Counter32('20486663'), 'errorIndication': =20= 'unknownEngineID'} DBG: __generateRequestOrResponseMsg: use empty USM data DBG: __generateRequestOrResponseMsg: local user usmUserName =20 usmUserAuthProtocol None usmUserPrivProtocol None by =20 securityEngineID securityName DBG: __generateRequestOrResponseMsg: assuming zero snmpEngineBoots, =20 snmpEngineTime DBG: __generateRequestOrResponseMsg: use snmpEngineBoots 0 =20 snmpEngineTime 0 for securityEngineID DBG: __generateRequestOrResponseMsg: UsmSecurityParameters: msgAuthoritativeEngineID=3D'' msgAuthoritativeEngineBoots=3D0 msgAuthoritativeEngineTime=3D0 msgUserName=3D'' msgAuthenticationParameters=3D'' msgPrivacyParameters=3D'' DBG: __generateRequestOrResponseMsg: plain outgoing msg DBG: processIncomingMsg: UsmSecurityParameters: msgAuthoritativeEngineID=3D'\x80\x00\x02}\x03\x00\xd0\x95\xd8A\xc5' msgAuthoritativeEngineBoots=3D0 msgAuthoritativeEngineTime=3D0 msgUserName=3D'' msgAuthenticationParameters=3D'' msgPrivacyParameters=3D'' DBG: processIncomingMsg: cache read securityStateReference 2 by =20 msgUserName DBG: processIncomingMsg: read from securityParams =20 msgAuthoritativeEngineID ?}=D0=95?A? msgUserName DBG: processIncomingMsg: now have usmUserSecurityName =20 usmUserAuthProtocol None usmUserPrivProtocol None for msgUserName DBG: processIncomingMsg: cached msgUserName info by =20 securityStateReference 3 DBG: StatusInformation: {'oid': ObjectName('1.3.6.1.6.3.15.1.1.4.0'), =20= 'sendPduHandle': 2L, 'val': Counter32('20486664'), 'errorIndication': =20= 'unknownEngineID'} DBG: __generateRequestOrResponseMsg: use empty USM data DBG: __generateRequestOrResponseMsg: local user usmUserName =20 usmUserAuthProtocol None usmUserPrivProtocol None by =20 securityEngineID securityName DBG: __generateRequestOrResponseMsg: assuming zero snmpEngineBoots, =20 snmpEngineTime DBG: __generateRequestOrResponseMsg: use snmpEngineBoots 0 =20 snmpEngineTime 0 for securityEngineID DBG: __generateRequestOrResponseMsg: UsmSecurityParameters: msgAuthoritativeEngineID=3D'' msgAuthoritativeEngineBoots=3D0 msgAuthoritativeEngineTime=3D0 msgUserName=3D'' msgAuthenticationParameters=3D'' msgPrivacyParameters=3D'' DBG: __generateRequestOrResponseMsg: plain outgoing msg DBG: processIncomingMsg: UsmSecurityParameters: msgAuthoritativeEngineID=3D'\x80\x00\x02}\x03\x00\xd0\x95\xd8A\xc5' msgAuthoritativeEngineBoots=3D0 msgAuthoritativeEngineTime=3D0 msgUserName=3D'' msgAuthenticationParameters=3D'' msgPrivacyParameters=3D'' DBG: processIncomingMsg: cache read securityStateReference 4 by =20 msgUserName DBG: processIncomingMsg: read from securityParams =20 msgAuthoritativeEngineID ?}=D0=95?A? msgUserName DBG: processIncomingMsg: now have usmUserSecurityName =20 usmUserAuthProtocol None usmUserPrivProtocol None for msgUserName DBG: processIncomingMsg: cached msgUserName info by =20 securityStateReference 5 DBG: StatusInformation: {'oid': ObjectName('1.3.6.1.6.3.15.1.1.4.0'), =20= 'sendPduHandle': 3L, 'val': Counter32('20486665'), 'errorIndication': =20= 'unknownEngineID'} 0 unknownEngineID ----------------- /running teste.py --------------------- ----------------- running pysnmpwalk --------------------- $ pysnmpwalk -v3 -l authPriv -u user -x DES -a SHA -A XXXX -X XXXX =20 192.168.249.1 1.3.6.1.2.1.1 unknownEngineID ----------------- /running pysnmpwalk --------------------- Issuing the exact same command replacing "pysnmpwalk" with "snmpwalk" =20= works fine. Paulo F. Andrade 52439@IST mailto: pf...@me... On 2007/05/16, at 10:58, Ilya Etingof wrote: > > That error might mean that your SNMP engine fails to discover peer =20 > SNMP > engine for some reason. In attempt to figure out the cause I'd =20 > suggest enabling SNMP security module debugging by adding the =20 > following in the beginning of your script: > > from pysnmp import debug > debug.setLogger(debug.Debug('secmod')) > > That would enable stderr reporting. I'd appreciate you sending me =20 > the output for a single failed GETNEXT session. > > Also, try using pysnmp code from CVS -- there were some minor =20 > fixes, though I'm not sure how relevant they are to this problem. > > BTW, does pysnmpwalk tool (from pysnmp-apps package) fails in the =20 > same way? > > -ilya > >> I'm using pysnmp v4 to interact with a network device using SNMPv3. >> I can successfully make queries using the snmp command. However >> following the examples available in the Documentation I get the >> following error: unknownEngineID >> >> Here is the relevant code: >> >> errorIndication, errorStatus, errorIndex, varBindTable =3D >> cmdgen.CommandGenerator().nextCmd( >> cmdgen.UsmUserData('user', 'xxxx', >> 'xxxx',cmdgen.usmHMACSHAAuthProtocol, cmdgen.usmDESPrivProtocol), >> cmdgen.UdpTransportTarget(('192.168.2.1',161)), >> (1,3,6,1,2,1,1) >> ) >> >> print errorStatus >> print errorIndication >> >> for varBindTableRow in varBindTable: >> print varBindTableRow >> >> And the output is: >> 0 >> unknownEngineID >> >> If I do the same query using the snmpwalk command it behaves as >> expected. >> (snmpwalk -v3 -l authPriv -u user -x DES -a SHA -A xxxx -X xxxx >> 192.168.2.1 1.3.6.1.2.1.1) >> >> So.. anybody can explain me what that error is? |