Как создать snmp-агент из net-snmp

#snmp #net-snmp

#snmp #net-snmp

Вопрос:

Я хочу реализовать SNMP-агент для платы PowerPC с использованием net-snmp. Ранее это было реализовано с помощью SMASH. У SMASH есть анализатор, который может считывать MIB и генерировать код на C (реализация пустой функции)

С чего мне начать?

Ответ №1:

Комментарии:

1. После создания файла MIB я поместил его в папку MIB и добавил его в snmp.conf. После этого сгенерируйте c-код с помощью инструмента mib2c. Теперь я задаю вопрос, куда поместить этот сгенерированный файл c и файл заголовка.

Ответ №2:

Комментарии:

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 будет вписываться в эту модель; Я умно покинул компанию, прежде чем это стало моей проблемой. 🙂