Итак, я нашел, где он упал.
Если вы имеете дело с балансировщиками, у вас может быть похожая проблема.
Описание:
Когда мы отправляем запрос через / balancer_host / из консоли whith "snmpget«у нас нет различий, и мы получаем ответ от / host_1 / или / host_2 / явно (прямой запрос к host_1 / 2 также всегда успешен, но в реальной ситуации мы не знаем, что host -« balanser »или нет, и мы не знаем,кто из хостов ответил)1007 *
observer_context = {}
snmp_engine.observer.registerObserver(
lambda e, p, v, c: c.update(securityEngineId=v['securityEngineId']),
'rfc3412.prepareDataElements:internal',
cbCtx=observer_context)
auth_data = UsmUserData('non-existing-user')
next(getCmd(snmp_engine, auth_data,
transport_target, ContextData(), ObjectType(ObjectIdentity('SNMPv2-MIB', 'sysDescr', 0))))
print(observer_context['securityEngineId'].prettyPrint())
и создайте правильный движок, но мы, тем не менее, получим похожую проблему, потому что мы отправляем запрос в / balancer_host /, с SnmpEngine (EngineID), который был получен из / host_1 / (например).
Итак,Тестовый запрос от наблюдателя работает, реальный запрос данных - нет.
Но мне интересно знать, как работает запрос в «snmpget» - всегда успешно.
У кого-нибудь есть идеи, как отправить запрос через «балансировщик» без SnmpEngine?