Примеры использования SNMP
SNMP (Simple Network Management Protocol — простой протокол управления сетью) — это протокол управления сетями связи на основе архитектуры TCP/IP, седьмого уровня (уровень приложений) семиуровневой модели OSI. SNMP дает возможность станциям управления сетью читать и изменять настройки шлюзов, маршрутизаторов, коммутаторов и других сетевых устройств. Используйте SNMP для настройки системных характеристик для правильной работы,контроля характеристик и обнаружения потенциальных проблем в коммутаторе, группе коммутаторов или сети.
Используемые порты: 161/UDP,162/UDP
SNMP-trap (ловушки SNMP) Traps — это аварийные сообщения, сообщающие о событиях, происходящих в коммутаторе. События могут быть такими серьезными, как перезапуск (кто-нибудь случайно выключил коммутатор) или менее, как например, изменение статуса порта. Коммутатор создает сообщения «traps» и отправляет их к «trap» получателю (или сетевому менеджеру). Обычные «traps» содержат сообщение об ошибке аутентификации Authentication Failure , изменении топологии сети Topology Change и широковещательном шторме Broadcast\Multicast Storm.
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
Для регулирования устройств в IP-сетях нередко применяется SNMP. Эта аббревиатура расшифровывается как Simple Network Management Protocol. По сути, это стандартизированный интернет-протокол, который помогает отследить используемые сетевые устройства: маршрутизаторы, адаптеры, коммутаторы и т. д. Основное условие, чтобы оборудование было включено через IP и использовали определенное программное обеспечение.
Разберемся, как работает протокол SNMP, из каких компонентов он состоит и какие версии используются.
Подробнее о протоколе

SNMP является протоколом прикладного уровня, который необходим для обмена информацией между несколькими сетевыми машинами. Это не просто приложение, а свод используемых правил, который является частью модели TCP/IP. Протокол контролируется и управляется IETF.
При помощи протокола сисадмин может выполнять мониторинг сети, чтобы оценить ее производительность и изменить конфигурацию устройств. Поэтому SNMP стал довольно распространен и его применяют в сетях любого типа и объема. Причем чем больше сеть, тем лучше удается использовать функционал приложения. Он позволяет не только просматривать, но и управлять сетью через единый интерфейс.
Основное преимущество протокола – наличие интерфейса с автоматическими оповещениями и другими командами. Это избавляет от необходимости ручного ввода всех команд.
Архитектура
Разобравшись в вопросе, что такое SNMP, можно перейти к рассмотрению его архитектуры. Она состоит из следующих компонентов:
- сетевая станция управления (управляемая сетевым менеджером);
- управляемые компоненты;
- агенты.
1. Сетевая станция управления.
Подробнее поговорим о каждом элементе. Начать стоит с сетевой станции управления, или Network Management Station. Именно NMS позволяет отслеживать используемые устройства, анализировать сведения, собранные мастер-агентами, определять производительность системы и создавать графические отчеты на основе полученных данных. Встроенный менеджер используется для прямой связи с агентами протокола.
2. Агенты.
Эта группа компонентов включает в себя ряд подгрупп. Начнем с мастер-агентов, которые служат для связи сетевых менеджеров и субагентов. Они анализируют поступающие запросы и отсылают их субагентам, затем получают информацию, создают ответ и отсылают его менеджеру.
Если запрос некорректен, неверно сформулирован или информация закрыта для доступа, то мастер-агент отправляет уведомление об этом.
Другой вид агента – это субагент. Он представляет собой специальное программное обеспечение, которое поставляется вендором вместе с сетевой машиной. Субагент получает запросы от мастер-агента и потом обратно пересылает ему собранную информацию. Соответствующий субагент используется вместе с отдельным управляемым компонентом.
3. Управляемые компоненты.
Представляют собой подключенные к сети компьютеры и устройства или специальное ПО, имеющее встроенный субагент. К числу устройств могут относиться коммутаторы, маршрутизаторы и серверы, а также современные гаджеты. Что касается ПО с субагентами, то к нему относят антивирусные программы, серверы резервного копирования и т. д.
Также в качестве компонентов протокола SNMP стоит выделить MIB и OID. Первый термин обозначает базу управляющей информации, в ней содержатся сведения об оборудовании. Каждая сетевая машина имеет свою таблицу с MIB-данными, в ней – данные о состоянии картриджа (у принтеров), о поступающем трафике (у коммутатора) и т. д.
OID представляет собой идентификатор объекта. MIB снабжается своим уникальным ID, который и позволяет идентифицировать устройство. OID существует в числовом виде, по сути – это числовой аналог существующего пути к файлу.
Принципы работы
Теперь подробнее поговорим о назначении и принципе действия протокола SNMP. Изначально протокол разрабатывался как инструмент для управления глобальной сетью. Однако благодаря гибкой структуре удалось приспособить SNMP для всех устройств сети и осуществлять контроль, наблюдение и настройки при помощи единой консоли. Все это послужило распространению протокола и его активному применению.
Работа SNMP строится на обмене информацией между менеджерами и агентами. Этот процесс осуществляется посредством протокола UDP. Реже используется TCP или протокол MAC-уровня.
В SNMP используется семь различных вариантов PDU, которые отвечают за получение данных с устройства, изменение или присваивание новых сведений, уведомления об ошибках, извлечение данных и т. д.
PDU состоит из конечного набора полей, в которых прописывается нужная информация. В частности, это поля:
- Версия – указывает на используемую версию протокола.
- Community (то есть пароль) – это определенная последовательность, которая описывает принадлежность SNMP к группе. Каждый тип PDU имеет свой идентификатор запроса (например, Set или Responde). Этот идентификатор помогает связать запрос и ответ.
- Статус ошибки – число, которое описывает характер возникшей проблемы. Например, 0 обозначает отсутствие ошибок, а цифры 1–5 указывают на конкретный тип.
- Индекс ошибки – индекс переменной, к которой относится полученная ошибка.
Функционирование SNMP подразумевает использование специальных сетевых портов. По умолчанию – это UDP-порты 161 и 162. Запросы поступают на порт SNMP 161. Далее с него отправляется ответ менеджеру. При отправке запроса он идентифицируется при помощи ID, что в дальнейшем позволяет связать запрос менеджера с поступившим ответом.
Порт 162 отвечает за прием ловушек агента. При использовании DLTS и TLS агент использует для пересылки сообщений порт 10162, а менеджер – 10161.
Мы подошли еще к одному важному элементу, который необходим для функционирования SNMP. Речь о ловушках, которые представляют собой способ коммуникации. Агент использует ловушки (Trap) в тех случаях, когда нужно сообщить менеджеру о каком-либо событии. Делается это по той причине, что менеджеры нередко отвечают за определенное количество устройств и несколько управляемых компонентов, поэтому не всегда могут вовремя отследить возникновение ошибки.
При получении ловушки, то есть уведомления, менеджер может выбрать нужное действие. Уведомления, которые присылает ловушка, обозначаются цифрами от 0 до 6. Код ошибки указывает на группу, к которой относится неполадка.
В SNMP используется два вида ловушек – помимо Trap, это еще и Inform. Разница в том, что второй тип ловушек предполагает подтверждение менеджера о ее получении.
Особенности применения

SNMP позволяет сисадмину работать с различными приложениями и облачными сервисами. Протокол имеет функционал для выполнения следующих операций:
- перенастройка IP-адресов;
- отправка запросов для контроля устройств;
- сброс используемых паролей;
- отслеживание нагрузки на сервера;
- сбор информации о текущих ошибках;
- мониторинг сообщений о неисправностях;
- добавление сведений через сторонние OID и многое другое.
Существующие версии
Разработано три версии протокола, которые получили соответствующие названия – SNMPv1, SNMPv2c и SNMPv3. Все они активно используются даже сегодня, однако самой распространенной остается вторая версия. Расскажем о каждой разновидности подробнее:
- Версия 1. Появилась еще в 80-е годы прошлого столетия. Ее главная особенность – это простота настройки, для использования протокола потребуется заполнить только строку пароля.
- Версия 2. Стала использоваться спустя десятилетие после первой версии SNMP. Помимо стандартного функционала первой версии, новая – включила в себя ловушку Inform и дополнительный запрос GetBulk. Также была существенно доработана безопасность инструмента. Ключевая особенность – наличие двух способов взаимодействия с устройствами, использующими SNMPv1, – через прокси-агенты или двуязычную систему управления. Поддержка этой версии SNMP выполняется до сих пор, так как она наиболее практична в применении.
- Версия 3. Появилась в конце 90-х годов. В отличие от предыдущей модификации, в ней имелась криптографическая защита, позволившая упростить удаленную настройку и управление объектами.
Вопросы безопасности
Протокол SNMP создавался в те времена, когда угроза взлома и несанкционированного доступа к данным была практически нулевой. Поэтому разработчики не уделяли этой проблеме особого внимания. Версия SNMPv1 практические не имеет защиты от взлома, чем могут воспользоваться злоумышленники.
Вторая версия разрабатывалась с учетом анализа предыдущих недочетов и ошибок протокола. Эта версия SNMP стала более безопасной, однако на деле ее сложно назвать самой стабильной и надежной.
Практически все ошибки безопасности удалось решить только в третьей версии. Для обеспечения безопасности в протоколе применяется несколько моделей: Community-based, Party-based и User-based Security.
Выводы
Сегодня протокол SNMP является наиболее простым и эффективным методом сбора и передачи данными между сетевыми устройствами, мониторинга и управления их работой. Особенно актуальным применение такого протокола является при совмещении устройств, функционирующих на разном ПО и выпущенных разными вендорами. SNMP прост в работе, достаточно надежный, а самое главное – полностью бесплатный для использования. Этим не может похвастать практически ни один существующий набор правил.
Остались вопросы по работе SNMP? Специалисты Xelent обязательно ответят на них – оставьте заявку на сайте или свяжитесь с нами по указанным телефонам.