SNMP — протокол управления прикладного уровня. С его помощью сетевые устройства обмениваются данными. По сути, SNMP-протокол — это свод соглашений, который входит в состав модели TCP/IP.
SNMP состоит из:
Станция с менеджером следит за удаленными устройствами, собирает данные от агентов, контролирует производительность и рисует графики для наглядного представления состояния.
Агенты делятся на мастеров и субагентов. Мастер следит за запросами сетевого менеджера и пересылает их субагентам. После этого он собирает ответы субагентов и отправляет их сетевому менеджеру. Если данные недоступны или произошла ошибка, присылает соответствующее уведомление менеджеру.
Субагенты — программы, которые вендор поставляет вместе с устройством. Ими оснащены все управляемые компоненты.
Управляемый компонент — устройство или программное обеспечение с субагентом, подсоединенное к сети. Коммутаторы, маршрутизаторы, серверы, антивирусы — все они могут быть управляемыми компонентами.
Сведения обо всех устройствах собраны в базе — SNMP MIB. У каждого из них своя таблица, из которой сетевой менеджер узнает, какую информацию можно запросить: например, состояние картриджей от принтера или объем трафика от маршрутизатора.
Все объекты внутри MIB оснащены SNMP OID — уникальным идентификационным номером. Он есть у каждой таблицы, столбца, значения. Часть данных в OID рассказывает о производителе устройства.
SNMP предназначался для управления сетью. Но гибкая структура сделала его удобным инструментом для мониторинга устройств и настройки сети через единую консоль.
Работа протокола строится на взаимодействии менеджеров с агентами. Они связываются по протоколу UDP, также может быть использован TCP или протокол MAC-уровня.
Юнит информации (PDU) включает несколько полей. Среди них:
Дефолтно специальный SNMP PORT — 161 и 162.
Запросы приходят на 161 порт. Отсюда менеджеру уходят ответы. Для идентификации указывается ID. Это помогает быстро связать ответы менеджера и запросы агента.
Порт 162 принимает ловушки (SNMP Trap) — это такой способ общения. Агент применяет ловушки, чтобы проинформировать менеджера о событии.
Благодаря этому с менеджера снимается дополнительная нагрузка. Он и так следит за несколькими устройствами и управляет несколькими компонентами одновременно. Из-за этого менеджер не всегда ловит ошибки. Механизм ловушек устраняет этот недостаток. После получения ловушки менеджер решает, что нужно сделать.
Существует три версии протокола.
Когда появилась первая версия SNMP, риск неавторизованного доступа оставался крайне низким. Поэтому разработчики не сильно переживали о защите соединения. Это привело к тому, что у злоумышленников оставалось много возможностей для несанкционированного доступа к сетевой инфраструктуре.
Самые продвинутые механизмы защиты реализовали в третьей версии. Здесь применяется модель защиты на основе пользователей (User-based Security Model). И для агента, и для менеджера можно изменить параметры аутентификации, безопасности, конфиденциальности.
В v3 также используется модель VACM (View-based Access Control Model). В ней для разных групп менеджеров можно установить разные права доступа.
В первой и второй версиях протокола используется модель безопасности Community-based Security. По сути, это идентификатор пользователя и пароль, которые посылаются вместе с запросом в строке сообщества. Если строка Community неверна, агент отвергает запрос.
Вот лишь несколько сценариев, в которых SNMP приносит пользу администраторам:
Стороннее ПО также помогает добавлять сведения через кастомные SNMP OID и администрировать облачные сервисы, заказанные на timeweb.cloud, Amazon Web Services, Microsoft Azure и других платформах.
Обновите систему:
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-мониторинг даже спустя несколько десятилетий после появления протокола остается одним из лучших решений для контроля сети.