Введение

Протокол управления и мониторинга компьютерных сетей

Простой протокол управления сетью (SNMP) — это стандартный интернет-протокол для сбора и организации информации об управляемых устройствах в IP-сетях и для изменения этой информации с целью изменения поведения устройств. Устройства, которые обычно поддерживают SNMP, включают кабельные модемы, маршрутизаторы, коммутаторы, серверы, рабочие станции, принтеры и другие устройства. SNMP широко используется в управлении сетью для сетевого мониторинга. SNMP предоставляет управленческие данные в виде переменных на управляемых системах, организованных в базу управления информацией (MIB), которая описывает состояние и конфигурацию системы. К этим переменным можно удаленно обращаться (и в некоторых случаях изменять их) с помощью управляющих приложений. Было разработано и внедрено три значимые версии SNMP. SNMPv1 — это исходная версия протокола. Более поздние версии, SNMPv2c и SNMPv3, отличаются улучшенной производительностью, гибкостью и безопасностью. SNMP является компонентом стека протоколов Интернета, определенного организацией Internet Engineering Task Force (IETF). Он состоит из набора стандартов для управления сетью, включая протокол прикладного уровня, схему базы данных и набор объектов данных.

База данных управления

Агенты SNMP предоставляют управленческие данные на управляемых системах в виде переменных. Протокол также допускает выполнение задач активного управления, таких как изменения конфигурации, посредством удаленного изменения этих переменных. Переменные, доступные через SNMP, организованы в иерархической структуре. Сам протокол SNMP не определяет, какие переменные должна предоставлять управляемая система. Вместо этого SNMP использует расширяемую архитектуру, позволяющую приложениям определять собственные иерархии. Эти иерархии описываются базой управляющей информации (MIB). MIB описывают структуру управляющих данных подсистемы устройства и используют иерархическое пространство имен, содержащее идентификаторы объектов (OID). Каждый OID идентифицирует переменную, которую можно считать или изменить через SNMP. MIB используют нотацию, определенную в Structure of Management Information Version 2.0 (SMIv2), являющуюся подмножеством ASN.1.

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

На практике реализации SNMP часто поддерживают несколько версий: как правило, SNMPv1, SNMPv2c и SNMPv3.

Версия 2

SNMPv2, определенный в и , пересматривает версию 1 и включает улучшения в производительности, безопасности и обмене данными между управляющими системами. Он представил GetBulkRequest – альтернативу итеративным GetNextRequests для получения больших объемов управляющих данных в одном запросе. Новая система безопасности, основанная на группах, представленная в SNMPv2, которую многие считали излишне сложной, не получила широкого распространения. Протокол простого управления сетью на основе сообществ версии 2, или SNMPv2c, определен в . SNMPv2c включает в себя SNMPv2 без спорной новой модели безопасности SNMP v2, используя вместо этого простую схему безопасности на основе сообществ SNMPv1. Эта версия является одним из немногих стандартов, достигших уровня зрелости "Проект стандарта" IETF, и широко рассматривалась как фактический стандарт SNMPv2. Протокол простого управления сетью на основе пользователей версии 2, или SNMPv2u, определен в . Это компромиссное решение, призванное обеспечить большую безопасность, чем SNMPv1, но без чрезмерной сложности SNMPv2. Один из вариантов был коммерциализирован как SNMP v2*, а механизм в конечном итоге был принят в качестве одной из двух систем безопасности в SNMP v3.

64-битные счетчики

SNMP версия 2 вводит возможность использования 64-битных счетчиков данных. Версия 1 была разработана с использованием только 32-битных счетчиков, способных хранить целые значения от нуля до 4,29 миллиарда (точно 4 294 967 295). 32-битный счетчик версии 1 не может хранить максимальную скорость интерфейса 10 гигабит и выше, выраженную в битах в секунду. Аналогично, 32-битный счетчик, отслеживающий статистику для интерфейса 10 гигабит и выше, может вернуться к нулю менее чем за минуту, что может быть меньше интервала между опросами счетчика для получения его текущего состояния. Это приведет к потере или недействительным данным из-за незамеченного переполнения счетчика и искажению данных для отслеживания тенденций. 64-битный счетчик версии 2 может хранить значения от нуля до 18,4 квинтиллиона (точно 18 446 744 073 709 551 615) и поэтому в настоящее время маловероятно, что произойдет переполнение счетчика между опросами. Например, прогнозируется, что к 2025 году появится 1,6 терабитный Ethernet. 64-битный счетчик, увеличивающийся со скоростью 1,6 триллиона бит в секунду, сможет сохранять информацию для такого интерфейса в течение 133 дней без переполнения.

Совместимость SNMPv1 и SNMPv2c

SNMPv2c несовместим с SNMPv1 в двух ключевых областях: формате сообщений и протокольных операциях. Сообщения SNMPv2c используют отличные от SNMPv1 форматы заголовков и блоков данных протокола (PDU). Кроме того, SNMPv2c использует две протокольные операции, не определенные в SNMPv1. Для преодоления несовместимости, [стандарт/протокол] определяет две стратегии сосуществования SNMPv1/v2c: прокси-агенты и двуязычные системы управления сетью.

Прокси-агенты

Агент SNMPv2 может выступать в качестве прокси-агента от имени управляемых устройств SNMPv1. Когда SNMPv2 NMS отправляет команду, предназначенную для агента SNMPv1, она направляется прокси-агенту SNMPv2. Прокси-агент пересылает сообщения Get, GetNext и Set агенту SNMPv1 без изменений. Сообщения GetBulk преобразуются прокси-агентом в сообщения GetNext и затем пересылаются агенту SNMPv1. Кроме того, прокси-агент принимает и преобразует SNMPv1-трапы в SNMPv2-трапы, а затем пересылает их в NMS.

Двуязычная система управления сетью

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