Невозможно создать сеанс 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.