Management Information Base

Management Information Base (MIB, база управляющей информации) - виртуальная база данных, используемая для управления объектами в сети связи. Наиболее часто это понятие связывают с Simple Network Management Protocol (SNMP), но также оно используется в более широком смысле - в контексте модели управления сети OSI/ISO. Хотя термин MIB предназначен для обозначения всей доступной информации об объекте, он также часто используется для обозначения конкретного подмножества, которое правильнее называть MIB-модулем.

Объекты в MIB, согласно RFC 2578, определяются с помощью подмножества "Structure of Management Information Version 2" (SMIv2) стандарта ASN.1. Программное обеспечение, выполняющее разбор, называется MIB-компилятором.

База данных имеет иерархическую (древовидную) структуру. К записям можно обратиться через идентификаторы объектов (англ. object identifier, OID). Базы MIB обсуждаются в документациях RFC, в частности в RFC 1155 и сопутствующих ему RFC 1213 и RFC 1157.

Abstract Syntax Notation One (ASN.1) 

В области телекоммуникаций и компьютерных сетей Abstract Syntax Notation One — это язык для описания абстрактного синтаксиса данных, используемый OSI. Стандарт записи, описывающий структуры данных для представления, кодирования, передачи и декодирования данных. Он обеспечивает набор формальных правил для описания структуры объектов, которые не зависят от конкретной машины.

ASN.1 является ISO- и ITU-T-совместимым стандартом, первоначально был определён в 1984 году в рамках CCITT X.409:1984. Из-за широкого применения ASN.1 в 1988 году перешёл в свой собственный стандарт X.208. Начиная с 1995 года, существенно пересмотренный ASN.1 описывается стандартом X.680.

Адаптированное подмножество SMI (Structure of Management Information) указано в SNMP для определения множества связанных объектов MIB; такие множества называются модулями MIB.

В России ASN.1 стандартизирован по ГОСТ Р ИСО/МЭК 8824-1-2001 и ГОСТ Р ИСО/МЭК 8825-93.

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

Управляемый объект (также MIB-объект, объект или просто MIB) является одной из конкретных характеристик управляемого устройства. Управляемые объекты состоят из одного или более экземпляра объекта (определяется их OID-ами), которые по существу являются переменными.
 
Есть два типа управляемых объектов:
 Скалярные (scalar) объекты определяют один экземпляр объекта.
 Табличные (tabular) объекты определяют несколько связанных экземпляров объектов, сгруппированных в таблицы MIB.

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

Идентификатор объекта (OID) однозначно определяет управляемый объект в иерархии MIB.

SNMPv1 и SMI-специфичные типы данных 
Первая версия SMI (SMIv1) определяет использование нескольких специфичных для SMI типов данных, которые разделены на две категории:
 Простые типы данных
 Типы данных Application-wide

Простые типы данных 
В SNMPv1 SMI определены три простых типа данных:

 Целочисленный тип данных (integer data type) - целое число со знаком в диапазоне от -2^31 до 2^31-1.
 Строки октетов (Octet strings) - упорядоченные последовательности, содержащие от 0 до 65535 октетов.
 OID-ы (Object IDs) поступают из множества всех выделенных идентификаторов объектов согласно правилам, указанным в ASN.1.

Типы данных Application-wide 
В SNMPv1 SMI существуют следующие типы данных application-wide:

 Сетевые адреса (Network addresses) представляют собой адреса из определённого семейства протоколов. SMIv1 поддерживает только 32-битные (IPv4) адреса (SMIv2 обычно использует строки октетов для представления адресов. В SMIv1 тип данных - явные IPv4-адреса.)
 Счётчики (Counters) - неотрицательные целые числа, увеличивающиеся до тех пор, пока не достигнут максимального значения, после чего сбрасываются до нуля. SNMPv1 задаёт 32 бита в качестве размера счётчика.
 Датчики (Gauges) - неотрицательные целые числа, которые могут уменьшаться или увеличиваться между определёнными значениями максимума и минимума. Всякий раз, когда системное свойство, представленное датчиком, выходит за эти пределы, значение самого датчика будет меняться в установленных пределах, как указано в RFC 2578.
 Отметка времени (Time ticks) представляет прошедшее с какого-то события время, измеряемое в сотых долях секунды.
 Opaques - произвольная кодировка, используемая для передачи произвольных строк информации, которые не удовлетворяют строгой типизации данных в SMI.
 Целочисленные (Integers) - представляют информацию в виде целых чисел со знаком. Этот тип данных переопределяет целочисленный тип данных, который имел произвольную точность в ASN.1, но ограниченную точность в SMI.
 Беззнаковые целочисленные (Unsigned integers) - информация в виде беззнаковых целых чисел, полезная если все значения всегда неотрицательны. Этот тип данных переопределяет целочисленный тип данных, который имел произвольную точность в ASN.1, но ограниченную точность в SMI.

MIB-таблицы SNMPv1 
SNMPv1 SMI определяет сильноструктурированные таблицы, которые используются для группировки экземпляров табличного объекта (т.е. объекта, содержащего несколько переменных). Таблицы состоят из нуля и более строк, которые индексируются так, чтобы SNMP мог получить или изменить целую строку одной командой Get, GetNext или Set.

SMIv2 и структура управляющей информации 
Вторая версия SMI (SMIv2) описана в RFC 2578 и RFC 2579. Она улучшает и дополняет специфичные для SMIv1 типы данных, такие как строки битов, сетевые адреса и счётчики. Битовые строки определены только в SMIv2 и содержат нуль и более битов, определяющих значение. Сетевые адреса представляют собой адрес из определённого семейства протоколов. Счётчики - неотрицательные целые числа, увеличивающиеся до тех пор, пока не достигнут максимального значения, после чего сбрасываются до нуля. В SMIv1 был определен размер счётчика в 32 бита. В SMIv2 определены и 32-, и 64-битные счётчики.

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

Обновление баз MIB 
Базы MIB периодически обновляются, чтобы добавить новые функциональные возможности, устранить неясности и исправить недостатки. Эти изменения проводятся в соответствии с разделом 10 RFC 2578. Примером базы MIB, которая была обновлена много раз, является важный набор объектов, который был первоначально определен в RFC 1213 "MIB-II". Эта MIB с тех пор была разделена и теперь может быть найдена в таких MIB, как RFC 4293 "Management Information Base for the Internet Protocol (IP)", RFC 4022 "Management Information Base for the Transmission Control Protocol (TCP)", RFC 4113 "Management Information Base for the User Datagram Protocol (UDP)", RFC 2863 "The Interfaces Group MIB" и RFC 3418 "Management Information Base (MIB) for the Simple Network Management Protocol (SNMP)".

Индексы баз MIB 
Существует большое количество баз MIB, определённых как организациями по стандартизации (например, IETF), так и частными предприятиями и другими организациями.

Базы MIB от IETF 
Базы MIB содержатся в 318 RFC из первых 5000 RFC от IETF. Данный список — лишь малая часть написанных баз MIB:

 SNMP - SMI:RFC 1155 — Определяет структуру управляющей информации (SMI)
 MIB-I: RFC 1156 — Исторически сложилось, что используется с CMOT, не используется с SNMP
 SNMPv2-SMI: RFC 2578 — Структура управляющей информации, версия 2 (SMIv2)
 MIB-II: RFC 1213 — База управляющей информации для сетевого управления в TCP/IP
 SNMPv2-MIB: RFC 3418 — База управляющей информации (MIB) для SNMP
 TCP-MIB: RFC 4022 — База управляющей информации для TCP
 UDP-MIB: RFC 4113 — База управляющей информации для UDP
 IP-MIB: RFC 4293 — База управляющей информации для IP
 IF-MIB: RFC 2863 — Группа интерфейсов MIB

Базы MIB от IEEE 
IETF и IEEE согласились передать базы MIB, связанные с работой IEEE (например, Ethernet) соответствующим рабочим группам в IEEE. Это процесс ещё не закончен и лишь малая часть его выполнена.

 Сетевой мост
 IEEE 802.1ap-2008 объединила связанные с сетевыми мостами RFC от IEEE и IETF в восемь связанных баз MIB.

Внешние ссылки 
 ByteSphere's MIB Database , свободное онлайн-хранилище для тысяч баз SNMP MIB.
 MIBSearch , свободная поисковая система для файлов баз SNMP MIB.
 SimpleWeb MIBs 
  .
  .
 ipMonitor's SNMP Center 
 MIB Depot  — обширный список баз MIB
 PEN (Private Enterprise Number) registry 
 PEN request authority 
 В.Г. Олифер, Н.А. Олифер - Компьютерные сети. Принципы, технологии, протоколы 
 MIB Search — Поиск по MIB.

MIB Browsers 
  SnmpB: Графический браузер MIB с открытым движком для Windows, MacOSX и Linux.
  mbrowse:  Графический браузер SNMP MIB для Linux, основанный на GTK+ и Net-SNMP.
  BlackOwl MIB Browser: Графический браузер MIB для Windows и Linux, который может извлекать базы MIB из RFC и отображать графики.
  SMI-Mib Browser:  Графический браузер MIB — активная разработка этого проекта прекратилась в 2010 году.
  MBJ: Графический браузер MIB, написан на Java.
  JMibBrowser: Графический браузер MIB, написан на Java. Может посылать SNMP-запросы и динамически загружать данные базы MIB.
 NetDecision MIB Browser: Графический браузер MIB, написан на C++. Полностью поддерживает SNMPv1,SNMPv2C и SNMPv3, также позволяет загрузку любого MIB-файла, совместимого с SMIv1 или SMIv2, MIB Browsing, обход дерева MIB, работающий с таблицами MIB tables и исполняющий все прочие связанные с SNMP операции.

Сетевые протоколы
Администрирование компьютерных сетей