Management Information Base

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

Объекты в структуре Management Information Base определяются с помощью подмножества нотации Abstract Syntax Notation One (ASN.1, абстрактная синтаксическая нотация один), называемого «Structure of Management Information Version 2» (SMIv2, структура управляющей информации, версия 2)[2]. Программное обеспечение, осуществляющее анализ этих структур, называется компилятором MIB.

База данных организована иерархически (в виде дерева); к каждому элементу можно обратиться с помощью идентификатора объекта (OID, object identifier). Описание базы и формальных правил её построения приводится в спецификациях интернет-стандартов (RFC).

ASN.1

Abstract Syntax Notation One (ASN.1, абстрактная синтаксическая нотация один) — стандарт и гибкая формальная система, предназначенная для описания структур данных, используемых для представления, кодирования, передачи и декодирования данных. ASN.1 задаёт формальные правила, описывающие структуру объектов, независимо от способов их реализации и кодирования на уровне конкретных компьютеров, что позволяет устранять неоднозначности описания.

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

Для использования в SNMP адаптировано подмножество ASN.1, известное как SMI (Structure of Management Information). Оно предназначено для определения наборов связанных объектов MIB, которые называются MIB-модулями.

Иерархия MIB

Структура Management Information Base (MIB) может быть представлена в виде дерева с безымянным корнем, уровни которого закрепляются за различными организациями. Идентификаторы верхнего уровня принадлежат различным организациям-стандартам, более низкие уровни выделяются ассоциированными организациями. Такой подход позволяет реализовать управление на всех уровнях абстракции модели OSI, вплоть до приложений (таких, как базы данных, электронная почта, моделирование Java). Для каждой предметной области могут быть определены собственные MIB и операции по управлению.

Управляемый объект (managed object, также называется MIB-объект или просто объект) — это одна из характеристик управляемого устройства. Управляемые объекты состоят из одного или нескольких экземпляров объекта, которые представляют собой переменные. Идентификатор объекта (OID) однозначно определяет управляемый объект в иерархии MIB.

Существуют два типа управляемых объектов:

  • Скалярные объекты определяют один экземпляр объекта.
  • Табличные объекты определяют несколько связанных экземпляров, сгруппированных в таблицы MIB.

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

Типы данных SMI и SNMPv1

Первая версия структуры управляющей информации (SMIv1, Structure of Management Information Version 1) определяет ряд специфических для SMI типов данных, подразделяемых на две группы: простые типы данных и типы данных, характерные для приложений.

Простые типы данных

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

  • Тип integer — знаковое целое число в диапазоне от −231 до 231−1.
  • Octet string — упорядоченные последовательности от 0 до 65 535 октетов.
  • Object ID — идентификаторы объектов, выделяемые по правилам ASN.1.

Общие типы данных для приложений

В SMI SNMPv1 используются такие приложные типы данных:

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

Таблицы SNMPv1 MIB

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

SMIv2

SMIv2 расширяет и дополняет набор типов SMIv1, включая битовые строки, сетевые адреса и новые разновидности счётчиков. Битовые строки определяются только в SMIv2 и представляют собой набор из нуля или более именованных битов. Сетевые адреса — это значения, относящиеся к определённому семейству протоколов. Счётчики — неотрицательные числа, которые увеличиваются вплоть до максимального значения, после чего снова обнуляются; SMIv1 использовал только 32-битные счётчики, а в SMIv2 определены и 32-, и 64-битные счётчики.

В SMIv2 также определены информационные модули, объединяющие связанные определения. Выделяют три типа таких модулей: MIB-модули, декларации соответствия и декларации возможностей:

  • MIB-модули содержат определения взаимосвязанных управляемых объектов.
  • Декларации соответствия (compliance statements) формально фиксируют набор управляемых объектов, обязательных для реализации стандарта.
  • Декларации возможностей (capability statements) позволяют агентам указывать точный объём поддерживаемых объектов; система управления может с учётом этих деклараций корректировать своё взаимодействие с агентом.

Пример

Пример дерева SNMP MIB по RFC 3418:

└── SNMPv2-MIB(.1.3.6.1.2.1)
  └── system(.1)
    ├── sysDescr (.1)
    ├── sysObjectID (.2)
    ├── sysUpTime (.3)
    ├── sysName (.5)
    ├── sysContact (.4)
    ├── sysLocation (.6)
    ├── sysServices (.7)
    ├── sysORLastChange (.8)
    └── sysORTable (.9)
      └── sysOREntry (.1)
        ├── sysORIndex (.1)
        ├── sysORID (.2)
        ├── sysORDescr (.3)
        └── sysORUpTime (.4)

Чтобы получить значение sysName, можно выполнить команду:

# snmpwalk 10.32.13.36 -v2c -c public sysName
SNMPv2-MIB::sysName.0 = STRING: SOME_HOSTNAME

или

# snmpwalk 10.32.13.36 -v2c -c public .1.3.6.1.2.1.1.5
SNMPv2-MIB::sysName.0 = STRING: SOME_HOSTNAME

или

# snmpwalk 10.32.13.36 -v2c -c public .1.3.6.1.2.1.1.5.0
SNMPv2-MIB::sysName.0 = STRING: SOME_HOSTNAME

Индекс

Поддерживаемые IETF

В первых 5000 RFC организации IETF опубликовано 318 документов, содержащих MIB. Вот лишь малая часть таких MIB-модулей:

  • SNMP — SMI — определяет структуру информации управления (SMI)
  • MIB-I — исторически использовался с CMOT; не применяется с SNMP
  • SNMPv2-SMI — структура управляющей информации, версия 2 (SMIv2)
  • MIB-II — база управляющей информации для управления сетями TCP/IP
  • SNMPv2-MIB — база управляющей информации для SNMP
  • TCP-MIB — база управляющей информации для управления TCP
  • UDP-MIB — база управляющей информации для управления UDP
  • IP-MIB — база управляющей информации для протокола IP
  • IF-MIB — группа интерфейсных объектов MIB
  • ENTITY-MIB — объект распределённых компонентов (Entity) MIB, версия 3
  • ENTITY-STATE-MIB — MIB состояния распределённых компонентов
  • ALARM-MIB — база управляющей информации событий (Alarm)
  • Fibre Channel
    • FC-MGMT-MIB — управление Fibre Channel
    • FIBRE-CHANNEL-FE-MIB — объекты управления для Fabric Element Fibre Channel
  • HPR-IP-MIB — объекты управления для APPN/HPR в IP-сетях

Поддерживаемые IEEE

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

  • Сетевой мост
    • IEEE 802.1ap-2008[4] объединяет IEEE- и IETF-стандарты по мостовым MIB в восемь взаимосвязанных модулей.
  • Управляющие информационные модули (MIB) / IEEE 802.1

Примечания

Литература

  • ITTU-T Recommendation X.680 — Abstract Syntax Notation One (ASN.1): Specification of basic notation (англ.). ITU. Дата обращения: 21 июня 2024.
  • Marshall T. Rose (1994). “The Simple Book: An Introduction to Management for SNMP and OSI”. Prentice Hall [англ.]. ISBN 0-13-177254-6.