Невозможно создать сеанс snmpv3 и отправить ловушку snmpv3

1. Не удалось создать сеанс SNMPv3

Я использую NET::SNMP Perl библиотеку для отправки ловушки snmpv3. Это нормально работало с snmpv1 и snmpv2, но я не могу отправить ловушку snmpv3. Я использую Mg-soft ловушку для получения ловушек, но я не могу даже создать сеанс.

Код для создания сессии snmpv3:

my ($session, $error) = Net::SNMP->session( 
-hostname     => 'my_host_name', 
-version     => '3',
-username     => 'user-md5',
-authprotocol => 'md5',
-authpassword => 'abcd1234'
);

Здесь имя пользователя - это имя пользователя безопасности, добавленное в звонок-ловушку Mg-soft. Почему я не могу создать сеанс. Или, пожалуйста, подскажите, как я могу получить ловушку snmpv3, отправленную через библиотеку NET::SNMP.

2. Не удалось отправить ловушку SNMPv3

Я могу создать сеанс для snmpv3 с некоторой конфигурацией сервера snmp получателя ловушки, которую я нашел где-то. Но при отправке ловушки с использованием библиотеки NET::SNMP я получаю следующую ошибку:

Должен быть авторитетным механизмом SNMP для генерации SNMPv2-Trap-PDUdf.

Вот фрагмент кода, который я использовал:

my $OID_sysContact = '1.5.2.9.4.6.6.5.4';
my $result = $session->snmpv2_trap(
-varbindlist => [ $OID_sysContact, OCTET_STRING, 'Help Desk x911' ],
);

Пожалуйста, предложите мне, почему я получаю эту ошибку.

1 ответ

Я вижу несколько пропущенных полей из вашего фрагмента, что касается SNMPv3.

Я сомневаюсь почему Net::SNMP не имеет поля уровня безопасности для соединений v3. Есть три уровня безопасности - noAuthnoPriv, authNoPriv а также authPriv, На основе этих уровней может быть сформирован запрос на соединение SNMPv3.

Во-первых, в вашем запросе на подключение у вас есть только информация, связанная с аутентификацией, и ничего о протоколе конфиденциальности / ключе конфиденциальности. Во-вторых, я предлагаю вам использовать значение версии как snmpv3 вместо просто 3,

Для части с ловушкой кажется, что отправитель должен быть авторитетным механизмом SNMP - еще не поддерживаемым модулем Net::SNMP. Цитируется ниже из Net::SNMP

snmpv2_trap () - отправляет SNMP-ловушку snmpV2 удаленному менеджеру
ПРИМЕЧАНИЕ. Этот метод можно использовать только в том случае, если для версии объекта установлено значение SNMPv2c. SNMPv2-Trap-PDU поддерживаются SNMPv3, но требуют, чтобы отправитель сообщения был официальным механизмом SNMP, который в настоящее время не поддерживается модулем Net::SNMP.

Другие вопросы по тегам