#python #simulation #snmp #agent
#python #Симуляция #snmp #агент
Вопрос:
Я хочу смоделировать простое устройство с тремя идентификаторами OID. У меня еще нет MIB, только OID. Я в основном хочу воссоздать устройство на Python для целей тестирования. Поэтому я создал простой агент с помощью pysnmp:
from pysnmp.hlapi import SnmpEngine
from pysnmp.entity import engine, config
from pysnmp.entity.rfc3413 import cmdrsp, context
from pysnmp.carrier.asynsock.dgram import udp
from pysnmp.smi import instrum
from pysnmp.proto.api import v2c
snmpEngine = SnmpEngine()
config.addSocketTransport(
snmpEngine,
udp.domainName,
udp.UdpTransport().openServerMode(('127.0.0.1', 161))
)
config.addV3User(
snmpEngine, 'goldrush'
)
config.addVacmUser(snmpEngine, 3, 'usr-md5-des', 'authPriv',
(1, 4, 1, 2, 3, 4), (1, 4, 1, 2, 3, 4))
snmpContext = context.SnmpContext(snmpEngine)
class EchoMibInstrumController(instrum.AbstractMibInstrumController):
def readVars(self, vars, acInfo=(None, None)):
return vars
snmpContext.registerContextName(
v2c.OctetString('my-context'), # Context Name
EchoMibInstrumController() # Management Instrumentation
)
cmdrsp.GetCommandResponder(snmpEngine, snmpContext)
snmpEngine.transportDispatcher.jobStarted(1)
try:
snmpEngine.transportDispatcher.runDispatcher()
except:
snmpEngine.transportDispatcher.closeDispatcher()
raise
Но я не понимаю, где я могу передать в него фиктивные данные — когда я отправляю GET-запрос, я получаю только ответ, что этот OID, который я запрашиваю, не существует в агенте.
Я прочитал много руководств, но часто они используют MIB, которые я пока не могу понять. Я никогда не вижу, чтобы они добавляли какие-либо значения..
Документ pysnmp не работает, поэтому я не могу получить никакой реальной информации. Может кто-нибудь дать мне подсказку, как создать простой агент?
Комментарии:
1. Из-за отсутствия ответов вы можете понять, что это не тривиальное усилие. Если вы разбираетесь в SNMP, потребуется человеко-недели (1 или 2), чтобы создать это с использованием open-source с нуля. Существуют коммерческие симуляторы SNMP (например, наш), которые могут дать вам более высокую рентабельность инвестиций.
2. Вау, похоже, snmp совсем не так прост. В настоящее время я пытаюсь реализовать свою идею с помощью snmpd и smp-перехода к моему скрипту python.
3. Это 15-минутное упражнение с нашим симулятором, после того как вы определили свой MIB. Что вы получаете в результате этих усилий, так это возможность изменять ваши данные во время выполнения, сбрасывать симуляцию в любой момент, тривиальную масштабируемость в количественном (количество агентов) и качественном направлениях (объекты MIB) и т. Д.