TCP/IP Архитектура, протоколы, реализация (включая IP версии 6 и IP Security)
Шрифт:
■ Набор операций, которые могут быть выполнены над объектом
Рассмотрим типичное определение MIB:
Определение начинается с обозначения текстовой метки объекта — sysDescr — и заканчивается {system 1}, что означает "поместить этот узел ниже узла system и присвоить ему номер 1". Такая запись позволяет построить полный идентификатор объекта, который будет выглядеть как:
1.3.6.1.2.1.1.1
Остальная часть определения состоит из ряда конструкций (clauses) — SYNTAX (синтаксис), ACCESS (доступ), STATUS (статус) и DESCRIPTION (описание).
В данном случае SYNTAX (datatype) — это выводимая строка, т.е. ряд символов не длиннее 255 знаков.
ACCESS определяет действие(я), которое может быть выполнено. В данном случае ACCESS задан как "чтение/запись", а диспетчер может читать или изменять значения переменных.
В ранних документах MIB условие STATUS могло иметь значения: mandatory (обязательно), optional (необязательно), obsolete (устарело) или deprecated (отменено). Однако значения mandatory и optional были бесполезны. Более новые MIB не включают переменных, значение которых столь мало, что нет смысла помечать их специальным значением. STATUS теперь может указать на current (текущее значение), deprecated (отменено) или obsolete (устарело).
20.10.2 Первая абстрактная синтаксическая нотация (ASN.1)
Определения MIB написаны на стандартном языке первой абстрактной синтаксической нотации (Abstract Syntax Notation 1 — ASN.1), разработанном в ISO. ASN.1 похож на компьютерные языки. Существуют и основные правила кодирования (Basic Encoding Rules — BER), также от ISO, определяющие формат пересылки значений, определенных с помощью ASN.1.
Станция управления анализирует переменные MIB, компилируя определения MIB в записи ASN.1. Хорошие станции управления позволяют компилировать столько MIB, сколько нужно.
После компиляции станция управления готова посылать и получить сообщения SNMP, содержащие любую из скомпилированных переменных. Хорошие станции могут также выводить описания переменных. На рис. 20.13 показан
Рис. 20.13. Вывод описаний переменных на экране диспетчера SNMP
20.10.3 Типы данных MIB
Причиной широкого распространения SNMP стало то, что проектировщики придерживались правила "Будь проще!"
■ Все данные MIB состоят из простых скалярных переменных, хотя отдельные части MIB могут быть логически организованы в таблицы.
■ Только небольшое число типов данных (например, целые числа или строки октетов) используется выражения значений всех переменных MIB.
Фактически основные типы данных — это INTEGER (целое), OCTET STRING (строка октетов) и OBJECT IDENTIFIER (идентификатор объекта).
20.10.4 Целые числа
Целые числа используются в двух случаях:
■ Для ответа на вопрос "сколько?"
■ Для перечисления списка вариантов, например 1 = включено, 2 = выключено, 3 = тестирование.
Ниже приведено определение, иллюстрирующее использование различных типов данных. Заметьте, что в первом определении формулировка SYNTAX ограничивает амплитуду значений.
20.10.5 Счетчики
Счетчик — это положительное целое число, которое увеличивается до максимального значения и затем сбрасывается в ноль. Известно, что 32-разрядный счетчик может увеличиваться до 2³²-1 (4 294 967 295) и затем сбрасывается в 0. В версии 2 добавлен 64-разрядный счетчик, который может увеличиваться до 18 446 744 073 709 551 615.