Я пытаюсь разобраться с PySNMP Command Responder [1], в частности, предоставляя информацию о таблице IF-MIB (для начинающих в любом случае) для запросов snmpget / snmpwalk. Итак, я рассматриваю пример для SNMP Responder [2], а также для создания и вставки таблиц, найденных здесь [3], [4], [5].
Из моего понимания я определю /etc/snmpresponder/managed-objects/__IF-MIB.py, в котором я укажу большинство или все хуки, которые требуются CommandResponder для выполнения заданных операций (для ex-операции snmpgetnext -v2c -c public 127.0.0.1:1161 IF-MIB::ifMtu.1
). Предположим, это нормально, у меня есть следующие вопросы:
- Как правильно добавить данные в столбец таблицы (скажем, IF_MIB :: ifMtu)? Могу ли я связаться с snmpEngine или mibInstrumentation, используемыми SnmpCommander?
- Могу ли я полагаться исключительно на метод экспорта?
args.append(SysnameObjectInstance( (1, 3, 6, 1, 2, 1, 2, 2, 1, 4), (idx,), ifNumber.syntax.clone(idx + 1) ))
- Для IF_MIB.py [6] я не вижу подобного RowStatus, подобного [3]. Как удалить строку?
- В целом, насколько подвержен изменениям API? Я вижу различия между выпусками (например, writeMibObjects и writeVars), хотя версия 5.0 еще не выпущена.
[1] http://snmplabs.com/snmpresponder/
[2] http://snmplabs.com/snmpresponder/mib-implementation/index.html#
[3] http://snmplabs.com/pysnmp/faq/how-to-implement-agent-mib.html
[4] http://snmplabs.com/pysnmp/examples/smi/agent/implementing-mib-objects.html
[5] https://github.com/etingof/pysnmp/blob/master/examples/smi/agent/operations-on-managed-objects.py
[6] https://github.com/etingof/pysnmp-mibs/blob/master/pysnmp_mibs/IF-MIB.py