Snmp что это такое

Для чего предназначен SNMP: руководство по NMS, MIB, OID, ловушкам и агентам

Snmp что это такое. network switch ethernet art getty. Snmp что это такое фото. Snmp что это такое-network switch ethernet art getty. картинка Snmp что это такое. картинка network switch ethernet art getty

SNMP (Simple Network Management Protocol) представляет собой коммуникационный протокол, который позволяет отслеживать управляемые сетевые устройства, включая маршрутизаторы, коммутаторы, серверы, принтеры и другие устройства, которые включены через IP через единую систему управления / программное обеспечение.

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

Менеджер (NMS)

Компонент Manager — это просто часть программного обеспечения, которое установлено на компьютере (которое при объединении называется Network Management System), которое проверяет устройства в вашей сети, как часто вы указываете информацию.

Менеджер имеет правильные учетные данные для доступа к информации, хранящейся агентами (что объясняется в следующем разделе), а затем компилирует их в читаемом формате для сетевого инженера или администратора для мониторинга или диагностики проблем или узких мест. Некоторые программные пакеты NMS более сложны, чем другие, что позволяет настраивать сообщения электронной почты или SMS, чтобы предупредить вас о неисправных устройствах в вашей сети, в то время как другие просто опросили устройства для получения более общей информации.

Агенты

SNMP Agent — это часть программного обеспечения, которое поставляется вместе с сетевым устройством (маршрутизатором, коммутатором, сервером, Wi-Fi и т. Д.), Которое при включении и настройке выполняет всю тяжелую работу для Менеджера путем компиляции и хранения всех данных из своего данное устройство в базу данных (MIB).

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

Какие номера портов используют SNMP?

Управляемые сетевые устройства

Управляемые сетевые устройства, в том числе маршрутизаторы, коммутаторы, Wi-Fi, серверы (Windows и другие), настольные ПК, ноутбуки, принтеры, UPS и т. Д., Имеют встроенное в них программное обеспечение агента, которое должно быть либо включено, либо настроено, либо просто настроено правильно для того, чтобы быть опрошены NMS.

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

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

Чтобы упростить MIB, подумайте об этом так: MIB-файлы — это набор Вопросов, которые Менеджер может спросить у агента. Агент просто собирает эти вопросы и сохраняет их локально и обслуживает их по NMS по запросу.

Упрощенный пример работы MIB: NMS спросит у сетевого устройства вопрос, в данном случае, что такое ответ на вопрос 2?

Snmp что это такое. SNMP Diagram. Snmp что это такое фото. Snmp что это такое-SNMP Diagram. картинка Snmp что это такое. картинка SNMP Diagram

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

Скажем, мы хотим знать системное время работы устройства.

Распределение номера OID

MIBОбъект интересаПример
1.3.6.1.2.1.130
MIBОбъект SysUptimeОбразец

OID, Object Identifier — это просто номер, составленный MIB, объектом интереса и экземпляром. Каждый идентификатор является уникальным для устройства, и при запросе будет предоставлена ​​информация о том, что было запрошено OID.

Существует два типа OID:

Скаляр — это экземпляр одного объекта — например, имя поставщика устройства. Может быть только одно имя поставщика, так что это будет скалярный OID.

С другой стороны, Tabular может иметь несколько результатов для своего OID — например, процессор Quad Core приведет к 4 различным значениям ЦП.

Ловушки

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

Управляемые сетевые устройства будут иметь MIB Trap с заранее определенными условиями, встроенными в них. Крайне важно, чтобы система управления сетью объединяла эти MIB, чтобы получать любые ловушки, отправленные данным устройством.

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

Версии (v1, v2c, v3)

Этот протокол прошел несколько пересмотров на протяжении многих лет, начиная с 1988 года, начиная с версии 1. Теперь мы до версии 3, но большинство систем управления сетью поддерживают все версии протокола.

Версия 1

Версия 1 была первой версией протокола, определенного в RFC 1155 и 1157. Эта версия является самой простой из 3-х версий протокола и является самой небезопасной из-за ее простой текстовой аутентификации.

Версия 2 (или 2c)

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

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

Версия 3

Версия 3 протокола, дебютировавшая в 1998 году, сделала большие шаги для обеспечения безопасности набора протоколов, реализовав так называемую «пользовательскую безопасность». Эта функция безопасности позволяет вам устанавливать аутентификацию на основе требований пользователя. 3 уровня аутентификации:

Версия 3 протокола является наиболее безопасной из группы, но с добавленной безопасностью и шифрованием добавлена ​​конфигурация и сложность настройки и конфигурации. Но при работе с сетевыми устройствами более высокого уровня, которые содержат конфиденциальную информацию, вознаграждение перевешивает головную боль при правильной настройке.

Источник

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

Для регулирования устройств в IP-сетях нередко применяется SNMP. Эта аббревиатура расшифровывается как Simple Network Management Protocol. По сути, это стандартизированный интернет-протокол, который помогает отследить используемые сетевые устройства: маршрутизаторы, адаптеры, коммутаторы и т. д. Основное условие, чтобы оборудование было включено через IP и использовали определенное программное обеспечение.

Разберемся, как работает протокол SNMP, из каких компонентов он состоит и какие версии используются.

Подробнее о протоколе

Snmp что это такое. snmp 1. Snmp что это такое фото. Snmp что это такое-snmp 1. картинка Snmp что это такое. картинка snmp 1SNMP является протоколом прикладного уровня, который необходим для обмена информацией между несколькими сетевыми машинами. Это не просто приложение, а свод используемых правил, который является частью модели TCP/IP. Протокол контролируется и управляется IETF.

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

Основное преимущество протокола – наличие интерфейса с автоматическими оповещениями и другими командами. Это избавляет от необходимости ручного ввода всех команд.

Архитектура

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

1. Сетевая станция управления.

Подробнее поговорим о каждом элементе. Начать стоит с сетевой станции управления, или Network Management Station. Именно NMS позволяет отслеживать используемые устройства, анализировать сведения, собранные мастер-агентами, определять производительность системы и создавать графические отчеты на основе полученных данных. Встроенный менеджер используется для прямой связи с агентами протокола.

2. Агенты.

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

Если запрос некорректен, неверно сформулирован или информация закрыта для доступа, то мастер-агент отправляет уведомление об этом.

Другой вид агента – это субагент. Он представляет собой специальное программное обеспечение, которое поставляется вендором вместе с сетевой машиной. Субагент получает запросы от мастер-агента и потом обратно пересылает ему собранную информацию. Соответствующий субагент используется вместе с отдельным управляемым компонентом.

3. Управляемые компоненты.

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

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

OID представляет собой идентификатор объекта. MIB снабжается своим уникальным ID, который и позволяет идентифицировать устройство. OID существует в числовом виде, по сути – это числовой аналог существующего пути к файлу.

Принципы работы

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

Работа SNMP строится на обмене информацией между менеджерами и агентами. Этот процесс осуществляется посредством протокола UDP. Реже используется TCP или протокол MAC-уровня.

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

PDU состоит из конечного набора полей, в которых прописывается нужная информация. В частности, это поля:

Функционирование SNMP подразумевает использование специальных сетевых портов. По умолчанию – это UDP-порты 161 и 162. Запросы поступают на порт SNMP 161. Далее с него отправляется ответ менеджеру. При отправке запроса он идентифицируется при помощи ID, что в дальнейшем позволяет связать запрос менеджера с поступившим ответом.

Порт 162 отвечает за прием ловушек агента. При использовании DLTS и TLS агент использует для пересылки сообщений порт 10162, а менеджер – 10161.

Мы подошли еще к одному важному элементу, который необходим для функционирования SNMP. Речь о ловушках, которые представляют собой способ коммуникации. Агент использует ловушки (Trap) в тех случаях, когда нужно сообщить менеджеру о каком-либо событии. Делается это по той причине, что менеджеры нередко отвечают за определенное количество устройств и несколько управляемых компонентов, поэтому не всегда могут вовремя отследить возникновение ошибки.

При получении ловушки, то есть уведомления, менеджер может выбрать нужное действие. Уведомления, которые присылает ловушка, обозначаются цифрами от 0 до 6. Код ошибки указывает на группу, к которой относится неполадка.

В SNMP используется два вида ловушек – помимо Trap, это еще и Inform. Разница в том, что второй тип ловушек предполагает подтверждение менеджера о ее получении.

Особенности применения

Snmp что это такое. snmp 2. Snmp что это такое фото. Snmp что это такое-snmp 2. картинка Snmp что это такое. картинка snmp 2SNMP позволяет сисадмину работать с различными приложениями и облачными сервисами. Протокол имеет функционал для выполнения следующих операций:

Существующие версии

Разработано три версии протокола, которые получили соответствующие названия – SNMPv1, SNMPv2c и SNMPv3. Все они активно используются даже сегодня, однако самой распространенной остается вторая версия. Расскажем о каждой разновидности подробнее:

Вопросы безопасности

Протокол SNMP создавался в те времена, когда угроза взлома и несанкционированного доступа к данным была практически нулевой. Поэтому разработчики не уделяли этой проблеме особого внимания. Версия SNMPv1 практические не имеет защиты от взлома, чем могут воспользоваться злоумышленники.

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

Практически все ошибки безопасности удалось решить только в третьей версии. Для обеспечения безопасности в протоколе применяется несколько моделей: Community-based, Party-based и User-based Security.

Выводы

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

Остались вопросы по работе SNMP? Специалисты Xelent обязательно ответят на них – оставьте заявку на сайте или свяжитесь с нами по указанным телефонам.

Источник

Понимание SNMP

Snmp что это такое. 1 9 4. Snmp что это такое фото. Snmp что это такое-1 9 4. картинка Snmp что это такое. картинка 1 9 4

Howard

Snmp что это такое. fs %D1%81%D0%B5%D1%82%D0%B5%D0%B2%D1%8B%D0%B5 %D0%BA%D0%BE%D0%BC%D0%BC%D1%83%D1%82%D0%B0%D1%82%D0%BE%D1%80%D1%8B 2 1628134719. Snmp что это такое фото. Snmp что это такое-fs %D1%81%D0%B5%D1%82%D0%B5%D0%B2%D1%8B%D0%B5 %D0%BA%D0%BE%D0%BC%D0%BC%D1%83%D1%82%D0%B0%D1%82%D0%BE%D1%80%D1%8B 2 1628134719. картинка Snmp что это такое. картинка fs %D1%81%D0%B5%D1%82%D0%B5%D0%B2%D1%8B%D0%B5 %D0%BA%D0%BE%D0%BC%D0%BC%D1%83%D1%82%D0%B0%D1%82%D0%BE%D1%80%D1%8B 2 1628134719

Купить FS коммутаторы для компаний

SNMP (Simple Network Management Protocol) представляет собой стандартный интернет-протокол для управления устройствами в IP-сетях на основе архитектур TCP/UDP, который позволяет отслеживать управляемые сетевые устройства, включая маршрутизаторы, сетевые коммутаторы, серверы, принтеры и другие устройства, которые включены через IP через единую систему управления/программное обеспечение.

Snmp что это такое. 1570172195 yX2iluQgXw. Snmp что это такое фото. Snmp что это такое-1570172195 yX2iluQgXw. картинка Snmp что это такое. картинка 1570172195 yX2iluQgXw

Как работает SNMP?

Чтобы понять принципы работы SNMP, важно сначала узнать модель управления SNMP.

Компоненты SNMP

В модели управления протокола SNMP всегда присутствуют три компонента:

Базы данных MIB представляют собой набор вопросов, которые SNMP-менеджер может задать агенту. Агент собирает эти данные локально и сохраняет их, как определено в MIB. Таким образом, диспетчер SNMP должен знать эти стандартные и частные вопросы для каждого типа агента;

SNMP-агент (то, что в других сетевых системах называется сервером) — это часть программного обеспечения, которое поставляется вместе с сетевым устройством (маршрутизатором, коммутатором, сервером, Wi-Fi и т. д.), Которое при включении и настройке выполняет всю тяжелую работу для Менеджера путем компиляции и хранения всех данных из своего данное устройство в базу данных (MIB);

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

Менеджер (NMS) — это просто часть программного обеспечения, которое установлено на компьютере (которое при объединении называется Network Management System), которое проверяет устройства в вашей сети, как часто вы указываете информацию.

SNMP принципы работы

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

GetGetNextGetBulkSetResponseTrapInform
Это запрос, отправленный NMS на управляемое устройство. И это выполняется для получения одного или нескольких значений из MIB.Это похоже на GET. Но обычно он получает значение следующего OID (Идентификатор объекта) в дереве MIB.Он используется для получения массы данных из большой таблицы MIB.Он выполняется NMS для изменения значения управляемого устройства.Он выполняется NMS для изменения значения управляемого устройства. Он выполняется агентом в ответ на операции GetRequest, GetNextRequest, GetBulkRequest и SetRequest.Эта операция инициируется агентом. Он используется для уведомления NMS о ошибке или событии, которое происходит на управляемом устройстве.Эта операция инициируется агентом. Это похоже на TRAP, но после того, как агент отправит запрос на информирование, NMS должна отправить пакет InformResponse в качестве ответа агенту.

Обратите внимание, что SNMPv1 не поддерживает операции GetBulk и Inform.

На рисунке 2 показан процесс Get/GetNext/GetBulk/Set приложения SNMPv2c.

Snmp что это такое. 1570185085 9mGSXg1SSI. Snmp что это такое фото. Snmp что это такое-1570185085 9mGSXg1SSI. картинка Snmp что это такое. картинка 1570185085 9mGSXg1SSI

Когда NMS отправляет агенту пакет запроса Get/GetNext/GetBulk/Set, агент сначала аутентифицирует версию SNMP и имя сообщества. Затем, когда аутентификация успешна, агент отправляет соответствующее значение в NMS как пакет ответа. Если агент не может получить соответствующее значение, он возвращает сообщение об ошибке в NMS. Обратите внимание, что операция GetBulk эквивалентна последовательным операциям GetNext. Пользователь может установить количество операций GetNext, включенных в операцию GetBulk, без повторного выполнения операции GetNext.

На рисунке 3 показан процесс Trap/Inform приложения SNMPv2c.

Snmp что это такое. 1570185098 HpRV4hQqd4. Snmp что это такое фото. Snmp что это такое-1570185098 HpRV4hQqd4. картинка Snmp что это такое. картинка 1570185098 HpRV4hQqd4

Общие ЧАВО и решения

1. Как настроить SNMP?

SNMP использует центральный компьютер с программным обеспечением SNMP для управления сетевыми коммутаторами. Сегодня большинство сетевых коммутаторов на рынке, будь то гигабитные коммутаторы или коммутаторы 40G, поддерживают SNMP. SNMP предоставляет унифицированный и простой способ управления этими коммутаторами. Взяв в качестве примера конфигурацию SNMPv2c, процесс включает:

A) Настроить IP-адреса на компьютерах и управляемых коммутаторах.

C) Настроить права доступа, чтобы компьютеры могли управлять назначенными коммутаторами..

D) Проверить результат конфигурации.

Для получения более подробной информации о конфигурации SNMP, посетите Конфигурация SNMP на коммутаторах серии FS 3900, пожалуйста..

2. NMS не удалось получить Trap.

В конфигурации по умолчанию не все Trap включены. В системном представлении пользователи могут:

Источник

Почему SNMP это не очень просто?

Читаем документацию

The strategy implicit in the SNMP is that the monitoring of network state at any significant level of detail is accomplished primarily by polling for appropriate information on the part of the monitoring center(s). A limited number of unsolicited messages (traps) guide the timing and focus of the polling. Limiting the number of unsolicited messages is consistent with the goal of simplicity and
minimizing the amount of traffic generated by the network management function.

Для тех, у кого сложности с английским языком, имеется русский перевод:

Стратегия SNMP заключается в том, что мониторинг состояния сети с любым значимым уровнем детализации выполняется главным образом путем опроса из центра мониторинга. Ограниченное число незапрашиваемых сообщений (trap — прерывание) обеспечивает синхронизацию и активизирует опросы. Ограничение числа незапрашиваемых сообщений согласуется с задачами обеспечения простоты и минимизации трафика, создаваемого системой сетевого управления.

Из этих цитат, вполне понятно, что запросы с типами TRAP и INFORM это не наиболее часто используемая часть SNMP. Статью для начинающих было бы более уместно иллюстрировать примерами использования гораздо более ходовых GET-запросов.

Вообще я настоятельно рекомендую ознакомиться со всеми RFC, связанными с SNMP перед началом работы. Некоторые аспекты SNMP не очевидны и имеет смысл получить о них представление из первоисточника. Начать ознакомление с материалом можно с wiki.

Первые шаги

Помимо обязательного ознакомления с документацией, важно понимать, для чего мы все это делаем. В практике телекома, наиболее часто встречаются следующие задачи:

Задача SNMP-мониторинга выделяется на общем фоне требованием того, что опрашиваемого оборудования много или очень много. Предположим, что именно эту задачу нам и предстоит решать.

Начнем писать код. В тестовом примере мы обратимся по SNMP к собственному хосту и прочитаем значение переменной, заданной OID-ом 1.3.6.1.2.1.1.3.0 и содержащей значение uptime-а хоста:

Предварительно убедившись, что служба SNMP на нашем хосте работает и запустив код на выполнение, получим искомое значение uptime-а (времени безостановочной работы хоста с момента последней загрузки):

Используя это значение, можно осуществлять мониторинг. Если мы обнаруживаем, что значением уменьшилось — значит хост успел перезагрузиться с момента очередного опроса. Если хост не ответил в течение заданного таймаута (после нескольких автоматически сделанных попыток) это, скорее всего, означает, что хост не работает. Все просто?

Подсчитали — прослезились

Не совсем. Вспоминаем о том, что нам предстоит выполнять много запросов. Давайте промеряем, сколько запросов мы можем выполнить в секунду? Внесем небольшое исправление в код:

И запустим его на выполнение:

Почти две с половиной тысячи запросов в секунду! Неплохо?

Не будем торопиться. Мы отправляем запросы на Loopback интерфейс, а он работает несколько быстрее локальной сети. Посмотрим, сколько запросов в секунду мы успеем выполнить к другому хосту в нашей сети:

Не дотягиваем даже до двухсот. Вообще говоря, возможно, этого будет достаточно. Все зависит от задачи. Но мы проводили измерения при условии, что опрашиваемый хост доступен. Что будет если хост не ответит?

Будет несколько попыток доступа (в нашем коде мы задали 3) разделенных таймаутом (1000 мсек). Это означает, что за секунду мы не успеем выполнить ни одного запроса. Поскольку не отвечающий хост является не такой уж большой редкостью, это может стать большой проблемой в реальном проекте.

Идем на рекорд

Что с этим можно сделать? Если бы мы имели дело с каким либо синхронным протоколом (например telnet), особого выбора бы у нас не было. Для того, чтобы увеличить производительность, нам пришлось бы одновременно выполнять много потоков. Но SNMP асинхронен по своей природе! Не надо насильственно втискивать его в синхронные рамки.

Как перейти к асинхронному варианту? В нашем случае, довольно просто:

Запросы все равно что проваливаются в бездонную бочку! Разумеется, ответы будут приходить с задержкой, но приходить они будут тоже довольно быстро. Но как мы узнаем, что хост не ответил?

Очень просто, по истечении заданного количества попыток и таймаутов, SNMP4J вернет нам event, response в котором будет равен null:

Проанализируем результат выполнения:

Мы успеваем сформировать 9174 запросов в секунду, а опрашиваемое устройство успевает обрабатывать запросы со скоростью 283 запроса в секунду. На большую часть запросов оно ответить не успевает (соответственно в логе остаются сообщения «Timeout exceeded»). Разумеется, это не будет проблемой когда мы начнем опрашивать большое количество устройств с разумным интервалом между запросами.

Идем далее

Мы научились получать по SNMP значения скалярных переменных. Но, помимо них, в SNMP есть еще и таблицы (например таблица интерфейсов на устройстве). Как они устроены? Посмотрим MIB-browser:

Snmp что это такое. image loader. Snmp что это такое фото. Snmp что это такое-image loader. картинка Snmp что это такое. картинка image loader

В OID mgmt.interfaces (1.3.6.1.2.1.2) мы видим скалярную переменную ifNumber (1.3.6.1.2.1.2.1), содержащую количество интерфейсов в таблице, а также набор столбцов. Каждый из столбцов имеет собственный OID. Например столбец содержащий числовой индекс ifIndex интерфейса имеет OID = 1.3.6.1.2.1.2.2.1.1.

Для того, чтобы получить значение этой переменной, необходимо добавить к OID-у индекс интерфейса (например для интерфейса с индексом 123 OID = 1.3.6.1.2.1.2.2.1.1.123). Но как нам получить индексы интерфейсов? Они совсем не обязательно идут по порядку! Например, на моей машине, таблица интерфейсов выглядит так:

Snmp что это такое. image loader. Snmp что это такое фото. Snmp что это такое-image loader. картинка Snmp что это такое. картинка image loader

Именно для этой цели был придуман запрос GETNEXT. Передавая в этот запрос префикс OID-а, мы получаем OID и значение следующей (в лексикографическом порядке) за этим префиксом переменной. Это означает, что передав префиксы OID-ов столбцов таблицы, мы получим OID-ы и значения первой ее строки. Чтобы получить следующую строку, надо выполнить еще один запрос, передав в него OID-ы, полученные предыдущим запросом. И так до тех пор, пока мы не просмотрим всю таблицу.

Разумеется, с учетом всего сказанного выше, нам следует минимизировать количество запросов (это также необходимо с учетом того, что в рамках одного запроса, согласно RFC, предоставляются консистентные данные, если мы запросим индекс и имя интерфейса двумя последовательными запросами, они возможно не будут соответствовать друг-другу). В рамках 1-ой версии SNMP, мы должны читать всю строку таблицы одним запросом.

Следует заметить, что довольно удобно то, что OID-ы скалярных переменных также представляют собой префиксы. Например, для переменной sysUpTime OID, на самом деле равен 1.3.6.1.2.1.1.3. Мы можем передать его в GETNEXT запрос и получить OID = 1.3.6.1.2.1.1.3.0 вместе с соответствующим значением. Это дает возможность запрашивать скалярные значения вместе с значениями столбцов таблиц, в одном запросе.

Запустив этот код на выполнение, мы получим следующий response:

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

С учетом необходимости поддержки возможности асинхронной обработки, это может стать нетривиальной (но вполне решаемой) задачей. К счастью, во 2-ой версии SNMP были добавлены bulk-запросы, автоматизирующие получение табличных данных и минимизирующие количество отсылаемых при этом запросов. Внесем необходимые изменения в код:

Выполнив этот запрос, мы получаем все строки таблицы одним запросом:

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

О чем я не рассказал?

В этой статье я не рассказал о многом. Я не рассказал о том, как изменять значения некоторых (не всех) переменных SET-запросами. Я не рассказал о том, что такое TRAP-ы и для чего они нужны. Я ни сказал ни слова о том, как разрабатывать SNMP-агенты. И я ни одним словом не обмолвился о 3-ей версии SNMP и привнесенных ей изменениях.

Но даже того о чем я сказал вполне достаточно, чтобы понять, что SNMP — это не просто.

Источник

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

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