#snmp #net-snmp
#snmp #net-snmp
Вопрос:
Я хочу реализовать SNMP-агент для платы PowerPC с использованием net-snmp. Ранее это было реализовано с помощью SMASH. У SMASH есть анализатор, который может считывать MIB и генерировать код на C (реализация пустой функции)
С чего мне начать?
Ответ №1:
Попробуйте посмотреть на инструмент mib2c из net-snmp. Он сгенерирует C-код snmp-агента из MIB. Затем вам нужно только выполнить возвращаемые значения для запросов SNMP. Скелет ответа на запросы SNMP (get, set, get-next) автоматически выполняется путем генерации.
Комментарии:
1. После создания файла MIB я поместил его в папку MIB и добавил его в snmp.conf. После этого сгенерируйте c-код с помощью инструмента mib2c. Теперь я задаю вопрос, куда поместить этот сгенерированный файл c и файл заголовка.
Ответ №2:
Вы смотрите на написание руководства по модулю MIB .
Комментарии:
1. кажется, ваша ссылка была изменена:
There is currently no text in this page
Ответ №3:
Я использовал другой подход к этому. Чтобы лучше интегрироваться с моей экосистемой C и получить большую гибкость (особенно в масштабе), я:
- На этапе предварительной сборки проанализировал результат
snmptranslate
(то есть дерево MIB) в кучу карт C и других контейнеров для использования в коде - Заимствованные транспортные функции Net-SNMP и функции построения PDU
- Но обслуживаемый запрашивает сам при получении, используя мои карты C и данные, уже доступные для моего приложения
Это сделало генерацию уведомлений тривиальной (мне просто понадобились некоторые типы вариантов для генерации переменных, немного построения PDU, а затем я оставил остальное для транспортной функции Net-SNMP), хотя для запросов мне тогда пришлось самостоятельно выполнять перемещение по таблице (и GetNext / GetBulk / Set не являются тривиальными, если вы не избегаетевсе таблицы или, по крайней мере, избегайте таблиц с составным индексом).
В результате получается быстрый, надежный и масштабируемый SNMP-агент с выразительным кодом, который легко поддерживать и расширять.
Вы не говорите, что используете C , но это дает представление о том, как вы можете выбрать функциональность Net-SNMP, не обязательно покупая всю ее экосистему.
Обратите внимание, что я понятия не имею, как SNMPv3 будет вписываться в эту модель; Я умно покинул компанию, прежде чем это стало моей проблемой. 🙂