Trap сообщения что это
SNMP traps и с чем их едят
В этой статье я хочу осветить вопрос работы с SNMP traps. В то время, когда я начинал разбираться с этой темой, при неплохом знании принципов работы протокола SNMP, я был удивительным образом перепутан результатами чтения документации по этому вопросу, всеми этими OID, которые нужно писать как параметры для команды snmptrap. Поиски внятной информации в интернет не дали результатов. Создавалось впечатление, что я один такой непонятливый среди тех, кто считает это элементарным.
В своей работе я использую пакет NetSNMP с открытым исходным кодом и поэтому, примеры относятся именно к этому пакету.
Я не буду останавливаться на описании дерева SNMP (считаю это действительно банальным), а начнем с пресловутого OID. OID это просто. OID, это Object ID, уникальный идентификатор объекта в дереве значений SNMP. OID может записываться в нескольких видах.
Единственным ограничением использования MIB является то, что при использовании программного обеспечения SNMP от разных производителей и различного железа необходимо единое „понимание“ этих волшебных трансформаций. Поэтому на сайтах производителей управляемого оборудования есть файлы описания MIB для конкретных устройств.
С представлением OID разобрались. Теперь про трапы. Сразу оговорюсь, что все нижесказанное относится к версии 2с SNMP.
В протоколе SNMP есть трапы (traps) и есть информы (informs). Отличаются они тем, что трапы посылаются на станцию менеджера без гарантии их доставки, а информы гарантированно доставляются. Ну, или не доставляться, но тогда отправитель об этом узнает. Для простоты, я и то и другое называю трапом. Так нам будет прощеi.
Какая информация посылается менеджеру в трапе (информе)? А посылаются следующие данные:
Теперь, наше повествование разделяется на направления. Первое направление: „Как нам послать SNMP trap ручками из командной строки„. Второе направлении „Как нам заставить агента SNMP посылать трапы когда что то идет не по плану“.
Посылаем руками
Однако, иногда хочется странного, например послать трап о том, что инопланетяне тырят SCSI винчестеры прямо из корзинки или о том, что серверную заливает водой, о чем вас предупредительно оповестил самодельный датчик, которые весит на COM порту. Понятное дело, в стандартных MIB о таких странных ситуациях не упоминается. Поэтому, можно использовать произвольную последовательность цифирек для обозначения нового в мире события. Например:
И что характерно, это будет работать. В логе появится такая бредятинка:
В то же время, крутые администраторы должны все делать правильно, самодокументируемо, в соответствии с требованиями IETF и других компетентных организаций. Поэтому, будем описывать наши новые OID в своем собственном MIB файле.
Здесь определяется enterptise с номером 10050 и ему даеся имя aliensattack. После этого вводятся две ветки: одна для трапов (начало и конец атаки), другая для OID дополнительной информации (атака через двери или это вовсе не инопланетяне).
Скажу честно, в формате MIB файла я понимаю мало. Поэтому внимательно изучив MIB файлы из стандартной поставки net-snmp, я сделал этот пример который работает, но кристальной ясности во всех его ключевых словах я не достиг.
Дальше! Укладываем этот файл с именем ALLIENSATTACK-MIB.txt в какой нибудь каталог поближе и запоминаем, что с этого момента все программы имеющие отношения к SNMP (snmpd, snmptrapd, snmpinform) мы запускаем с поддержкой этого MIB. Тоесть, к командной строке добавляем параметры
Знак „+“ перед именем MIB (не файла с MIB, а именно имя MIB), значит, что MIB будет добавлен к загружаемым по умолчанию.
Посылаем автоматически
Способ #2. Пишем скрипт, который проверяет системные параметры и посылает трап на станцию менеджера. Пишется на shell, perl или на любом известном языке.
Способ #1. Наиболее интересный. В 5-й версии net-snmp появиласть поддержка модуля DISMAN-EVENT-MIB котрый умеет отсылать сообщения при некоторых условиях. Но это уже другая история.
Разное
Для успешного администрирования сети необходимо знать состояние каждого ее элемента с возможностью изменять параметры его функционирования. Обычно сеть состоит из устройств различных производителей и управлять ею было бы нелегкой задачей если бы каждое из сетевых устройств понимало только свою систему команд. Поэтому возникла необходимость в создании единого языка управления сетевыми ресурсами, который бы понимали все устройства, и который, в силу этого, использовался бы всеми пакетами управления сетью для взаимодействия с конкретными устройствами.
Для того, чтобы проконтролировать работу некоторого устройства сети, необходимо просто получить доступ к его MIB, которая постоянно обновляется самим устройством, и проанализировать значения некоторых переменных.
Важной особенностью протокола SNMP является то, что в нем не содержатся конкретные команды управления устройством. Вместо определения всего возможного спектра таких команд, безусловно загромоздившего бы сам протокол, который считается все-таки простым, определены переменные MIB, переключение которых воспринимается устройством как указание выполнить некоторую команду. Таким образом удается сохранить простоту протокола, но вместе с этим сделать его довольно мощным средством, дающим возможность стандартным образом задавать наборы команд управления сетевыми устройствами. Задача обеспечения выполнения команд состоит, таким образом, в регистрации специальных переменных MIB и реакции устройства на их изменения.
Как происходит адресация в MIB к некоторой ее переменной? По своей структуре MIB представляет из себя дерево, изображенное на рисунке 1.
Каждому элементу соответствует численный и символьный идентификатор. В имя переменной включается полный путь до нее от корневого элемента root. Например, время работы устройства с момента перезагрузки хранится в переменной, находящейся в разделе system под номером 3 и называется sysUpTime. Соответственно, имя переменной будет включать весь путь: iso(1).org(3).dod(6).internet(1).mgmt(2).mib-2(1).system(1).sysUpTime(3); или на языке чисел: 1.3.6.1.2.1.1.3. Следует заметить, что при этом узлы дерева разделяются точками. Существует стандартная ветвь MIB, относящаяся к разделу управления mgmt, которую обычно поддерживают все сетевые устройства.
Наряду с этим каждый производитель или организация может разработать свой собственный набор переменных и «подвесить» их к дереву MIB. Однако, это делается только в строго определенном ее месте. Если организация разрабатывает свою базу MIB, то на стадии экспериментов переменные могут помещаться в раздел experimental. Однако для официальной регистрации структуры данных некоторой организации ей необходимо получить собственный номер в разделе private-enterprises. Все переменные, адресуемые вниз по ветви данной организации, относятся к продуктам только данного производителя.
Как уже было сказано, каждое сетевое устройство содержит в себе информацию, необходимую для управления им. Эта информация некоторым образом размещена в регистрах устройства. Как же обеспечивается доступ к этой информации некоторой сетевой рабочей станции, выполняющей задачу управления сетью? Для обработки запросов управляющей станции, приходящих в виде SNMP пакетов, служит специальный модуль, называемый Агентом Управления. Агент принимает SNMP пакеты и выполняет соответствующие им действия, т.е. посылает значение запрашиваемой переменной, устанавливает значение переменных, выполняет периодическое обновление информации MIB, выполняет в ответ на установку соответствующих переменных некоторые операции. В роли Управляющей Станции может выступать рабочая станция администратора сети, если на ней запустить какой-либо пакет управления, поддерживающий протокол SNMP. Он позволяет администратору получать конкретную информацию о какой либо стороне функционирования элементов сети, например на уровне карты Ethernet, либо протокола EGP. Примерами таких программ можно назвать Sun NetManager фирмы Sun Microsystems, ориентированный на операционную систему Solaris, и пакет SNMPc фирмы Castle Rock Computing, разработанный для системы Windows. Оба пакета позволяют строить карту сети и работать непосредственно с MIB какого-либо ее узла. Имея подобное мощное средство, администратору сети достаточно открыть документацию по MIB конкретного устройства, например маршрутизатора cisco, и изучить возможности управления, заложенные в нее разработчиками. Так, например, чтобы управлять маршрутизатором cisco, можно войти на него (сделать login пользователем root) и получить on-line доступ к его командам управления. А можно сконфигурировать на данном маршрутизаторе SNMP агента и выполнять все те же команды и получать те же результаты путем работы с переменными его MIB. Как пример такой операции можно просто перегрузить маршрутизатор путем изменения одной переменной его MIB. При этом существуют отдельные команды для загрузки системы из flash-памяти, NVRAM, или TFTP файла.
При помощи SNMP можно выполнять различные тесты функциональных возможностей сетевых устройств, определенные опять же на самих устройствах. Это бывает полезно, поскольку просто наблюдение статистики зачастую не дает полной картины происходящего. Так, например, для раздела, относящегося к интерфейсам Ethernet, определен тест TDR (Time-domain reflectometry), позволяющий определять приблизительное расстояние до повреждения в коаксиальном кабеле. Для того, чтобы запустить TDR тест необходимо установить значение переменной ifExtnsTestTypе (1.3.6.1.2.1.12.2.1.4), содержащей тип выполняемого теста, так, чтобы она содержала идентификатор теста TDR в MIB: 1.3.6.1.2.1.10.7.6.1. Результатом теста будет, во-первых, значение переменной ifExtnsTestResult (1.3.6.1.2.1.12.2.1.5), характеризующей исход теста:
На основании вышеизложенного остается сделать вывод о том, что администратор сети может найти в лице протокола SNMP хорошего помощника, имея полный доступ к описаниям переменных MIB различных сетевых устройств и мощный пакет, который бы облегчал работу с громоздкими именами переменных в SNMP.
SNMP-trap (ловушки SNMP)
Программа LANState может принимать такие сообщения и сигнализировать о них несколькими различными способами. Для включения возможности принятия SNMP-trap необходимо выбрать пункт главного меню SNMP | SNMP-ловушки (trap). В появившемся окне следует задать условия отбора (фильтр) сообщений, либо оставить включенным по умолчанию параметр Принимать все сообщения от SNMP-устройств, и нажать кнопку Включить приём сообщений от SNMP-устройств. Номер порта 162 является стандартным и изменять его рекомендуется только в тех случаях, когда вы уверенны, что отправка сообщений от устройства будет происходить на какой-либо другой порт (задается в настройках самого SNMP-устройства).
Рис 1. Окно Ловушка SNMP.
Рис 2. Окно Параметры условия.
После этого, программа в каждом полученном сообщении будет искать заданную переменную и в случае ее обнаружения сигнализировать.
Программа выполняет те же действия, что и в функции мониторинга устройств.
Скачайте бесплатную 30-дневную версию прямо сейчас и попробуйте!
Примеры использования SNMP
Используемые порты: 161/UDP,162/UDP
SNMP безопасность
К сожалению, наиболее часто используемая версия 1 протокола SNMP имеет довольно слабую схему аутентификации, основанную на использовании “строки сообщества”. Это связано с тем, что фиксированный пароль передается по сети в открытом виде. По возможности старайтесь использовать 2-ю версию протокола SNMP, которая поддерживает схему проверки подлинности выборки на основе алгоритма MD5 и позволяет ограничить доступ к различной управляющей информации.
Протокол SNMP версии 1 не подходит для использования в общедоступной сети Интернет по следующим причинам:
Структура MIB. SMI. OID
MIB файл содержит информацию о различных объектах удаленного устройства. MIB определяет текстовое имя управляемого объекта и объясняет его значение.
В агенте может быть реализовано много MIB, но во всех агентах реализована конкретная MIB, которая называется MIB-II (RFC 1213). Этот стандарт определяет переменные для таких параметров, как статистика интерфейса (скорость интерфейса, MTU, количество отправленных октетов1, количество принятых октетов и т.д.), а также различных параметров, относящихся к самой системе (местоположение системы, контактные сведения и т.д.) Основная цель MIB-II – предоставить общую управляющую информацию TCP/IP.
Управляемые объекты (OID) организованы в древовидную иерархию. Сосредоточимся на субдереве so(1).org(3).dod(6).internet(1), которое в форме OID представляется как 1.3.6.1 или iso.org.dod.internet. У каждого управляемого объекта есть цифровой идентификатор OID и соответствующее текстовое имя. Обозначение в виде разделенных точками чисел используется для представления управляемого объекта внутри агента; текстовое имя, как доменное имя, соответствующее IP- адресу, избавляет людей от необходимости запоминать длинные, сложные строки чисел.
В настоящее время в субдереве private(4) есть одна ветвь enterprises(1). Она используется для того, чтобы предоставить производителям аппаратного и программ ного обеспечения возможность определить свои собственные частные объекты для любого типа аппаратных или программных средств, которыми они хотят управлять при помощи SNMP. SMI Network Management Private Enterprise Codes: D-Link (171), Cisco(9), Microsoft (311).
MIB-II
Основная цель MIB-II – предоставить общую управляющую информацию TCP/IP. MIB-II – очень важная группа управления, потому что каждое устройство, поддерживающее SNMP, должно также поддерживать MIB-II.
MIB-II определена как iso.org.dod.internet.mgmt.1, или 1.3.6.1.2.1.
Описание групп MIB-II | |||
---|---|---|---|
№ | Имя субдерева | OID | Описание |
1 | system | 1.3.6.1.2.1.1 | Определяет список объектов, относящихся к работе системы, таких как время работы системы, контактная информация и имя системы |
2 | interfaces | 1.3.6.1.2.1.2 | Отслеживает состояние каждого интерфейса на управляемой системе. Группа interfaces от слеживает, какие интерфейсы работают и не работают, и такие параметры, как количество отправленных и полученных октетов, ошибок и потерь пакетов и т. д. |
3 | at | 1.3.6.1.2.1.3 | Группа трансляции адресов (at) исключена и предоставляетcя только для обратной совместимости |
4 | ip | 1.3.6.1.2.1.4 | Отслеживает многие аспекты IP, в том числе IP-маршрутизацию |
5 | icmp | 1.3.6.1.2.1.5 | Отслеживает ошибки, потери пакетов ICMP и т. д. |
6 | tcp | 1.3.6.1.2.1.6 | Помимо прочего отслеживает состояние TCP- соединения (например, closed (закрыто), listen(порт прослушивается), synSent (отправлен пакет syn) и т. д.) |
7 | udp | 1.3.6.1.2.1.7 | Отслеживает статистику UDP, входящие и исходящие датаграммы и т. д. |
8 | egp | 1.3.6.1.2.1.8 | Отслеживает различную статистику протокола EGP (Exterior Gateway Protocol) и хранит таблицу соседей EGP |
9 | cmot | ||
10 | transmission | 1.3.6.1.2.1.10 | В настоящее время в этой группе не определено объектов, но другие MIB для конкретных каналов передачи определяются при помощи этого субдерева |
11 | snmp | 1.3.6.1.2.1.11 | Измеряет производительность базовой реализации SNMP на управляемой системе и отслеживает такие параметры, как количество отправленных и полученных SNMP-пакетов |
Пакет Net-SNMP
Инсталляция Net-SNMP Ubuntu
Для загрузки и подключения стандартных MIB к SNMP клиенту выполним две команды
Инсталляция Net-SNMP CentOS
Утилита Net-SNMP snmpusm применяется для управления пользователями SNMPv3.Три базовых операции SNMP – это snmpget, snmpset и snmpwalk. Их назначение понятно из названия: snmpget считывает значение параметра с управляемого устройства, snmpset устанавливает значение параметра на устройстве, а snmpwalk считывает с устройства часть дерева MIB.
PHP and SNMP
Чтобы при помощи языка PHP (SNMP Функции) взаимодействовать с протоколом SNMP, должны быть установлены дополнительный пакеты:
Понимание SNMP
Howard
Купить FS коммутаторы для компаний
SNMP (Simple Network Management Protocol) представляет собой стандартный интернет-протокол для управления устройствами в IP-сетях на основе архитектур TCP/UDP, который позволяет отслеживать управляемые сетевые устройства, включая маршрутизаторы, сетевые коммутаторы, серверы, принтеры и другие устройства, которые включены через IP через единую систему управления/программное обеспечение.
Как работает SNMP?
Чтобы понять принципы работы SNMP, важно сначала узнать модель управления SNMP.
Компоненты SNMP
В модели управления протокола SNMP всегда присутствуют три компонента:
Базы данных MIB представляют собой набор вопросов, которые SNMP-менеджер может задать агенту. Агент собирает эти данные локально и сохраняет их, как определено в MIB. Таким образом, диспетчер SNMP должен знать эти стандартные и частные вопросы для каждого типа агента;
SNMP-агент (то, что в других сетевых системах называется сервером) — это часть программного обеспечения, которое поставляется вместе с сетевым устройством (маршрутизатором, коммутатором, сервером, Wi-Fi и т. д.), Которое при включении и настройке выполняет всю тяжелую работу для Менеджера путем компиляции и хранения всех данных из своего данное устройство в базу данных (MIB);
MIB относится к базе данных, которая содержит переменные, поддерживаемые управляемыми устройствами (информация может запрашиваться и устанавливаться агентом).
Менеджер (NMS) — это просто часть программного обеспечения, которое установлено на компьютере (которое при объединении называется Network Management System), которое проверяет устройства в вашей сети, как часто вы указываете информацию.
SNMP принципы работы
Здесь используется SNMPv2c для объяснения принципов работы SNMP. Он выполняет следующие операции для извлечения данных, изменения переменных объекта SNMP и отправки уведомлений.
Get | GetNext | GetBulk | Set | Response | Trap | Inform |
---|---|---|---|---|---|---|
Это запрос, отправленный NMS на управляемое устройство. И это выполняется для получения одного или нескольких значений из MIB. | Это похоже на GET. Но обычно он получает значение следующего OID (Идентификатор объекта) в дереве MIB. | Он используется для получения массы данных из большой таблицы MIB. | Он выполняется NMS для изменения значения управляемого устройства. | Он выполняется NMS для изменения значения управляемого устройства. Он выполняется агентом в ответ на операции GetRequest, GetNextRequest, GetBulkRequest и SetRequest. | Эта операция инициируется агентом. Он используется для уведомления NMS о ошибке или событии, которое происходит на управляемом устройстве. | Эта операция инициируется агентом. Это похоже на TRAP, но после того, как агент отправит запрос на информирование, NMS должна отправить пакет InformResponse в качестве ответа агенту. |
Обратите внимание, что SNMPv1 не поддерживает операции GetBulk и Inform.
На рисунке 2 показан процесс Get/GetNext/GetBulk/Set приложения SNMPv2c.
Когда NMS отправляет агенту пакет запроса Get/GetNext/GetBulk/Set, агент сначала аутентифицирует версию SNMP и имя сообщества. Затем, когда аутентификация успешна, агент отправляет соответствующее значение в NMS как пакет ответа. Если агент не может получить соответствующее значение, он возвращает сообщение об ошибке в NMS. Обратите внимание, что операция GetBulk эквивалентна последовательным операциям GetNext. Пользователь может установить количество операций GetNext, включенных в операцию GetBulk, без повторного выполнения операции GetNext.
На рисунке 3 показан процесс Trap/Inform приложения SNMPv2c.
Общие ЧАВО и решения
1. Как настроить SNMP?
SNMP использует центральный компьютер с программным обеспечением SNMP для управления сетевыми коммутаторами. Сегодня большинство сетевых коммутаторов на рынке, будь то гигабитные коммутаторы или коммутаторы 40G, поддерживают SNMP. SNMP предоставляет унифицированный и простой способ управления этими коммутаторами. Взяв в качестве примера конфигурацию SNMPv2c, процесс включает:
A) Настроить IP-адреса на компьютерах и управляемых коммутаторах.
C) Настроить права доступа, чтобы компьютеры могли управлять назначенными коммутаторами..
D) Проверить результат конфигурации.
Для получения более подробной информации о конфигурации SNMP, посетите Конфигурация SNMP на коммутаторах серии FS 3900, пожалуйста..
2. NMS не удалось получить Trap.
В конфигурации по умолчанию не все Trap включены. В системном представлении пользователи могут: