PySNMP не может отправить ловушку SNMPv3: «Обратный вызов для «Нет» не найден» ⇐ Python

Программы на Python
Anonymous
PySNMP не может отправить ловушку SNMPv3: «Обратный вызов для «Нет» не найден»

Сообщение Anonymous »

Я пытаюсь заставить работать прослушиватель ловушек SNMPv3, но уперся в стену.
Пакет ловушки приходит, но в коде возникают ошибки еще до того, как функция обратного вызова вызывается.
Все доступные обсуждения указывают на необходимость указания соответствующего EngineID, который у меня имеется — без изменений.
Ошибка:

Код: Выделить всё

  File "/usr/local/lib/python3.9/site-packages/pysnmp/carrier/base.py", line 146, in _cbFun
raise error.CarrierError(
pysnmp.carrier.error.CarrierError: No callback for "None" found - losing incoming event
Мой код:

Код: Выделить всё

from pysnmp.hlapi import *
from pysnmp.carrier.asyncio.dispatch import AsyncioDispatcher
from pysnmp.carrier.asyncio.dgram import udp
from pyasn1.codec.ber import decoder
from pysnmp.proto import api
from pysnmp.proto import rfc1902
from pysnmp.entity import config
from pysnmp.smi import builder
from pysnmp.entity.rfc3413 import ntfrcv

snmpEngine = config.SnmpEngine()

config.addV3User(
snmpEngine,
"usertest",
config.USM_AUTH_NONE,
None,
config.USM_PRIV_NONE,
None,
securityEngineId = rfc1902.OctetString(hexValue='8000000001020304'),
)

# Callback function for handling incoming SNMP traps
def cbFun(snmpEngine, stateReference, contextEngineId, contextName, varBinds, cbCtx):
print("Made it to the callback")

transportDispatcher = AsyncioDispatcher()

ntfrcv.NotificationReceiver(snmpEngine, cbFun)

transportDispatcher.registerTransport(
udp.DOMAIN_NAME, udp.UdpAsyncioTransport().openServerMode(('192.168.120.56', 162))
)

transportDispatcher.jobStarted(1)

try:
transportDispatcher.runDispatcher()

except KeyboardInterrupt:
print("Shutting down...")

finally:
transportDispatcher.closeDispatcher()
И команда для создания ловушки:

Код: Выделить всё

sudo snmptrap -v 3 -u usertest -l noAuthNoPriv -e 0x8000000001020304 192.168.120.56 '' .1.3.6.1.4.1
Python 3.9, pySNMP 7.1.4

Подробнее здесь: https://stackoverflow.com/questions/790 ... none-found

Вернуться в «Python»