Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 4, 2011 16:54:41

avdoshkin
От:
Зарегистрирован: 2009-08-08
Сообщения: 93
Репутация: +  -1  -
Профиль   Отправить e-mail  

PySNMP

Пытаюсь воспользоваться PySNMP но SNMP v3 т.к. SNMP v2 работает.
выполняю код:

from pysnmp.entity.rfc3413.oneliner import cmdgen

varBindTable = cmdgen.CommandGenerator().nextCmd(cmdgen.UsmUserData('igor','11111111','22222222'),
cmdgen.UdpTransportTarget(('10.0.12.7', 161)),(1,3,6,1,2,1,1,1,0))
в ответ ошибки
Traceback (most recent call last):
File "./snmp_test_6.py", line 7, in <module>
cmdgen.UdpTransportTarget(('10.0.12.7', 161)),(1,3,6,1,2,1,1,1,0))
File "/usr/local/lib/python2.6/site-packages/pysnmp-4.1.16a-py2.6.egg/pysnmp/entity/rfc3413/oneliner/cmdgen.py", line 441, in nextCmd
File "/usr/local/lib/python2.6/site-packages/pysnmp-4.1.16a-py2.6.egg/pysnmp/carrier/asynsock/dispatch.py", line 33, in runDispatcher
File "/usr/local/lib/python2.6/asyncore.py", line 151, in poll
read(obj)
File "/usr/local/lib/python2.6/asyncore.py", line 82, in read
obj.handle_error()
File "/usr/local/lib/python2.6/asyncore.py", line 78, in read
obj.handle_read_event()
File "/usr/local/lib/python2.6/asyncore.py", line 428, in handle_read_event
self.handle_read()
File "/usr/local/lib/python2.6/site-packages/pysnmp-4.1.16a-py2.6.egg/pysnmp/carrier/asynsock/dgram/base.py", line 73, in handle_read
File "/usr/local/lib/python2.6/site-packages/pysnmp-4.1.16a-py2.6.egg/pysnmp/carrier/base.py", line 39, in _cbFun
File "/usr/local/lib/python2.6/site-packages/pysnmp-4.1.16a-py2.6.egg/pysnmp/entity/engine.py", line 61, in __receiveMessageCbFun
File "/usr/local/lib/python2.6/site-packages/pysnmp-4.1.16a-py2.6.egg/pysnmp/proto/rfc3412.py", line 307, in receiveMessage
File "/usr/local/lib/python2.6/site-packages/pysnmp-4.1.16a-py2.6.egg/pysnmp/proto/mpmod/rfc3412.py", line 522, in prepareDataElements
File "/usr/local/lib/python2.6/site-packages/pysnmp-4.1.16a-py2.6.egg/pysnmp/proto/secmod/rfc3414/service.py", line 483, in processIncomingMsg
File "/usr/local/lib/python2.6/site-packages/pyasn1-0.0.13b-py2.6.egg/pyasn1/type/univ.py", line 37, in __sub__
File "/usr/local/lib/python2.6/site-packages/pyasn1-0.0.13b-py2.6.egg/pyasn1/type/univ.py", line 99, in clone
File "/usr/local/lib/python2.6/site-packages/pyasn1-0.0.13b-py2.6.egg/pyasn1/type/univ.py", line 23, in __init__
File "/usr/local/lib/python2.6/site-packages/pyasn1-0.0.13b-py2.6.egg/pyasn1/type/base.py", line 64, in __init__
File "/usr/local/lib/python2.6/site-packages/pyasn1-0.0.13b-py2.6.egg/pyasn1/type/base.py", line 31, in _verifySubtypeSpec
File "/usr/local/lib/python2.6/site-packages/pyasn1-0.0.13b-py2.6.egg/pyasn1/type/constraint.py", line 33, in __call__
pyasn1.type.error.ValueConstraintError: ConstraintsIntersection(ConstraintsIntersection(), ValueRangeConstraint(484, 2147483647L)) failed at: "ValueRangeConstraint(484, 2147483647L) failed at: "481""
Кто, что посоветует?



Офлайн

#2 Апрель 22, 2011 23:15:50

snmpjog
От:
Зарегистрирован: 2011-04-22
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

PySNMP

avdoshkin
Пытаюсь воспользоваться PySNMP но SNMP v3 т.к. SNMP v2 работает.
выполняю код:
from pysnmp.entity.rfc3413.oneliner import cmdgen

varBindTable = cmdgen.CommandGenerator().nextCmd(cmdgen.UsmUserData('igor','11111111','22222222'),
cmdgen.UdpTransportTarget(('10.0.12.7', 161)),(1,3,6,1,2,1,1,1,0))
в ответ ошибки
Traceback (most recent call last):
File "./snmp_test_6.py", line 7, in <module>
...
File "/usr/local/lib/python2.6/site-packages/pysnmp-4.1.16a-py2.6.egg/pysnmp/proto/secmod/rfc3414/service.py", line 483, in processIncomingMsg
Кто, что посоветует?
Возможно баг в pysnmp. Попробуйте заменить число 48 на 44 в файле pysnmp/proto/secmod/rfc3414/service.py, line 483



Офлайн

#3 Апрель 26, 2011 04:18:10

avdoshkin
От:
Зарегистрирован: 2009-08-08
Сообщения: 93
Репутация: +  -1  -
Профиль   Отправить e-mail  

PySNMP

snmpjog
avdoshkin
Пытаюсь воспользоваться PySNMP но SNMP v3 т.к. SNMP v2 работает.
выполняю код:
from pysnmp.entity.rfc3413.oneliner import cmdgen

varBindTable = cmdgen.CommandGenerator().nextCmd(cmdgen.UsmUserData('igor','11111111','22222222'),
cmdgen.UdpTransportTarget(('10.0.12.7', 161)),(1,3,6,1,2,1,1,1,0))
в ответ ошибки
Traceback (most recent call last):
File "./snmp_test_6.py", line 7, in <module>
...
File "/usr/local/lib/python2.6/site-packages/pysnmp-4.1.16a-py2.6.egg/pysnmp/proto/secmod/rfc3414/service.py", line 483, in processIncomingMsg
Кто, что посоветует?
Возможно баг в pysnmp. Попробуйте заменить число 48 на 44 в файле pysnmp/proto/secmod/rfc3414/service.py, line 483
Привет! Спасибо за ответ, попробовал изменить header length не помогло.



Офлайн

#4 Апрель 28, 2011 14:08:57

snmpjog
От:
Зарегистрирован: 2011-04-22
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

PySNMP

avdoshkin
Привет! Спасибо за ответ, попробовал изменить header length не помогло.
Выглядит так, что в ответе от SNMP агента приходит что-то, что вызывает неправильный расчет вот этого выражения:

        # (48 - maximum SNMPv3 header length)
maxSizeResponseScopedPDU = maxMessageSize - len(securityParameters)-48
где maxSizeResponseScopedPDU (по-сути экземпляр maxMessageSize) не может быть меньше 484 байт (а получается 481). Предлагаю поэкспериментировать с константой, распечатать вычитаемые и сообщить рез-ты в pysnmp-users mailing list для анализа\исправления проблемы.

Еще кажется, что все это выражение можно заменить какой-нибудь константой (типа 4096). Хотя конечно этот подход не решает проблему.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version