- []
- []
Содержание
Management Information Bases (MIBs) SNMP не определяет, какую информацию (какие переменные) управляемая система должна предоставлять. Наоборот, SNMP использует расширяемую модель, в которой доступная информация определяется Базами Управляющей Информации (MIB - Management Information Base). Базы Управляющей Информации описывают структуру управляющей информации устройств. Они используют иерархическое пространство имён, содержащее уникальный идентификатор объекта (англ. object identifier (OID)). Грубо говоря, каждый уникальный идентификатор объекта идентифицирует переменную, которая может быть прочитана или установлена через SNMP. MIBы используют нотацию, определённую в ASN.1.
Иерархия MIB может быть изображена как дерево с безымянным корнем, уровни которого присвоены разными организациями. На самом высоком уровне MIB OIDы принадлежат различным организациям, занимающимся стандартизацией, в то время как на более низком уровне OIDы выделяются ассоциированными организациями. Эта модель обеспечивает управление на всех слоях сетевой модели OSI, так как MIBы могут быть определены для любых типов данных и операций.
Управляемый объект — это одна из любого числа характеристик, специфических для управляемого устройства. Управляемый объект включает в себя один или более экземпляров объекта (идентифицируемых по OID), которые на самом деле переменные.
Существует два типа управляемых объектов:
Скалярные объекты определяют единственный экземпляр объекта. Табличные объекты определяют множественные, связанные экземпляры объектов которые группируются в таблицах MIB. Примером управляемого объекта может быть atInput, который является скалярным объектом содержащим единственный экземпляр объекта, целое число, которое показывает общее количество входящих пакетов AppleTalk на сетевой интерфейс маршрутизатора.
Идентификатор объекта (OID) уникально идентифицирует управляемый объект в иерархии MIB.
MIB-категори
Согласно нормативам MIB управляющая информация делится на 11 категорий | ||
---|---|---|
MIB-категория | Описание | |
1 | System | Операционная система ЭВМ или маршрутизация |
2 | Interfaces | Сетевой интерфейс |
3 | Addr. trans. | Преобразование адреса (напр., с помощью ARP) |
4 | Ip | Программная поддержка протоколов Internet |
5 | Icmp | Программное обеспечение протокола ICMP |
6 | Tcp | Программное обеспечение протокола TCP |
7 | Udp | Программное обеспечение протокола UDP |
8 | egp | Программное обеспечение протокола EGP |
9 | cmot | (группа в настоящее время не используется) |
10 | Trans | Transmission |
11 | SNMP | Программное обеспечение SNMP-протокола. |
Системные переменные MIB** (префикс=1.3.6.1.2.1.1)
Системная переменная | Описание | Код |
---|---|---|
Sysdescr | Текстовое описание объектаsysDescr OBJECT-TYPE SYNTAX DisplayString (SIZE (0..255)) ACCESS read-only STATUS mandatory DESCRIPTION "A textual description of the entity. This value should include the full name and version identification of the system's hardware type, software operating-system, and networking software. It is mandatory that this only contain printable ASCII characters." ::= { system 1 } | 1 |
Sysobjectid | Идентификатор производителя в рамках дерева 1.3.6.1.4.1sysObjectID OBJECT-TYPE SYNTAX OBJECT IDENTIFIER ACCESS read-only STATUS mandatory DESCRIPTION "The vendor's authoritative identification of the network management subsystem contained in the entity. This value is allocated within the SMI enterprises subtree (1.3.6.1.4.1) and provides an easy and unambiguous means for determining `what kind of box' is being managed. For example, if vendor `Flintstones, Inc.' was assigned the subtree 1.3.6.1.4.1.4242, it could assign the identifier 1.3.6.1.4.1.4242.1.1 to its `Fred Router'." ::= { system 2 } | 2 |
Sysuptime | Время с момента последней загрузки системы (timeticks)sysUpTime OBJECT-TYPE SYNTAX TimeTicks ACCESS read-only STATUS mandatory DESCRIPTION "The time (in hundredths of a second) since the network management portion of the system was last re-initialized." ::= { system 3 } | 3 |
Syscontact | Имя системного менеджера и способы связи с нимsysContact OBJECT-TYPE SYNTAX DisplayString (SIZE (0..255)) ACCESS read-write STATUS mandatory DESCRIPTION "The textual identification of the contact person for this managed node, together with information on how to contact this person." ::= { system 4 } | 4 |
Sysname | Полное имя доменаsysName OBJECT-TYPE SYNTAX DisplayString (SIZE (0..255)) ACCESS read-write STATUS mandatory DESCRIPTION "An administratively-assigned name for this managed node. By convention, this is the node's fully-qualified domain name." ::= { system 5 } | 5 |
Syslocation | Физическое местоположение системыsysLocation OBJECT-TYPE SYNTAX DisplayString (SIZE (0..255)) ACCESS read-write STATUS mandatory DESCRIPTION "The physical location of this node (e.g., `telephone closet, 3rd floor')." ::= { system 6 } | 6 |
Sysservice | Величина, которая характеризует услуги, предоставляемые узлом (сумма номеров уровней модели OSI)sysServices OBJECT-TYPE SYNTAX INTEGER (0..127) ACCESS read-only STATUS mandatory DESCRIPTION "A value which indicates the set of services that this entity primarily offers. The value is a sum. This sum initially takes the value zero, Then, for each layer, L, in the range 1 through 7, that this node performs transactions for, 2 raised to (L - 1) is added to the sum. For example, a node which performs primarily routing functions would have a value of 4 (2^(3-1)). In contrast, a node which is a host offering application services would have a value of 72 (2^(4-1) + 2^(7-1)). Note that in the context of the Internet suite of protocols, values should be calculated accordingly: layer functionality 1 physical (e.g., repeaters) 2 datalink/subnetwork (e.g., bridges) 3 internet (e.g., IP gateways) 4 end-to-end (e.g., IP hosts) 7 applications (e.g., mail relays) For systems including OSI protocols, layers 5 and 6 may also be counted." ::= { system 7 } | 7 |
Переменные интерфейсов
Переменные IFtable (интерфейсы; префикс=1.3.6.1.2.1.2)
Переменная описания интерфейсов (iftable) | Тип данных | Описание | ifEntry |
---|---|---|---|
IFindex | integer | Список интерфейсов от 1 до ifnumber. | 1 |
IfDescr | displaystring | Текстовое описание интерфейса. | 2 |
IfType | integer | Тип интерфейса, например, 6 - ethernet; 9 - 802.5 маркерное кольцо; 23 - PPP; 28 - SLIP. | 3 |
IfNumber | integer | Число сетевых интерфейсов. | |
IfMTU | integer | mtu для конкретного интерфейса; | 4 |
IfSpeed | gauge | Скорость в бит/с. | 5 |
IfPhysaddress | physaddress | Физический адрес или строка нулевой длины для интерфейсов без физического адреса (напр. последовательный). | 6 |
IfAdminStatus | [1…3] | Требуемое состояние интерфейса: 1 - включен; 2 - выключен; 3 - тестируется. | 7 |
IfOperStatus | [1…3] | Текущее состояние интерфейса: 1 - включен; 2 - выключен; 3 - тестируется. | 8 |
IfLastchange | timeticks | Sysuptime, когда интерфейс оказался в данном состоянии. | 9 |
IfInOctets | counter | Полное число полученных байтов. | 10 |
IfInUcastpkts | counter | Число пакетов, доставленных на верхний системный уровень (unicast). | 11 |
IfInNUcastpkts | counter | Число пакетов, доставленных на верхний системный уровень (unicast). | 12 |
IfInDiscads | counter | Число полученных но отвергнутых пакетов. | 13 |
IfInErrors | counter | Число пакетов, полученных с ошибкой; | 14 |
IfInUnknownProtos | counter | Число пакетов, полученных с ошибочным кодом протокола; | 15 |
IfOutOctets | counter | Число отправленных байтов; | 16 |
IfOutUcastPkts | counter | Число unicast- пакетов, полученных с верхнего системного уровня; | 17 |
IfOutNucastPkts | counter | Число мультикастинг- и широковещательных пакетов, полученных с верхнего системного уровня; | 18 |
IfOutDiscads | counter | Количество отвергнутых пакетов из числа отправленных; | 19 |
IfOutErrors | counter | Число отправленных пакетов, содержащих ошибки; | 20 |
IfOutQlen | gauge | Число пакетов в очереди на отправку; | 21 |
IP-группа
Переменные IP-группы (префикс=1.3.6.1.2.1.4)
Переменная IP-группы | Тип данных | Описание | Код |
ipForwarding | integer | Указание на то, что данный объект осуществляет переадресацию (работает как маршрутизатор). | 1 |
IPdefaultTTL | integer | Значение, которое использует IP в поле TTL. | 2 |
IPinreceives | counter | Число полученных дейтограмм. | 3 |
ipInHdrErrors | counter | Число дейтограмм, отвергнутых из-за ошибок формата или неверных адресов или опций, из-за истекшего TTL. | 4 |
ipInHdrErrors | counter | Число дейтограмм, отвергнутых из-за неверного IP-адреса, например, 0.0.0.0, или неподдерживаемого класса, например Е. | 5 |
ipForwDatagrams | counter | Число дейтограмм, для которых данный объект не является местом назначения (маршрутизация отправителя). | 6 |
ipInUnknownProtos | counter | Число дейтограмм с неподдерживаемым кодом протокола. | 7 |
ipInDiscards | counter | Число дейтограмм, отвергнутых из-за переполнения буфера. | 8 |
ipInDelivers | counter | Полное число входных дейтограмм, успешно обработанных на IP-уровне. | 9 |
ipOutRequests | counter | Полное число IP и ICMP дейтограмм, переданных для отправки. | 10 |
ipOutRequests | counter | Полное число IP и ICMP дейтограмм, переданных для отправки. | 11 |
IPoutNoroutes | counter | Число неудач при маршрутизации. | 12 |
ipReasmTimeout | counter | Максимальное число секунд ожидания сборки фрагментов. | 13 |
ipReasmReqds | counter | Число полученных фрагментов | 14 |
ipReasmOKs | counter | Число полученных и успешно собранных IP-дейтограмм | 15 |
ipReasmFails | counter | Число полученных IP-дейтограмм, которые по тем или иным причинам не удалось собрать | 16 |
IPFragOKs | counter | Число успешно фрагментированных IP- дейтограмм. | 17 |
ipFragFails | counter | Число IP- дейтограмм, которые нужно фрагментировать, но сделать это нельзя (например, из-за флага). | 18 |
ipFragCreates | counter | Число IP-дейтограмм фрагментов, сформированных данным объектом. | 19 |
ipAddrTable | counter | Таблица адресной информации данного объекта. | 20 |
ipRouteTable | Последовательность записей маршрутной таблицы | Запись в маршрутной таблице | 21 |
ipAddrEntry | |||
---|---|---|---|
IPAdEntAddr | IPaddress | IP-адрес для данного ряда | 1 |
IPadentifindex | integer | Число интерфейсов. | 2 |
IPadentnetmask | IPaddress | Маска субсети для данного IP-адреса; | 3 |
IPAdEntBcastAddr | [0…1] | Значение младшего бита широковещательного адреса (обычно 1); | 4 |
IPAdEntReasmMaxsize | [0…65535] | Размер наибольшей IP-дейтограммы, полученной интерфейсом, которая может быть собрана. | 5 |
TCP-группа
Переменные TCP-группы (префикс=1.3.6.1.2.1.6)
Переменные TCP-группы |Тип данных| Описание |Код |
tcpRtoAlgorithm | integer | Алгоритм выявления таймаута для повторной передачи TCP-пакетов: 1 - ни один из следующих; 2 - постоянное RTO; 3 - стандарт MIL-std-1778; 4 - алгоритм Ван Джакобсона | 1 |
tcpRtoMin | integer | Минимальное допустимое время повторной передачи tcp- пакетов. | 2 |
tcpRtoMax | integer | Максимальное значение тайм-аута в миллисек. | 3 |
tcpMaxConn | integer | Максимальное допустимое число tcp-соединений. | 4 |
tcpActiveOpens | integer | Число TCP-соединений Active-Open | 5 |
tcpPassiveOpens | integer | Число TCP-соединений Passive-Open (из состояния LISTEN) | 6 |
tcpAttemptFails | integer | Число неудачных TCP-соединений | 7 |
tcpEstabResets | integer | Число разрывов TCP-соединений из состояний ESTABLISHED или CLOSE-WAIT | 8 |
tcpCurrEstab | Gauge | Число TCP-соединений, для которых текущее состояние ESTABLISHED или CLOSE-WAIT | 9 |
tcpInSegs | counter | Полное число полученных tcp-сегментов. | 10 |
tcpOutSegs | counter | Полное число посланных сегментов, исключая повторно пересылаемые. | 11 |
tcpRetransSegs | counter | Полное число повторно пересланных сегментов. | 12 |
tcpConnTable | counter | Таблица данных специфичных для соединения | 13 |
tcpInErrs | counter | Полное число сегментов, полученных с ошибкой. | 14 |
tcpOutRsts | counter | Полное число посланных сегментов с флагом rst=1. | 15 |
tcpconntable. tcp-таблица связей | |||
---|---|---|---|
tcpconnstate | [1…12] | Состояние соединения: | |
1 | - closed; | ||
2 | - listen; | ||
3 | - syn_sent; | ||
4 | - syn_rcvd; | ||
5 | - established; | ||
6 | - fin_wait_1; | ||
7 | - fin_wait_2; | ||
8 | - close_wait; | ||
9 | - last_ack; | ||
10 | - closing; | ||
11 | - time_wait; | ||
12 | - delete TCB. | ||
Только последняя переменная может устанавливаться менеджером, немедленно прерывая связь. | |||
tcpconnlocal | address | ipaddress Местный IP-адрес. 0.0.0.0 означает, что приемник готов установить связь через любой из интерфейсов. | |
tcpconnlocal port | [0…65535] | Местный номер порта. | |
tcpconnlocaladdress | ipaddress | Удаленный ip-адрес. | |
tcpconnrem port | [0…65535] | Удаленный номер порта. |
ICMP-группа
Переменные ICMP-группы (тип данных - counter; префикс=1.3.6.1.2.1.5)
Переменная icmp-группы | Описание | Код |
icmpInMsgs | Полное Число полученных ICMP-сообщений. | 1 |
icmpInErrors | Число ICMP-сообщений, полученных с ошибками. | 2 |
icmpInDestUnreach | Число ICMP-сообщений о недостижимости адресата. | 3 |
icmpintimeexcds | Число ICMP-сообщений об истечении времени. | 4 |
icmpInParmProbs | Число полученных ICMP-сообщений о проблемах с параметрами. | 5 |
icmpInSrcQuench | Число ICMP-сообщений с требованием сократить или прервать посылку пакетов из-за перегрузки. | 6 |
icmpInRedirects | Число ICMP-сообщений о переадресации. | 7 |
icmpInEchos | Число полученных ICMP-запросов отклика. | 8 |
icmpInEchoReps | Число полученных ICMP-эхо- откликов. | 9 |
icmpInTimestamps | Число ICMP-запросов временных меток. | 10 |
icmpInTimestampReps | Число ICMP-откликов временных меток. | 11 |
icmpInAddrMasks | Число ICMP-запросов адресных масок. | 12 |
icmpInAddrMaskReps | Число ICMP-откликов на запросы адресных масок. | 13 |
icmpOutMsgs | Число отправленных ICMP- сообщений. | 14 |
icmpOutErrors | Число не отправленных ICMP- сообщений из-за проблем в ICMP (напр. нехватка буферов). | 15 |
icmpOutDestUnreachs | Число ICMP-сообщений о недоступности адресата. | 16 |
icmpOutTimesExcds | Число посланных ICMP-сообщений об истечении времени. | 17 |
icmpOutParmProbs | Число посланных ICMP-сообщений о проблемах с параметрами. | 18 |
icmpOutSrcQuench | Число посланных ICMP-сообщений об уменьшении потока пакетов. | 19 |
icmpOutRedirects | Число посланных ICMP-сообщений о переадресации. | 20 |
icmpOutEchos | Число посланных ICMP-эхо-запросов. | 21 |
icmpOutEchoReps | Число посланных ICMP-эхо-откликов. | 22 |
icmpOutTimestamps | Число посланных ICMP-запросов временных меток. | 23 |
icmpOutTimestampReps | Число посланных ICMP-откликов на запросы временных меток. | 24 |
icmpOutAddrMasks | Число посланных ICMP-запросов адресных масок. | 25 |
АТ-группа (преобразование адресов)
Переменные AT-группы (attable, преобразование адресов; префикс=1.3.6.1.2.1.3).
еременные at-группы | Тип данных | Описание | atEntry |
---|---|---|---|
atIfIndex | integer | Число интерфейсов. | 1 |
atPhysAddress | physaddress | Физический адрес. Если эта переменная равна строке нулевой длины, физический адрес отсутствует. | 2 |
atNetAddress | networkaddress | IP-адрес. | 3 |
UDP-группа
Переменные UDP-группы (тип данных - counter; префикс=1.3.6.1.2.1.7)
Имя переменной | Тип данных | Описание | Код |
---|---|---|---|
udpInDatagrams | counter | Число UDP-дейтограмм, присланных процессам пользователя. | 1 |
udpNoPorts | counter | Число полученных UDP-дейтограмм, для которых отсутствует прикладной процесс в порте назначения. | 2 |
udpInErrors | counter | Число не доставленных UDP-дейтограмм по причинам, отличающимся от отсутствия процесса со стороны порта назначения (напр., ошибка контрольной суммы). | 3 |
udpOutDatagrams | counter | Число посланных UDP-дейтограмм. | 4 |
udpTable | counter | Таблица, содержащая данные о принимающей стороне | 5 |
SNMP-группа
Переменные SNMP-группы (тип данных - counter; префикс=1.3.6.1.2.1.11)
Название объекта | Описание | Код |
---|---|---|
snmpInPkts | Число пакетов, полученных от слоя, расположенного ниже SNMP. | 1 |
snmpOutPkts | Число пакетов доставленных от SNMP к нижележащему слою. | 2 |
snmpInBadVersions | Индицирует число PDU, полученных с ошибкой в поле версия. | 3 |
snmpInBadCommunityNames | Индицирует число PDU, полученных с нечитаемым или нелегальным именем community. | 4 |
snmpInBadCommunityUses | Полное число SNMP-пакетов, полученных с нечитаемым или нелегальным значение операции для данного имени community. | 5 |
snmpInAsnParsErrs | Указывает полное число ошибок ASN.1 или BER, которые не могут быть обработаны во входных SNMP-сообщениях | 6 |
snmpInTooBigs | Указывает число полученных PDU со слишком большим значением поля статус ошибки. | 8 |
snmpInNoSuchNames | Указывает число PDU, полученных с индикацией ошибки в поле nosuchname. | 9 |
snmpInBadValues | Указывает число PDU, полученных с индикацией ошибки в поле badvalue. | 10 |
snmpInReadOnlys | Указывает число PDU, полученных с индикацией ошибки в поле readonly. | 11 |
snmpNnGenErrs | Указывает число PDU, полученных с generr-полем. | 12 |
snmpInTotalReqVar | Указывает число объектов MIB, которые были восстановлены. | 13 |
snmpInTotalSetVars | Указывает число объектов MIB, которые были изменены. | 14 |
snmpInGetRequests | Указывает число соответствующих pdu, которые были получены. | 15 |
snmpInGetNexts | Указывает полное число pdu с запросами GetNext | 16 |
snmpInSetRequests | Указывает полное число pdu, полученных с запросами SET | 17 |
snmpInGetResponses | Указывает полное число pdu, полученных c откликами на запросы | 18 |
snmpInTraps | Указывает полное число, полученных и успешно обработанныз TRAP | 19 |
snmpOutTooBig | Указывает число посланных PDU с полем toobig. | 20 |
snmpOutNoSuchNames | Указывает число посланных PDU с полем nosuchname. | 21 |
snmpOutBadValues | Указывает число посланных PDU с полем badvalue. | 22 |
snmpOutGenErrs | Указывает число посланных PDU с полем genErrs. | 24 |
snmpOutGetRequests | Указывает число посланных PDU Get-Request | 25 |
snmpOutGetNexts | Указывает число посланных PDU Get-NEXT | 26 |
snmpOutSetRequests | Указывает число посланных PDU SET | 27 |
snmpOutGetResponses | Указывает число посланных PDU откликов | 28 |
snmpOutTraps | Указывает число посланных PDU TRAPs | 29 |
snmpEnableAuthTraps | Говорит о том, разрешены или нет ловушки (TRAPS). | 30 |
Виды данных
- INTEGER (целое число). Некоторые переменные объявляются как целые без ограничений (например, MTU для интерфейса), некоторые определены с конкретными значениями (например, флаг IP о перенаправлении установлен в 1, если перенаправление включено, или в 2, если перенаправление выключено), а другие определены с их минимальными и максимальными значениями (например, номера портов TCP и UDP находятся в диапазоне от 0 до 65535).
- OCTET STRING (восьмеричная строка). Строка из 0 или нескольких 8-битных байт. Каждый байт имеет значение от 0 до 255. В кодировании BER, используемом для этих типов данных и для следующего, счетчик количества байт в строке находится перед самой строкой. Эти строки не заканчиваются нулевыми значениями.
- DisplayString. Строка из 0 или нескольких 8-битных байт, причем каждый байт должен быть символом из набора ASCII NVT (глава 26, раздел «Протокол Telnet»). Все переменные этого типа в MIB-II должны содержать не больше чем 255 символов. (Строка нулевой длины допустима.)
- OBJECT IDENTIFIER (идентификатор объекта). Мы опишем их в следующем разделе.
- NULL (ноль). Означает, что у соответствующей переменной нет значения. Используется, например, в качестве всех значений для переменных в запросах get или get-next, пока эти переменные запрашиваются, а не устанавливаются.
- IpAddress (IP адрес). OCTET STRING (восьмеричная строка) длиной 4, с 1 байтом на каждый байт IP адреса.
- PhysAddress (физический адрес). OCTET STRING (восьмеричная строка), содержит физический адрес (например, 6-байтный Ethernet адрес).
- Counter (счетчик). Неотрицательное целое число, значение которого увеличивается монотонно от 0 до значения 232 -1 (4.294.967.295) и затем вновь возвращается в 0.
- Gauge (критерий). Неотрицательное целое число в диапазоне от 0 до 232 -1, значение которого может увеличиваться или уменьшаться, однако изменения прекращаются по достижении максимального значения. Это означает, что если значение достигнет величины 232 -1, критерий будет оставаться в этом значении до тех пор, пока не будет сброшен. Примером может служить переменная MIB tcpCurrEstab: это количество TCP соединений, находящихся в настоящий момент в состоянии ESTABLISHED (установлено) или CLOSE_WAIT (ожидание закрытия).
- TimeTicks (тики времени). Счетчик, который считает время в сотых долях секунды с какой-либо исходной точки. Различные переменные могут указывать начало счета с различных исходных точек, исходная точка используемая для каждой переменной этого типа и указывается, когда переменная объявляется в MIB. Например, переменная sysUpTime это количество сотых долей секунды, в течение которых агент был включен.
- timeticks / 100 = seconds
- timeticks / 6000 = minutes
- timeticks / 360000 = hours
- timeticks / 8640000 = days
- SEQUENCE (последовательность). Напоминает структуру в языке программирования С. Например, мы рассмотрим, как в MIB определяется последовательность (SEQUENCE), которая называется UdpEntry и которая содержит информацию об активности конечных точек UDP агента. (Под словом «активность» мы подразумеваем порты, которые используются в настоящее время приложением.) В этой структуре есть две записи:
- udpLocalAddress, типа IpAddress, содержащая локальный IP адрес.
- udpLocalPort, типа INTEGER, в диапазоне от 0 до 65535, которая содержит локальный номер порта.
- SEQUENCE OF (последовательность чего). Это определение вектора со всеми элементами, которые имеют тот же самый тип данных. Если каждый элемент имеет простой тип данных, такой как целое, мы имеем простой вектор (одномерный массив). Однако мы увидим, что SNMP использует эти типы данных с каждым элементом вектора, который является последовательностью (SEQUENCE) (структура). Поэтому мы можем считать их двумерными массивами или таблицей. Например, таблица слушающих процессов (listener) UDP называется udpTable, и является последовательностью (SEQUENCE OF) 2-элементной структуры (SEQUENCE) UdpEntry.