Введение в SNMP (простой протокол сетевого управления)

Вступление

Большая часть системного администратора собирает точную информацию о ваших серверах и инфраструктуре. Существует множество инструментов и возможностей для сбора и обработки этого типа информации. Многие из них построены на технологии SNMP .

SNMP означает простой протокол управления сетью. Это способ, которым серверы могут обмениваться информацией о своем текущем состоянии, а также канал, через который администратор может изменять заранее определенные значения. Хотя сам протокол очень прост, структура программ, реализующих SNMP, может быть очень сложной.

В этом руководстве мы познакомим вас с основами протокола SNMP. Мы рассмотрим его использование, способ, которым протокол обычно используется в сети, различия в его версиях протокола и многое другое.

Основные понятия

SNMP — это протокол, реализованный на прикладном уровне сетевого стека (нажмите здесь, чтобы узнать о сетевых слоях ). Протокол был создан как способ сбора информации из самых разных систем последовательным образом. Хотя он может использоваться в связи с разнообразным набором систем, стандартизован метод запроса информации и пути к соответствующей информации.

Существует несколько версий протокола SNMP, и многие сетевые аппаратные устройства реализуют некоторую форму доступа SNMP. Наиболее широко используемой версией является SNMPv1, но она во многих отношениях небезопасна. Его популярность в значительной степени проистекает из ее вездесущности и долгого времени в дикой природе. Если у вас нет веских причин, мы рекомендуем использовать SNMPv3, который обеспечивает более продвинутые функции безопасности.

В общем, сеть, профилируемая SNMP, будет состоять главным образом из устройств, содержащих SNMP- агентов . Агент — это программа, которая может собирать информацию о части оборудования, организовывать ее в предопределенные записи и отвечать на запросы с использованием протокола SNMP.

Компонент этой модели, запрашивающий агентов для информации, называется менеджером SNMP . Эти машины обычно имеют данные обо всех устройствах с поддержкой SNMP в своей сети и могут выдавать запросы на сбор информации и устанавливать определенные свойства.

Менеджеры SNMP

SNMP-менеджер — это компьютер, настроенный для опроса агента SNMP для получения информации. Компонент управления, когда только обсуждает его основные функции, на самом деле намного менее сложный, чем конфигурация клиента, поскольку компонент управления просто запрашивает данные.

Менеджером может быть любая машина, которая может отправлять запросы запроса агентам SNMP с правильными учетными данными. Иногда это реализуется как часть пакета мониторинга, тогда как в других случаях это администратор, использующий некоторые простые утилиты для быстрого запроса.

Почти все команды, определенные в протоколе SNMP (мы рассмотрим их подробнее позже), предназначены для отправки компонентом менеджера. К ним относятся GetRequestGetNextRequestGetBulkRequestSetRequestInformRequest, и Response. В дополнение к этому менеджер также предназначен для реагирования на сообщения Trapи Responseсообщения.

Агент SNMP

Операторы SNMP выполняют основную часть работы. Они отвечают за сбор информации о локальной системе и хранение их в формате, который может быть запрошен. Обновление базы данных, называемой «информационной базой управления» или MIB .

MIB — это иерархическая, предварительно определенная структура, в которой хранится информация, которую можно запросить или установить. Это доступно для хорошо сформированных запросов SNMP, исходящих от хоста, который прошел проверку подлинности с помощью правильных учетных данных (диспетчер SNMP).

Агент-агент настраивает, какие менеджеры должны иметь доступ к своей информации. Он также может выступать в качестве посредника для передачи информации о устройствах, к которым он может подключиться, которые не настроены для трафика SNMP. Это обеспечивает большую гибкость в доступе ваших компонентов в Интернете и SNMP.

Агент SNMP реагирует на большинство команд, определенных протоколом. К ним относятся GetRequestGetNextRequestGetBulkRequestSetRequestи InformRequest. Кроме того, агент предназначен для отправки Trapсообщений.

Понимание информационной базы управления

Наиболее сложной частью системы SNMP для понимания является, вероятно, MIB , или информационная база управления. MIB — это база данных, которая соответствует стандарту, которым придерживаются менеджер и агенты. Это иерархическая структура, которая во многих областях стандартизирована на глобальном уровне, но также достаточно гибкая, чтобы допускать специфические для поставщика дополнения.

Структура MIB лучше всего понимается как иерархическое дерево сверху вниз. Каждая ветвь, которая отключается, помечена как идентификационным номером (начиная с 1), так и идентифицирующей строкой, которая уникальна для этого уровня иерархии. Вы можете использовать строки и номера взаимозаменяемо.

Чтобы обратиться к определенному узлу дерева, вы должны проследить путь от неназванного корня дерева к рассматриваемому узлу. Строка его родительских идентификаторов (чисел или строк) накладывается вместе, начиная с самого общего, для формирования адреса. Каждое соединение в иерархии представлено точкой в ​​этой нотации, так что адрес заканчивается рядом строк или чисел идентификаторов, разделенных точками. Весь этот адрес известен как идентификатор объекта или OID .

Поставщики оборудования, которые внедряют агенты SNMP на своих устройствах, иногда реализуют собственные ветви с собственными полями и точками данных. Тем не менее, существуют стандартные ветви MIB, которые хорошо определены и могут использоваться любым устройством.

Стандартные ветви, которые мы будем обсуждать, будут находиться под одной и той же структурой дочерних ветвей. Эта ветвь определяет информацию, которая соответствует спецификации MIB-2, которая является пересмотренным стандартом для совместимых устройств.

Основной путь к этой ветке:

1.3.6.1.2.1

Это также может быть представлено в строках типа:

iso.org.dod.internet.mgmt.mib-2

Раздел 1.3.6.1или iso.org.dod.internetOID, который определяет интернет-ресурсы. 2Или mgmtчто следует в нашем базовом пути для подкатегории управления. В этом 1или в mib-2соответствии с этим определяется спецификация MIB-2.

Это отличный ресурс для ознакомления с деревом MIB . Эта конкретная страница представляет собой соединительные узлы на стыке, о котором мы говорили. Вы можете проверить, что далее вверх и вниз по дереву, проверив соответственно «начальную» и «вспомогательную» ссылки.

Другим подобным инструментом является SNMP Object Navigator, предоставляемый Cisco. Это можно использовать для детализации иерархии, чтобы найти нужную вам информацию. Похоже дерево обеспечивается SolarWinds.

В принципе, если мы хотим запросить наши устройства для получения информации, начнется большинство путей 1.3.6.1.2.1. Вы можете просматривать интерфейсы дерева, чтобы узнать, какая информация доступна для запроса и настройки.

Команды протокола SNMP

Одной из причин того, что SNMP было такое сильное принятие, является простота доступных команд. Операций для реализации или запоминания очень мало, но они достаточно гибкие, чтобы удовлетворить требованиям к утилите протокола.

Следующие PDU или блоки данных протокола описывают точные типы сообщений, которые разрешены протоколом:

  • Получить : сообщение Get отправляется менеджером агенту для запроса значения определенного OID. На этот запрос отвечает ответное сообщение, которое отправляется обратно менеджеру с данными.
  • GetNext : сообщение GetNext позволяет менеджеру запрашивать следующий последовательный объект в MIB. Это способ, которым вы можете пересечь структуру MIB, не беспокоясь о том, какие OIDs запрашивать.
  • Set : сообщение Set отправляется менеджером агенту, чтобы изменить значение, удерживаемое переменной в агенте. Это можно использовать для управления конфигурационной информацией или иным образом изменять состояние удаленных хостов. Это единственная операция записи, определенная протоколом.
  • GetBulk : этот менеджер для запроса агента функционирует так, как если бы было сделано несколько запросов GetNext. Ответ назад менеджеру будет содержать как можно больше данных (в пределах ограничений, заданных запросом), как позволяет пакет.
  • Ответ . Это сообщение, отправленное агентом, используется для отправки любой запрошенной информации менеджеру. Он служит как транспорт для запрашиваемых данных, так и подтверждение получения запроса. Если запрошенные данные не могут быть возвращены, ответ содержит поля ошибок, которые могут быть установлены с дополнительной информацией. Ответное сообщение должно быть возвращено для любого из вышеуказанных запросов, а также для сообщений Inform.
  • Ловушка : сообщение ловушки обычно отправляется агентом менеджеру. Ловушки — это асинхронные уведомления в том случае, если они незапрашиваются менеджером, получающим их. Они в основном используются агентами для информирования менеджеров о событиях, происходящих на их управляемых устройствах.
  • Информирование . Чтобы подтвердить получение ловушки, менеджер отправляет сообщение «Сообщить» агенту. Если агент не получает это сообщение, он может продолжить повторное отправку сообщения о ловушке.

Благодаря этим семи типам данных SNMP способен запрашивать и отправлять информацию о ваших сетевых устройствах.

Версии протокола

Протокол SNMP прошел множество изменений, поскольку он был впервые введен. Первоначальная спецификация была сформулирована в RFC 1065, 1066 и 1067 в 1988 году. По тому факту, что она была так долго, эта версия по-прежнему широко поддерживается. Однако в протоколе много проблем с безопасностью, включая аутентификацию в виде простого текста, поэтому его использование сильно обескуражено, особенно когда оно используется в незащищенных сетях.

Работа над версией 2 протокола была начата в 1993 году и предлагает некоторые существенные улучшения в более раннем стандарте. В эту версию включена новая модель безопасности на стороне, предназначенная для решения проблем безопасности, присущих предыдущей ревизии. Однако новая модель была не очень популярна, потому что ее было трудно понять и реализовать.

Из-за этого было создано несколько «побочных эффектов» версии 2, каждая из которых сохранила основную часть улучшений версии 2, но поменяла модель безопасности. В SNMPv2c была восстановлена ​​аутентификация на уровне сообщества, та же модель, что и в версии v1. Это была самая популярная версия протокола v2. Другая реализация, называемая SNMPv2u, использует пользовательскую безопасность, хотя это никогда не было очень популярным. Это позволило настроить параметры аутентификации для каждого пользователя.

В 1998 году третья (и текущая) версия протокола SNMP была введена как предложение спецификации. С точки зрения пользователя наиболее значимым изменением было принятие системы безопасности на основе пользователей. Он позволяет вам устанавливать требования к аутентификации пользователя в качестве одной из этих моделей:

  • NoAuthNoPriv : пользователи, подключающиеся к этому уровню, не имеют аутентификации и не сохраняют конфиденциальность сообщений, которые они отправляют и получают.
  • AuthNoPriv : подключения с использованием этой модели должны проходить проверку подлинности, но сообщения отправляются без какого-либо шифрования.
  • AuthPriv : требуется аутентификация и шифрование сообщений.

В дополнение к аутентификации был реализован механизм управления доступом, обеспечивающий гранулированный контроль над теми филиалами, к которым пользователь может получить доступ. Версия 3 также имеет возможность использовать безопасность, обеспечиваемую транспортными протоколами, такими как SSH или TLS.

Заключение

Теперь, когда у вас есть хорошее представление о том, как работает протокол, у вас есть основа, необходимая для реализации SNMP в вашей собственной инфраструктуре.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *