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

Вступление

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

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

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

Базовые концепции

SNMP - это протокол, который реализован на прикладном уровне сетевого стека (нажмите здесь, чтобы узнать о https://www.digitalocean.com/community/tutorials/an-introduction-to-networking-terminology-interfaces-and-protocols #NetworkLayers [сетевые слои]). Протокол был создан как способ последовательного сбора информации из самых разных систем. Несмотря на то, что он может использоваться в связи с разнообразным массивом систем, метод запроса информации и пути к соответствующей информации стандартизированы.

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

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

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

SNMP менеджеры

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

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

Почти все команды, определенные в протоколе SNMP (мы подробно рассмотрим их позже), предназначены для sent компонентом менеджера. К ним относятся + GetRequest +, + GetNextRequest +, + GetBulkRequest +, + SetRequest +, + InformRequest + и + Response +. В дополнение к этому менеджер также предназначен для ответа на сообщения + Trap и` + Response`.

Агенты SNMP

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

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

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

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

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

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

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

Чтобы обратиться к конкретному узлу дерева, вы должны проследить путь от безымянного корня дерева до рассматриваемого узла. Происхождение его родительских идентификаторов (чисел или строк) связано, начиная с самого общего, для формирования адреса. Каждое соединение в иерархии представлено точкой в ​​этой нотации, так что адрес в конечном итоге представляет собой последовательность строк ID или чисел, разделенных точками. Весь этот адрес известен как идентификатор объекта или * 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.internet + является OID, который определяет интернет-ресурсы. + 2 + или + mgmt +, которые следуют в нашем базовом пути, предназначены для подкатегории управления. + 1 + или + mib-2 + в соответствии с этим определяет спецификацию MIB-2.

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

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

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

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

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

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

  • * Get *: сообщение Get отправляется менеджером агенту для запроса значения определенного OID. На этот запрос приходит ответное сообщение, которое отправляется обратно менеджеру с данными.

  • * GetNext *: сообщение GetNext позволяет менеджеру запрашивать следующий последовательный объект в MIB. Это способ, которым вы можете пересмотреть структуру MIB, не беспокоясь о том, какие OID запрашивать.

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

  • * GetBulk *: этот менеджер для запросов агента действует так, как если бы было сделано несколько запросов GetNext. Ответ обратно менеджеру будет содержать как можно больше данных (в пределах ограничений, установленных запросом), насколько позволяет пакет.

  • * Ответ *: Это сообщение, отправленное агентом, используется для отправки любой запрошенной информации обратно менеджеру. Он служит как транспортом для запрашиваемых данных, так и подтверждением получения запроса. Если запрошенные данные не могут быть возвращены, ответ содержит поля ошибок, которые могут быть установлены с дополнительной информацией. Ответное сообщение должно быть возвращено для любого из указанных выше запросов, а также для сообщений Inform.

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

  • * Inform *: Чтобы подтвердить получение ловушки, менеджер отправляет агенту сообщение 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 в вашей собственной инфраструктуре.

В next руководство, мы ' Обсудим, как установить и настроить компоненты, необходимые для использования SNMP в ваших системах.

Related