Больше не нужно искать работу мечты — присоединяйтесь к команде Клауда

Протокол управления SNMP

Команда Timeweb Cloud
Команда Timeweb Cloud
Наши инженеры, технические писатели, редакторы и маркетологи
28 декабря 2021 г.
812
5 минут чтения
Средний рейтинг статьи: 5

SNMP — протокол управления прикладного уровня. С его помощью сетевые устройства обмениваются данными. По сути, SNMP-протокол — это свод соглашений, который входит в состав модели TCP/IP.

Протокол Управления Snmp (1)

Архитектура

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 и администрировать облачные сервисы, заказанные на timeweb.cloud, 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-мониторинг даже спустя несколько десятилетий после появления протокола остается одним из лучших решений для контроля сети.

28 декабря 2021 г.
812
5 минут чтения
Средний рейтинг статьи: 5
Пока нет комментариев