2016-08-10 9 views
0

Я не могу создать сеанс SNNMPv3 в perl, используя IPv6-адрес. Я использую ниже SNMP API для создания сеанса SNMPv3, но он вызывает ошибку при создании сеанса. Если у кого-нибудь есть идеи, сообщите мне.Не удалось создать сеанс snmpv3 с использованием адреса IPv6

($session,$error) = new SNMP::Session(DestHost => 'IPv6 address', 
          Version => 3, 
          RemotePort => 162, 
          SecEngineId => '80001f888001324def', 
          SecName => 'skohrs', 
          AuthProto => 'SHA', 
          AuthPass => 'PaSSWoRDPaSSWoRDPaSS', 
          PrivProto => 'DES', 
          PrivPass => 'PaSSWoRDPaSSWoRD', 
          SecLevel => 'authPriv'); 
} 
+0

Какая ошибка? Вы должны убедиться, что агент контролирует адреса IP v6, или он никогда не ответит. –

+0

Lex Li, я проверил модуль net-snmp, кажется, что пакет SNMP не поддерживает IPv6. Пожалуйста, предложите, если я ошибаюсь. – Ravi

+1

Попробуйте изменить значение 'DestHost' на' udp6: [:: 1]: 162' (где ':: 1' - это фактический адрес). Библиотека net-snmp [поддерживает IPv6] (http://net-snmp.sourceforge.net/docs/FAQ.html#How_do_I_specify_IPv__addresses_in_tools_command_line_arguments_), но я не уверен, что такой же подход будет работать для привязок Perl. – ThisSuitIsBlackNot

ответ

0

Если смотреть на код SNMP.xs, он не поддерживает IPv6. Вы должны посмотреть на Net::SNMP, который поддерживает семейства адресов IPv4 и IPv6.

+0

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

+0

Вот ссылка, поэтому я сомневаюсь, что она полностью поддерживает SNMPv3. http://search.cpan.org/~dtown/Net-SNMP-v6.0.1/lib/Net/SNMP.pm#snmpv2_trap()_-_send_a_SNMP_snmpV2-trap_to_the_remote_manager – Ravi

+0

Не могли бы вы сообщить мне api, с которым вы привыкли отправить snmpv3 trap – Ravi

0

Net::SNMP - это чистый модуль Perl, поэтому установка проста, и вы можете проверить себя. Я использовал его с SNMPv3 и IPv6 и не имел проблем.

+0

Не могли бы вы дать мне знать, как передать EngineID при создании сеанса SNMPv3, используя Net :: SNMP. Я попробовал ниже ========= ($ session, $ error) = Net :: SNMP-> session ( -hostname => 'IP', -port => '162', -version = > 'SNMPv3', -области => 'udp6'; -username => 'skohrs'; -authpassword => 'PaSSWoRDPaSSWoRDPaSS', -authprotocol => 'ША', -privpassword => 'PaSSWoRDPaSSWoRD'; -privprotocol => 'DES'); ==== – Ravi

+0

Также можете ли вы сообщить, какой API можно использовать для отправки ловушки SNMPv3 с использованием модуля Net :: SNMP. – Ravi

+0

Не могли бы вы сообщить мне, какой API можно использовать для отправки ловушки SNMPv3 с использованием модуля Net :: SNMP – Ravi