SNMP — протокол управления прикладного уровня. С его помощью сетевые устройства обмениваются данными. По сути, SNMP-протокол — это свод соглашений, который входит в состав модели TCP/IP.
Архитектура
SNMP состоит из:
- управляющей станции с менеджером;
- агентов;
- управляемых компонентов.
Станция с менеджером следит за удаленными устройствами, собирает данные от агентов, контролирует производительность и рисует графики для наглядного представления состояния.
Агенты делятся на мастеров и субагентов. Мастер следит за запросами сетевого менеджера и пересылает их субагентам. После этого он собирает ответы субагентов и отправляет их сетевому менеджеру. Если данные недоступны или произошла ошибка, присылает соответствующее уведомление менеджеру.
Субагенты — программы, которые вендор поставляет вместе с устройством. Ими оснащены все управляемые компоненты.
Управляемый компонент — устройство или программное обеспечение с субагентом, подсоединенное к сети. Коммутаторы, маршрутизаторы, серверы, антивирусы — все они могут быть управляемыми компонентами.
Сведения обо всех устройствах собраны в базе — SNMP MIB. У каждого из них своя таблица, из которой сетевой менеджер узнает, какую информацию можно запросить: например, состояние картриджей от принтера или объем трафика от маршрутизатора.
Все объекты внутри MIB оснащены SNMP OID — уникальным идентификационным номером. Он есть у каждой таблицы, столбца, значения. Часть данных в OID рассказывает о производителе устройства.
Принцип работы
SNMP предназначался для управления сетью. Но гибкая структура сделала его удобным инструментом для мониторинга устройств и настройки сети через единую консоль.
Работа протокола строится на взаимодействии менеджеров с агентами. Они связываются по протоколу UDP, также может быть использован TCP или протокол MAC-уровня.
Юнит информации (PDU) включает несколько полей. Среди них:
- Версия протокола.
- Community — последовательность, по которой определяется групповая принадлежность.
- Статус-код — описывает состояние. Если ошибок нет, приходит ноль, а если есть — цифра, которая относится к соответствующей ошибке.
- Индекс переменной, в работе которой зафиксирована ошибка.
Дефолтно специальный SNMP PORT — 161 и 162.
Запросы приходят на 161 порт. Отсюда менеджеру уходят ответы. Для идентификации указывается ID. Это помогает быстро связать ответы менеджера и запросы агента.
Порт 162 принимает ловушки (SNMP Trap) — это такой способ общения. Агент применяет ловушки, чтобы проинформировать менеджера о событии.
Благодаря этому с менеджера снимается дополнительная нагрузка. Он и так следит за несколькими устройствами и управляет несколькими компонентами одновременно. Из-за этого менеджер не всегда ловит ошибки. Механизм ловушек устраняет этот недостаток. После получения ловушки менеджер решает, что нужно сделать.
Версии
Существует три версии протокола.
- SNMP v1 — появилась 40 лет назад, до сих пор успешно применяется. Предлагает самые простые настройки — своеобразный SNMP для чайников.
- SNMP v2с — появилась в начале 90-х годов. В этой версии добавился запрос GetBulk. Также разработчики реализовали второй тип ловушки — Inform. В отличие от Trap, здесь отправляется подтверждение о получении.
- SNMP v3 — появилась в конце 90-х годов. В этой версии протокол защитили криптографически.
Безопасность
Когда появилась первая версия SNMP, риск неавторизованного доступа оставался крайне низким. Поэтому разработчики не сильно переживали о защите соединения. Это привело к тому, что у злоумышленников оставалось много возможностей для несанкционированного доступа к сетевой инфраструктуре.
Самые продвинутые механизмы защиты реализовали в третьей версии. Здесь применяется модель защиты на основе пользователей (User-based Security Model). И для агента, и для менеджера можно изменить параметры аутентификации, безопасности, конфиденциальности.
В v3 также используется модель VACM (View-based Access Control Model). В ней для разных групп менеджеров можно установить разные права доступа.
В первой и второй версиях протокола используется модель безопасности Community-based Security. По сути, это идентификатор пользователя и пароль, которые посылаются вместе с запросом в строке сообщества. Если строка Community неверна, агент отвергает запрос.
Применение
Вот лишь несколько сценариев, в которых SNMP приносит пользу администраторам:
- Удаленный сброс паролей.
- Мониторинг пропускной способности сети.
- Перенастройка IP-адресов.
- Отправка запроса для проверки сетевых устройств.
- Получение оповещений о нехватке свободного пространства на диске.
- Контроль нагрузки на процессор, получение уведомлений о превышении допустимых значений.
- Получение оповещений о неисправностях в работе сетевого устройства.
- Логирование ошибок.
Стороннее ПО также помогает добавлять сведения через кастомные SNMP OID и администрировать облачные сервисы, заказанные на Amazon Web Services, Microsoft Azure и других платформах.
Установка и настройка на примере CentOS 7
Обновите систему:
yum update
Установите SNMP, используя snmp net:
yum install net-snmp net-snmp-utils
Сделайте копию файла конфигурации:
mv /etc/snmp/snmpd.conf /etc/snmp/snmpd.conf.orig
Отредактируйте настройки. Откройте snmpd.conf в редакторе nano:
nano /etc/snmp/snmpd.conf
Добавьте строки:
community public
syslocation MyLocation
syscontact admin@example.com
Укажите реальную локацию и контакт.
Включите автозапуск и перезапустите сервис:
systemctl enable snmpd.service
systemctl start snmpd
Убедитесь, что сервис запустился:
systemctl status snmpd
Опросите агент локально, используя утилиту snmpwalk:
snmpwalk -v 2c -c public -O e 127.0.0.1
Опросите сервер:
snmpwalk -v2c -c public localhost system
Ненамного сложнее SNMP настраивается на Windows. Подробная инструкция есть в документации Microsoft.
Заключение
SNMP — простой протокол для обмена информацией между устройствами. Он помогает настроить связь между оборудованием, которое выпущено различными вендорами и использует различное ПО. SNMP-мониторинг даже спустя несколько десятилетий после появления протокола остается одним из лучших решений для контроля сети.
От qwert
- 1
Рекомендуемые комментарии
Комментариев нет
Создайте учетную запись или войдите, чтобы комментировать
Вы должны быть пользователем, чтобы оставить комментарий
Создать аккаунт
Зарегистрируйтесь для получения аккаунта. Это просто!
Зарегистрировать аккаунтВойти
Уже зарегистрированы? Войдите здесь.
Войти