вторник, апреля 19, 2016

SNMP в Windows Часть 4. SNMP Trap - мы в ловушке!

Здравствуйте уважаемые читатели! В прошлых трех статьях мы разобрали использование запросов  SNMP GetRequest и SNMP SetRequest в Windows, а также познакомились с такой интересной утилитой как snmpwalk. Для окончания первоначального обзора работы с SNMP в Windows, осталось только разобраться  с SNMP Trap. Именно этот вопрос мы сегодня и будем разбирать.

Как мы уже говорили ранее, в первой статье из цикла о протоколе SNMP, сообщение SNMP Trap генерируется на агенте и отправляется менеджеру в случае возникновении на агенте определенных событий. Давайте попробуем реализовать это на практике. Для этого я буду использовать тестовый стенд аналогичный приведенному в статье SNMP в Windows часть 1. Но в данном случае в качестве агента я буду использовать физическую машину, а в качестве менеджера виртуальную машину.  

На агенте, для наших экспериментов, создадим лупбек интерфейс. Лупбек интерфейс - это программный интерфейс. Весь отсылаемый на него трафик, тут же принимается им обратно. Но в данном случае он нам нужен не для этого, а только для того чтобы сымитировать падение интерфейса. Если  у вас на компьютере есть две сетевые платы, то можете не создавать лупбек, а использовать вторую плату для экспериментов.

Для того чтобы создать лупбек перейдите в "Панель управления" - "Оборудование и звук" - "Диспетчер устройств". На вкладке "Действие" выберите "Установить старое устройство". Нажмите далее. Выберите "Установка оборудования, выбранного из списка вручную", затем  "Сетевые адаптеры". В левой части окна выбираем "Microsoft", в правой "Адаптер Microsoft замыкания на себя". Нажимаем далее.

Добавляем лупбек интерфейс в Windows
Добавляем лупбек интерфейс в Windows
Теперь, если вы перейдете в "Панель управления" - "Сеть и интернет" - "Центр управления сетями и общим доступом" - "Изменения параметров адаптера", то вы увидите что у вас появилось новое сетевое подключение. Перейдите  в его настройки и задайте ему IP адрес. После этого запустите командную строку и выполните в ней команду route print. В выводе данной команды обратите внимание на список сетевых интерфейсов и то какой номер получил ваш только что созданный лупбек интерфейс. В моем случае это номер 40. Запоминаем это и идем дальше, позже эта информация нам пригодится.

Лупбек интерфейс получил номер 40
Лупбек интерфейс получил номер 40
Для настройки агента SNMP на отправку Trapов перейдем в "Панель управления" - "Система и безопасность" - "Администрирование" - "Службы". Откроем свойства службы "Служба SNMP" и перейдем на вкладку "Ловушки". Здесь мы указываем IP адрес менеджера (в моем случае это IP адрес виртуальной машины) на который мы будет отправлять Trapы. А так же community, которое мы будем использовать для данных целей. Собственно на этом настройку агента можно считать законченной.

Настройка агента для отправки SNMP трапов
Настройка агента для отправки SNMP трапов
Перейдем к менеджеру. В качестве обработчика SNMP Trapов можно использовать огромное число программных продуктов, но раз уж мы использовали PowerSNMP Free Manager в одной из наших предыдущих статей о SNMP, давайте задействуем его и для отлова SNMP Trap. Для этого просто запускаем его на виртуальной машине и не делаем ничего более. Все, PowerSNMP Free Manager готов для прием SNMP Trap.



Теперь когда тестовый стенд настроен займемся непосредственно экспериментом. Перейдем на виртуальную машину. Откроем PowerSNMP Free Manager. Сосредотачиваем свое внимание на вкладке Traps в нижней части его окна и ждем.

Вкладка Traps PowerSNMP Free Manager - трапов пока нет
Вкладка Traps PowerSNMP Free Manager - трапов пока нет
Так как SNMP агент в Windows по умолчанию поддерживает лишь очень малое число сообщений SNMP Trap, то ждать нам скорее всего придется очень долго ) Поэтому мы сами поможем, и создадим на физической рабочей станции какое либо событие, которое привело бы к генерации SNMP агентом сообщения SNMP Trap. Например, давайте отключим на физической рабочей станции, недавно нами созданный лупбек интерфейс.

Отключаем лупбек интерфейс
Отключаем лупбек интерфейс
Теперь подождем пару секунд и перейдем в окно PowerSNMP Free Manager на станции менеджере. Если все сделано верно, то на вкладке Trap появится новая информация.

Мы отловили первый SNMP Trap
Мы отловили первый SNMP Trap
То что вы можете видеть, есть ни что иное как SNMP  Trap полученный от агента. Давайте начнем его расшифровывать. Думаю поле Time не нуждается в комментариях. Поле Sender указывает на того, кто сгенерировал нам данный Trap (как легко заменить 192.168.1.2 - это  IP адрес нашего рабочей станции на которой функционирует агент SNMP). В поле Originator указан сокет с которого был отправлен Trap. В поле Enterprise/OID указывает как не странно OID данного SNMP Trapa. Если немного воспользоваться гуглом, то нетрудно найти что 1.3.6.1.4.1.311.1.1.3.1.1  можно представить как iso.org.dod.internet.private. enterprises.microsoft.software.systems.os.windowsNT.workstation. Из этого можно сделать вывод, что данный SNMP Trap сообщает нам о каких то изменениях на рабочей станции под управлением Windows. Идем далее. 

Поле GenericTrap указывает на тип произошедшего события, всего таких типов может быть 5+1:
  • coldStart (0) - говорит о том что SNMP агент был перезагружен. Все значения переменных управления сброшены на значения по умолчанию. Посылается при включении устройства;
  • warmStart (1) - говорит о том что произошел перезапуск SNMP агента Все значения переменных управления остались без изменения;
  • linkDown (2) - говорит  о том что на устройстве упал какой то интерфейс;
  • linkUp (3) - говорит  о том что на устройстве поднялся какой то интерфейс;
  • authenticationFailure(4) - Говорит о том, что кто то пытался сделать запрос к вашему агенту с некорректным значением community;
  • egpNeighborLoss (5) - Говорит о том что упал сосед по протоколу Exterior Gateway Protocol (EGP);
  • enterpriseSpecific (6) - говорит о том что тип данного трапа не являться стандартным,  и это нестандартное значение указывается в поле Specific Trap, и для его идентификации необходимо обратиться к документации производителя оборудования.
В нашем случае GenericTrap равен 2. Значит мы можем сделать вывод что на нашей рабочей станции с IP адресом 192.168.1.2 под управлением Windows отвалился какойто сетевой интерфейс. Осталось только узнать какой) Для этого кликаем правой кнопкой мыши по Trapу и выбираем пункт Info.

Дополнительная информация по полученному трапу
Дополнительная информация по полученному трапу
В открывшемся окне можно узнать номер упавшего сетевого интерфейса и его OID. Как не странно - упал интерфейс с номером 40. А именно этот номер мы уже видели ранее в выводе команды route print, как номер закрепленный за лупбек интерфейсом.

И так с помощью данного трапа мы смогли узнать что на рабочей станции с IP адресом 192.168.1.2 под управлением Windows отвалился лупбек интерфейс. Теперь я думаю вам понятен способ работы с SNMP Trap, и надеюсь вы горите желанием опробовать работу с трапами на практике.

2 коммент.:

Доброго времени суток. Очень полезная статья, не подскажите с таким вопросом... Изучая предыдущие статьи на Windows 7/8/10 настраиваем SNMP. При помощи программы SnmpWalk или The Dude сканируем на наличие OID. В программе The Dude сканирование прерывается сообщением "not available", думал что проблема в The Dude. Но просканировав самого себя через SnmpWalk столкнулся с ошибкой "%Failed to get value of SNMP variable. General Error (genErr(5))". Было бы очень полезно узнать как заставить Windows выдавать весь список OID.

Можно ли создавать свои OID-ы чтобы записывать в них какие нибудь числа, строки. Если есть опыт, то тоже было бы очень полезно и интересно.

Отправить комментарий