Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Скидка до 20% на услуги дата-центра. Аренда серверной стойки. Colocation от 1U!

Миграция в облако #SotelCloud. Виртуальный сервер в облаке. Выбрать конфигурацию на сайте!

Виртуальная АТС для вашего бизнеса. Приветственные бонусы для новых клиентов!

Виртуальные VPS серверы в РФ и ЕС

Dedicated серверы в РФ и ЕС

По промокоду CITFORUM скидка 30% на заказ VPS\VDS

VPS/VDS серверы. 30 локаций на выбор

Серверы VPS/VDS с большим диском

Хорошие условия для реселлеров

4VPS.SU - VPS в 17-ти странах

2Gbit/s безлимит

Современное железо!

2004 г.

4.4.13.1. Управляющая база данных MIB

Семёнов Ю.А. (ГНЦ ИТЭФ), book.itep.ru

Вся управляющая информация для контроля ЭВМ и маршрутизаторами Интернет концентрируется в базе данных MIB (Management Information Base, RFC-1213 или STD0017). Именно эти данные используются протоколом SNMP. Система SNMP состоит из трех частей: менеджера SNMP, агента SNMP и базы данных MIB. Агент SNMP должен находиться резидентно в памяти объекта управления. SNMP-менеджер может быть частью системы управления сетью NMS (Network Management System), что реализуется, например, в маршрутизаторах компании CISCO (CiscoWorks).

MIB определяет, например, что IP программное обеспечение должно хранить число всех октетов, которые приняты любым из сетевых интерфейсов, управляющие программы могут только читать эту информацию.

Согласно нормативам MIB управляющая информация делится на восемь категорий (см. также рис. 4.4.13.1.1):

MIB-категория включает в себя информацию о

MIB-категорияОписаниеКод
systemОперационная система ЭВМ или маршрутизатора.1
InterfacesСетевой интерфейс.2
addr.transПреобразование адреса (напр., с помощью ARP).3
IPПрограммная поддержка протоколов Интернет.4
ICMPПрограммное обеспечение ICMP-протокола.5
TCPПрограммное обеспечение TCP-протокола.6
UDPПрограммное обеспечение UDP-протокола.7
EGPПрограммное обеспечение EGP-протокола.8
SNMPПрограммное обеспечение SNMP-протокола.11

Таблица 4.4.13.1.1. Системные переменные MIB

Системная переменнаяОписаниеКод

Sysdescr

Текстовое описание объекта;1

Sysobjectid

Идентификатор производителя в рамках дерева 1.3.6.1.4.12

Sysuptime

Время с момента последней загрузки системы (timeticks);3

Syscontact

Имя системного менеджера и способы связи с ним;4

Sysname

Полное имя домена;5

Syslocation

Физическое местоположение системы;6

Sysservice

Величина, которая характеризует услуги, предоставляемые узлом (сумма номеров уровней модели OSI);

7

Таблица 4.4.13.1.2. Переменные IFtable (интерфейсы)

Переменная описания интерфейсов (iftable)Тип данныхОписаниеifEntry
IFindexintegerСписок интерфейсов от 1 до ifnumber.1
IfDescrdisplaystringТекстовое описание интерфейса.2
IfTypeintegerТип интерфейса, например, 6 - ethernet; 9 - 802.5 маркерное кольцо; 23 - PPP; 28 - SLIP.3
IfNumberintegerЧисло сетевых интерфейсов. 
IfMTUintegermtu для конкретного интерфейса;4
IfSpeedgaugeСкорость в бит/с.5
IfPhysaddressphysaddressФизический адрес или строка нулевой длины для интерфейсов без физического адреса (напр. последовательный).6
IfAdminStatus[1...3]Требуемое состояние интерфейса: 1 - включен; 2 - выключен; 3 - тестируется.7
IfOperStatus[1...3]Текущее состояние интерфейса: 1 - включен; 2 - выключен; 3 - тестируется.8
IfLastchangetimeticksSysuptime, когда интерфейс оказался в данном состоянии.9
IfInOctetscounterПолное число полученных байтов.10
IfInUcastpktscounterЧисло пакетов, доставленных на верхний системный уровень (unicast).11
IfInNUcastpktscounterЧисло пакетов, доставленных на верхний системный уровень (unicast).12
IfInDiscadscounterЧисло полученных но отвергнутых пакетов.13
IfInErrorscounterЧисло пакетов, полученных с ошибкой;14
IfInUnknownProtoscounterЧисло пакетов, полученных с ошибочным кодом протокола;15
IfOutOctetscounterЧисло отправленных байтов;16
IfOutUcastPktscounterЧисло unicast- пакетов, полученных с верхнего системного уровня;17
IfOutNucastPktscounterЧисло мультикастинг- и широковещательных пакетов, полученных с верхнего системного уровня;18
IfOutDiscadscounterКоличество отвергнутых пакетов из числа отправленных;19
IfOutErrorscounterЧисло отправленных пакетов, содержащих ошибки;20
IfOutQlengaugeЧисло пакетов в очереди на отправку;21

Ниже представлена таблица цифро-точечного представления переменных, характеризующих состояние интерфейса. Эта таблица может быть полезной для программистов, занятых проблемами сетевой диагностики.

Название объектаЦифра-точечное представление
org1.3
dod1.3.6
internet1.3.6.1
directory1.3.6.1.1
mgmt1.3.6.1.2
experimental1.3.6.1.3
private1.3.6.1.4
enterprises1.3.6.1.4.1
security1.3.6.1.5
snmpV21.3.6.1.6
snmpDomains1.3.6.1.6.1
snmpProxys1.3.6.1.6.2
snmpModules1.3.6.1.6.3
snmpMIB

1.3.6.1.6.3.1

snmpMIBObjects1.3.6.1.6.3.1.1
snmpTraps1.3.6.1.6.3.1.1.5
mib-21.3.6.1.2.1
ifMIB1.3.6.1.2.1.31
interfaces1.3.6.1.2.1.2
ifMIBObjects1.3.6.1.2.1.31.1
ifConformance1.3.6.1.2.1.31.2
ifTableLastChange1.3.6.1.2.1.31.1.5
ifXTable1.3.6.1.2.1.31.1.1
ifStackTable1.3.6.1.2.1.31.1.2
ifStackLastChange1.3.6.1.2.1.31.1.6
ifRcvAddressTable1.3.6.1.2.1.31.1.4
ifTestTable1.3.6.1.2.1.31.1.3
ifXEntry1.3.6.1.2.1.31.1.1.1
ifName1.3.6.1.2.1.31.1.1.1.1
ifInMulticastPkts1.3.6.1.2.1.31.1.1.1.2
ifInBroadcastPkts1.3.6.1.2.1.31.1.1.1.3
ifOutMulticastPkts1.3.6.1.2.1.31.1.1.1.4
ifOutBroadcastPkts1.3.6.1.2.1.31.1.1.1.5
ifLinkUpDownTrapEnable

1.3.6.1.2.1.31.1.1.1.14

ifHighSpeed1.3.6.1.2.1.31.1.1.1.15
ifPromiscuousMode1.3.6.1.2.1.31.1.1.1.16
ifConnectorPresent1.3.6.1.2.1.31.1.1.1.17
ifAlias1.3.6.1.2.1.31.1.1.1.18
ifCounterDiscontinuityTime1.3.6.1.2.1.31.1.1.1.19
ifStackEntry1.3.6.1.2.1.31.1.2.1
ifStackHigherLayer1.3.6.1.2.1.31.1.2.1.1
ifStackLowerLayer1.3.6.1.2.1.31.1.2.1.2
ifStackStatus1.3.6.1.2.1.31.1.2.1.3
ifRcvAddressEntry1.3.6.1.2.1.31.1.4.1
ifRcvAddressAddress1.3.6.1.2.1.31.1.4.1.1
ifRcvAddressStatus1.3.6.1.2.1.31.1.4.1.2
ifRcvAddressType1.3.6.1.2.1.31.1.4.1.3
ifTestEntry1.3.6.1.2.1.31.1.3.1
ifTestId1.3.6.1.2.1.31.1.3.1.1
ifTestStatus1.3.6.1.2.1.31.1.3.1.2
ifTestType1.3.6.1.2.1.31.1.3.1.3
ifTestResult1.3.6.1.2.1.31.1.3.1.4
ifTestCode1.3.6.1.2.1.31.1.3.1.5
ifTestOwner1.3.6.1.2.1.31.1.3.1.6
ifGroups1.3.6.1.2.1.31.2.1
ifCompliances1.3.6.1.2.1.31.2.2
ifGeneralInformationGroup1.3.6.1.2.1.31.2.1.10
ifFixedLengthGroup1.3.6.1.2.1.31.2.1.2
ifHCFixedLengthGroup1.3.6.1.2.1.31.2.1.3
ifPacketGroup1.3.6.1.2.1.31.2.1.4
ifHCPacketGroup1.3.6.1.2.1.31.2.1.5
ifVHCPacketGroup1.3.6.1.2.1.31.2.1.6
ifRcvAddressGroup1.3.6.1.2.1.31.2.1.7
ifStackGroup21.3.6.1.2.1.31.2.1.11
ifCounterDiscontinuityGroup1.3.6.1.2.1.31.2.1.13
ifGeneralGroup1.3.6.1.2.1.31.2.1.1
ifTestGroup1.3.6.1.2.1.31.2.1.8
ifStackGroup1.3.6.1.2.1.31.2.1.9
ifOldObjectsGroup1.3.6.1.2.1.31.2.1.12
ifCompliance21.3.6.1.2.1.31.2.2.2
ifCompliance1.3.6.1.2.1.31.2.2.1
ifNumber1.3.6.1.2.1.2.1
ifTable1.3.6.1.2.1.2.2
ifEntry1.3.6.1.2.1.2.2.1
ifIndex1.3.6.1.2.1.2.2.1.1
ifDescr1.3.6.1.2.1.2.2.1.2
ifType1.3.6.1.2.1.2.2.1.3
ifMtu1.3.6.1.2.1.2.2.1.4
ifSpeed1.3.6.1.2.1.2.2.1.5
ifPhysAddress1.3.6.1.2.1.2.2.1.6
ifAdminStatus1.3.6.1.2.1.2.2.1.7
ifOperStatus1.3.6.1.2.1.2.2.1.8
ifLastChange1.3.6.1.2.1.2.2.1.9
ifInOctets1.3.6.1.2.1.2.2.1.10
ifInUcastPkts1.3.6.1.2.1.2.2.1.11
ifInNUcastPkts1.3.6.1.2.1.2.2.1.12
ifInDiscards1.3.6.1.2.1.2.2.1.13
ifInErrors1.3.6.1.2.1.2.2.1.14
ifInUnknownProtos1.3.6.1.2.1.2.2.1.15
ifOutOctets1.3.6.1.2.1.2.2.1.16
ifOutUcastPkts1.3.6.1.2.1.2.2.1.17
ifOutNUcastPkts1.3.6.1.2.1.2.2.1.18
ifOutDiscards1.3.6.1.2.1.2.2.1.19
ifOutErrors1.3.6.1.2.1.2.2.1.20
ifOutQLen1.3.6.1.2.1.2.2.1.21
ifSpecific1.3.6.1.2.1.2.2.1.22

Таблица 4.4.13.1.3. Переменные IP-группы

Переменная IP-группыТип данныхОписаниеКод
ipForwardingintegerУказание на то, что данный объект осуществляет переадресацию (работает как маршрутизатор).1
IPdefaultTTLintegerЗначение, которое использует IP в поле TTL.2
IPinreceivescounterЧисло полученных дейтограмм.3
ipInHdrErrorscounterЧисло дейтограмм, отвергнутых из-за ошибок формата или неверных адресов или опций, из-за истекшего TTL.4
ipInHdrErrorscounterЧисло дейтограмм, отвергнутых из-за неверного IP-адреса, например, 0.0.0.0, или неподдерживаемого класса, например Е.5
ipForwDatagramscounterЧисло дейтограмм, для которых данный объект не является местом назначения (маршрутизация отправителя).6
ipInUnknownProtoscounterЧисло дейтограмм с неподдерживаемым кодом протокола.7
ipInDiscardscounterЧисло дейтограмм, отвергнутых из-за переполнения буфера.8
ipInDeliverscounterПолное число входных дейтограмм, успешно обработанных на IP-уровне.9
ipOutRequestscounterПолное число IP и ICMP дейтограмм, переданных для отправки.10
ipOutRequestscounterПолное число IP и ICMP дейтограмм, переданных для отправки.11
IPoutNoroutescounterЧисло неудач при маршрутизации.12
ipReasmTimeoutcounterМаксимальное число секунд ожидания сборки фрагментов.13
ipReasmReqdscounterЧисло полученных фрагментов14
ipReasmOKscounterЧисло полученных и успешно собранных IP-дейтограмм15
ipReasmFailscounterЧисло полученных IP-дейтограмм, которые по тем или иным причинам не удалось собрать16
IPFragOKscounterЧисло успешно фрагментированных IP- дейтограмм.17
ipFragFailscounterЧисло IP- дейтограмм, которые нужно фрагментировать, но сделать это нельзя (например, из-за флага).18
ipFragCreatescounterЧисло IP-дейтограмм фрагментов, сформированных данным объектом.19
ipAddrTablecounterТаблица адресной информации данного объекта.20
ipRouteTableПоследовательность записей маршрутной таблицыЗапись в маршрутной таблице21
ipAddrEntry
IPAdEntAddrIPaddressIP-адрес для данного ряда1
IPadentifindexintegerЧисло интерфейсов.2
IPadentnetmaskIPaddressМаска субсети для данного IP-адреса;3
IPAdEntBcastAddr[0...1]Значение младшего бита широковещательного адреса (обычно 1);4
IPAdEntReasmMaxsize[0...65535]Размер наибольшей IP-дейтограммы, полученной интерфейсом, которая может быть собрана.5

Помимо простых переменных объектами MIB могут быть таблицы. Для каждой таблицы имеется один или несколько индексов.

Таблица 4.4.13.1.4. Переменные TCP-группы

Переменные TCP-группыТип данныхОписаниеКод
tcpRtoAlgorithmintegerАлгоритм выявления таймаута для повторной передачи TCP-пакетов: 1 - ни один из следующих; 2 - постоянное RTO; 3 - стандарт MIL-std-1778; 4 - алгоритм Ван Джакобсона1
tcpRtoMinintegerМинимальное допустимое время повторной передачи tcp- пакетов.2
tcpRtoMaxintegerМаксимальное значение тайм-аута в миллисек.3
tcpMaxConnintegerМаксимальное допустимое число tcp-соединений.4
tcpActiveOpensintegerЧисло TCP-соединений Active-Open5
tcpPassiveOpensintegerЧисло TCP-соединений Passive-Open (из состояния LISTEN)6
tcpAttemptFailsintegerЧисло неудачных TCP-соединений7
tcpEstabResetsintegerЧисло разрывов TCP-соединений из состояний ESTABLISHED или CLOSE-WAIT8
tcpCurrEstabGaugeЧисло TCP-соединений, для которых текущее состояние ESTABLISHED или CLOSE-WAIT9
tcpInSegscounterПолное число полученных tcp-сегментов.10
tcpOutSegscounterПолное число посланных сегментов, исключая повторно пересылаемые.11
tcpRetransSegscounterПолное число повторно пересланных сегментов.12
tcpConnTablecounterТаблица данных специфичных для соединения13
tcpInErrscounterПолное число сегментов, полученных с ошибкой.14
tcpOutRstscounterПолное число посланных сегментов с флагом 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]Местный номер порта.

tcpconnlocal
address

ipaddressУдаленный ip-адрес.

tcpconnrem
port

[0...65535]Удаленный номер порта.

Таблица 4.4.13.1.5. Переменные ICMP-группы (тип данных - counter)

Переменная 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

Таблица 4.4.13.1.6. Переменные AT-группы (attable, преобразование адресов).

Переменные at-группыТип данныхОписаниеatEntry
atIfIndexintegerЧисло интерфейсов.1
atPhysAddressphysaddressФизический адрес. Если эта переменная равна строке нулевой длины, физический адрес отсутствует.2
atNetAddressnetworkaddressIP-адрес.3

Каждый протокол (например IP) имеет свою таблицу преобразования адресов. Для IP это ipnettomediatable. Способ пропечатать эту таблицу с помощью программы SNMPI описан ниже.

MIB II содержит управляемые объекты, принадлежащие к группе snmp. SNMP-группа предоставляет информацию о SNMP-объектах, информационных потоках, о статистике ошибок:

Название объекта ОписаниеКод
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 с запросами GetNext16
snmpInSetRequestsУказывает полное число pdu, полученных с запросами SET17
snmpInGetResponsesУказывает полное число pdu, полученных c откликами на запросы18
snmpInTrapsУказывает полное число, полученных и успешно обработанныз TRAP19
snmpOutTooBigУказывает число посланных PDU с полем toobig.20
snmpOutNoSuchNamesУказывает число посланных PDU с полем nosuchname.21
snmpOutBadValuesУказывает число посланных PDU с полем badvalue.22
snmpOutGenErrsУказывает число посланных PDU с полем genErrs.24
snmpOutGetRequestsУказывает число посланных PDU Get-Request25
snmpOutGetNextsУказывает число посланных PDU Get-NEXT26
snmpOutSetRequestsУказывает число посланных PDU SET27
snmpOutGetResponsesУказывает число посланных PDU откликов28
snmpOutTrapsУказывает число посланных PDU TRAPs29
snmpEnableAuthTrapsГоворит о том, разрешены или нет ловушки (TRAPS).30

Стандарт на структуру управляющей информации (SMI) требует, чтобы все MIB-переменные были описаны и имели имена в соответствии с ASN.1 (abstract syntax notation 1, формализованный синтаксис). ASN.1 является формальным языком, который обладает двумя основными чертами:

используемая в документах нотация легко читаема и понимаема, а в компактном кодовом представлении информация может использоваться коммуникационными протоколами. В SMI не используется полный набор типов объектов, предусмотренный в ASN.1, разрешены только следующие типы примитивов: integer, octet string, object identifier и null. Практически в протоколе SNMP фигурируют следующие виды данных:

integer. Некоторые переменные объявляются целыми (integer) с указанием начального значения или с заданным допустимым диапазоном значений (в качестве примера можно привести номера UDP- или TCP-портов).

octet string (последовательность байтов). В соответствии с требованиями BER (basic encoding rules, ASN.1) последовательность октетов должна начинаться с числа байт в этой последовательности (от 0 до n).

object identifier (идентификатор объекта). Имя объекта, представляющее собой последовательность целых чисел, разделенных точками. Например, 192.148.167.129 или 1.3.6.1.2.1.5.

null. Указывает, что соответствующая переменная не имеет значения.

displaystring. Строка из 0 или более байт (но не более 255), которые представляют собой ASCII-символы. Представляет собой частный случай octet string.

physaddress. Последовательность октетов, характеризующая физический адрес объекта (6 байт для Ethernet). Частный случай object identifier.

Сетевой адрес. Допускается выбор семейства сетевых протоколов. В рамках ASN.1 этот тип описан как choice, он позволяет выбрать протокол из семейства протоколов. В настоящее время идентифицировано только семейство протоколов Интернет.

IP-адрес. Этот адрес используется для определения 32-разрядного Интернет-адреса. В нотации ASN.1 - это octet string.

time ticks (такты часов). Положительное целое число, которое используется для записи, например, времени последнего изменения параметров управляемого объекта, или времени последней актуализации базы данных. Время измеряется в сотых долях секунды.

gauge (масштаб). Положительное целое число в диапазоне 0 - (232-1), которое может увеличиваться или уменьшаться. Если эта переменная достигнет величины 232-1, она будет оставаться неизменной до тех пор пока не будет обнулена командой сброс. Примером такой переменной может служить tcpcurresta, которая характеризует число TCP соединений, находящихся в состоянии established или close_wait.

counter (счетчик). Положительное целое число в диапазоне 0 - (232-1), которое может только увеличиваться, допуская переполнение.

sequence. Этот объект аналогичен структуре в языке Си.

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

1. UDPlocaladdress типа ipaddress, содержит местные IP-адреса.

2. UDPlocalport типа integer, содержит номера местных портов.

SEQUENCE OF. Описание вектора, все элементы которого имеют один и тот же тип. Элементы могут представлять собой простые объекты, например, типа целое. В этом случае мы имеем одномерный список. Но элементами вектора могут быть объекты типа SEQUENCE, тогда этот вектор описывает двумерный массив.

В Интернет MIB каждый объект должен иметь имя (object identifier), синтаксис и метод кодировки.

Стандарт ASN.1 определяет форму представления информации и имен. Имена переменных MIB соответствуют в свою очередь стандартам ISO и CCITT. Структура имен носит иерархический характер, отображенный на рис. 4.4.13.1.1.

Рис. 4.4.13.1.1 Структура идентификаторов переменных в MIB

В приведенной ниже таблице охарактеризованы четыре простые переменные, идентификаторы которых помещены в нижней части рис. 4.4.13.1.1. Все эти переменные допускают только чтение.

Имя переменной

Тип данныхОписаниеКод
udpInDatagramscounterЧисло UDP-дейтограмм, присланных процессам пользователя.1
udpNoPortscounterЧисло полученных UDP-дейтограмм, для которых отсутствует прикладной процесс в порте назначения.2
udpInErrorscounter

Число не доставленных UDP-дейтограмм по причинам, отличающимся от отсутствия процесса со стороны порта назначения (напр., ошибка контрольной суммы).

3
udpOutDatagramscounterЧисло посланных UDP-дейтограмм.4
udpTablecounterТаблица, содержащая данные о принимающей стороне5

Ниже приведено описание таблицы (udptable; index = ,), состоящей из двух простых переменных (read-only).

Имя переменнойТип данныхОписание
udplocaladdressipaddressМестный IP-адрес для данного приемника;
udplocalport(0 - 65535)Местный номер порта приемника.

Согласно этой иерархии переменные, соответствующие ICMP, должны иметь префикс (идентификатор) 1.3.6.1.2.1.5 или в символьном выражении iso.org.dod.internet.mgmt.mib.icmp. Если вы хотите узнать значение какой-то переменной, следует послать запрос, содержащий соответствующий префикс и суффикс, последний определяет имя конкретной переменной. Для простой переменной суффикс имеет вид .0. Ветвь структуры на рис. 4.4.13.1.1, завершающейся узлом Interfaces (2) имеет продолжение в виде ifTable(2) и ifEntry(1). Таким образом переменная ifInUcastPkts будет иметь представление 1.3.6.1.2.1.2.2.1.11.

Помимо стандартного набора переменных и таблиц MIB возможно использование индивидуальных расширений этой базы данных. Это можно продемонстрировать на примере MIB маршрутизаторов Cisco (рис. 4.4.13.1.2).

Рис. 4.4.13.1.2. Расширение базы данных mib маршрутизаторов Cisco

Префикс 1.3.6.1.4.1. является стандартным, далее следует расширение, индивидуальное для маршрутизаторов компании Cisco. Например, группа IPcheckpoint accounting позволяет контролировать поток байтов с определенных адресов локальной сети, что бывает важно при работе с коммерческими провайдерами услуг.

Коды-префиксы для различных производителей телекоммуникационного оборудования приведены в таблице 4.4.13.1.7.

Таблица 4.4.13.1.7 Коды-префиксы производителей

Код префиксаНазвание фирмы
0Зарезервировано
1Proteon
2IBM
3CMU
4UNIX
5ACC
6TWG
7Cayman
8PSI
9Cisco
10NSC
11HP
12Epilogue
13U of Tennessee
14BBN
15Xylogics, inc.
16Unisys
17Canstar
18Wellfleet
19TRW
20MIT

Группа локальных переменных IP checkpoint accounting (1.3.6.1.4.1.9.2.4.7.1) представляет собой таблицу, содержащую в каждом рекорде по четыре переменных (в скобках указан суффикс адреса MIBдля переменной):

  • ckactbyts [4] - число переданных байт,

  • ckactdst [2] - адрес места назначения,

  • ckactpkts [3] - число переданных пакетов

  • ckactsrc [1] - адрес отправителя

Маршрутизаторы Cisco поддерживают две базы данных: active accounting и checkpoint accounting. В первую заносятся текущие результаты измерения входящего и исходящего трафика. Эти результаты копируются в базу данных checkpoint accounting и, если там уже имеются предыдущие данные, они объединяются. Для очистки базы данных checkpointed database выдается команда clear IP accounting, а для базы checkpoint - clear IP accounting checkpoint (для использования этих команд необходимы системные привилегии). Объем памяти, выделяемой для этих баз данных задается командой IP accounting-threshold <значение>, по умолчанию максимальное число записей в базе данных равно 512.

Лучшим способом закрепить в памяти все вышесказанное является использование программы SNMPI (SNMP initiator) или ее аналога. Если в вашем распоряжении имеется ЭВМ, работающая под unix, например SUN, вы можете попутно узнать много полезного о вашей локальной сети. Ниже описан синтаксис обращения к SNMPI.

snmpi [-a agent] [-c community] [-f file] [-p portno] [-d] [-v] [-w]

SNMPI - крайне простая программа, используемая для тестирования SNMPD. Для того чтобы проверить, работает ли она, выдайте команду:

% SNMPI dump

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

Опция -a предлагает возможность ввести адрес SNMP-объекта - имя ЭВМ, IP-адрес или транспортный адрес. По умолчанию это местная ЭВМ. Аналогично опция -p позволяет задать номер UDP-порта. По умолчанию это порт 161.

Опция -c позволяет задать групповой пароль (community) для snmp-запроса. По умолчанию - это public, т.е. свободный доступ.

Опция -f позволяет выбрать файл, содержащий откомпилированные описания mib-модулей. По умолчанию - это objects.defs.

Опция -w включает режим наблюдения, осуществляя выдачу на терминал всех служебных сообщений. Уход из программы по команде quit (q).

Если вы работаете на IBM/PC, и ваша машина подключена к локальной сети, получите допуск к одной из UNIX-машин в сети (если вы его не имели) и приступайте. Можно начать с обращения типа:

SNMPI -a 193.124.224.33 (адрес или символьное имя надо взять из вашей локальной сети)

Машина откликнется, отобразив на экране SNMPI>, это означает, что программа имеется и вы можете вводить любые команды.

Начать можно со знакомства с системными переменными системы (в дальнейшем курсивом выделены команды, введенные с клавиатуры):

SNMPI> get sysdescr.0

snmpi> sysdescr.0="GS software (gs3-k), version 9.1(4) [fc1], software copyright (c) 1986-1993 by cisco systems, inc. compiled thu 25-mar-93 09:49 by daveu"

snmpi> get sysobjectid.0
snmpi> sysobjectid.0=1.3.6.1.4.1.9.1.1
snmpi> get sysuptime.0
snmpi> sysuptime.0=14 days, 7 hours, 0 minutes, 15.27 seconds (123481527 timeticks)
snmpi> get sysservices.0
snmpi> sysservices.0=0x6

Код 0x06 (sysservices.0) представляет собой сумму кодов уровней модели iso, поддерживаемых системой. Для справок: 0x01 - физический уровень; 0x02 - связной уровень; 0x04 - Интернет; 0x08 - связь точка-точка; 0x40 - прикладной уровень.

Если вы хотите получить информацию о состоянии интерфейсов на одной из ЭВМ, подключенных к вашей локальной сети (команды вызова snmpi далее не повторяются; в ниже приведенных примерах в круглых скобках помещены комментарии автора), выдайте команды:

SNMPI> next iftabl (команда next в данном случае соответствует запросу get-next, здесь понятие "следующий" подразумевает порядок переменных в MIB)

snmpi> ifindex.1=1
snmpi> get ifdescr.1
snmpi> ifdescr.1="ethernet0"
snmpi> get iftype.1
snmpi> iftype.1=ethernet-csmacd(6)
snmpi> get ifmtu.1
snmpi> ifmtu.1=1500
snmpi> get ifspeed.1
snmpi> ifspeed.1=10000000 (10Мб/с ethernet)
snmpi> get ifphysaddress.1
snmpi> ifphysaddress.1=0x00:00:0c:02:3a:49 (физический адрес интерфейса)
snmpi> next ifdescr.1 iftype.1 ifmtu.1 ifspeed.1 ifphysaddress.1
snmpi> ifdescr.2="serial0"
iftype.2=proppointtopointserial(22)
ifmtu.2=1500

ifspeed.2=2048000 (2 Мбит/c радиорелейный последовательный канал, спутниковый канал был бы охарактеризован точно также).

ifphysaddress.2=

В приведенном примере размеры пересылаемых блоков для Ethernet и радиорелейного последовательного канала идентичны и равны 1500. Помните, что SLIP-канал характеризуется как pointtopointserial, а не slip. Скорость обмена по SLIP-каналу не сообщается.

Теперь просмотрим некоторые UDP-переменные. Например:

SNMPI> next UDP
SNMPI> udpindatagrams.0=98931
SNMPI> next udpindatagrams.0 (обратите внимание на суффикс простой переменной)
SNMPI> udpnoports.0=60009
SNMPI> next udplocaladdress.0
SNMPI>udplocaladdress.193.124.137.14.7=193.124.137.14

(Идентификатор этого объекта - 1.3.6.1.2.1.7.5.1.1.193.124.137.14.7.)

SNMPI> next udplocalport
SNMPI> udplocalport.193.124.137.14.7=7
Если у вас возникла необходимость просмотреть таблицу, например, udptable, это
также можно сделать, используя snmpi:
SNMPI> next udptable
SNMPI> udplocaladdress.193.124.137.14.7=193.124.137.14
SNMPI> next udplocaladdress.193.124.137.14.7
SNMPI> udplocaladdress.193.124.224.33.67=193.124.224.33
SNMPI> next udplocaladdress.193.124.224.33.67
SNMPI> udplocaladdress.193.124.224.33.161=193.124.224.33
SNMPI> next udplocalport.193.124.224.33.67
SNMPI> udplocalport.193.124.224.33.161=161

Ниже показана методика выяснения алгоритма и параметров задания величины тайм-аута:

SNMPI> get tcprtoalgorithm.0 tcprtomin.0 tcprtomax.0 tcpmaxconn.0
SNMPI> tcprtoalgorithm.0=vanj(4) (vanj - алгоритм Ван Джакобсона для расчета времени тайм-аута)

tcprtomin.0=300

(минимальное значение тайм-аута = 300 мс)

tcprtomax.0=60000

(максимальное - 60 сек)

tcpmaxconn.0=-1

(никаких ограничений на число соединений)

Чтобы получить информацию о состоянии таблицы адресных преобразований, выдайте команду: SNMPI -a 193.124.224.33 dump at (процедуры с использование субкоманды dump требуют определенного времени для своего исполнения)

atifindex.1.1.193.124.224.33=1
atifindex.1.1.193.124.224.35=1
atifindex.3.1.192.148.166.203=3
atifindex.3.1.192.148.166.205=3
atifindex.5.1.145.249.30.33=5
atifindex.5.1.192.148.166.98=5
atphysaddress.1.1.193.124.224.33=0x00:00:0c:02:3a:49
atphysaddress.1.1.193.124.224.35=0x08:00:20:12:1b:b1
atphysaddress.1.1.193.124.224.40=0x00:00:cd:f9:0d:e7
atphysaddress.1.1.193.124.224.50=0x00:00:0c:02:fb:c5
atnetaddress.1.1.193.124.224.33=193.124.224.33
atnetaddress.1.1.193.124.224.35=193.124.224.35
atnetaddress.1.1.193.124.224.40=193.124.224.40
atnetaddress.1.1.193.124.224.50=193.124.224.50
atnetaddress.1.1.193.124.224.60=193.124.224.60

Текст выдачи с целью экономии места сокращен.

Обычно элементы таблицы расположены в порядке колонка-ряд. Если вы дошли до края колонки или всей таблицы ЭВМ выдаст вам, в зависимости от реализации программы, имя и значение следующего элемента или сообщение об ошибке.

Чтобы получить полный текст адресной таблицы в рамках SNMPI достаточно выдать команду:

SNMPI> dump ipaddrtable

snmpi> ipadentaddr.192.148.166.222=192.148.166.222
ipadentaddr.192.168.1.1=192.168.1.1
ipadentaddr.192.168.1.2=192.168.1.2
ipadentaddr.193.124.224.33=193.124.224.33
ipadentaddr.193.124.224.190=193.124.224.190
ipadentifindex.192.148.166.222=3
ipadentifindex.192.168.1.1=4
ipadentifindex.192.168.1.2=6
ipadentifindex.193.124.224.33=1
ipadentifindex.193.124.224.190=5

(Маски субсетей)

ipadentnetmask.192.148.166.222=255.255.255.224
ipadentnetmask.192.168.1.1=255.255.255.0
ipadentnetmask.192.168.1.2=255.255.255.0
ipadentnetmask.193.124.224.33=255.255.255.224
ipadentnetmask.193.124.224.190=255.255.255.224

ipadentbcastaddr.192.148.166.222= 1 (Все эти субсети используют для широковещательной адресации одни и те же биты).

ipadentbcastaddr.192.168.1.1=1
ipadentbcastaddr.192.168.1.2=1
ipadentbcastaddr.193.124.224.33=1
ipadentbcastaddr.193.124.224.190=1

ipadentreasmmaxsize.192.148.166.222= 18024 (С точки зрения фрагментации и последующей сборки дейтограмм данные субсети эквивалентны).

ipadentreasmmaxsize.192.168.1.1=18024
ipadentreasmmaxsize.192.168.1.2=18024
ipadentreasmmaxsize.193.124.224.33=18024
ipadentreasmmaxsize.193.124.224.190=18024

Данная пропечатка совместно с приведенной для IFtable позволяет получить достаточно полную картину о данной конкретной локальной сети. Чтобы познакомиться с ARP таблицей, можно воспользоваться командой:

sun> arp -a

itepgw.itep.ru (193.124.224.33) at 0:0:c:2:3a:49
nb.itep.ru (193.124.224.60) at 0:80:ad:2:24:b7

и дополнить полученные данные с помощью SNMPI:

SNMPI> dump ipnettomediatable

SNMPI> ipnettomediaifindex.1.193.124.224.33= 1
ipnettomediaifindex.1.193.124.224.35= 1
ipnettomediaifindex.3.192.148.166.193= 3
ipnettomediaifindex.3.192.148.166.196= 3
ipnettomediaifindex.3.193.124.226.110= 3
ipnettomediaifindex.5.145.249.30.33= 5
ipnettomediaifindex.5.192.148.166.100= 5
ipnettomediaphysaddress.1.193.124.224.33= 0x00:00:0c:02:3a:49
ipnettomediaphysaddress.3.192.148.166.196= 0xaa:00:04:00:0c:04
ipnettomediaphysaddress.3.192.148.166.198= 0xaa:00:04:00:0e:04
ipnettomediaphysaddress.3.192.148.166.203= 0x00:00:01:00:54:62
.........................................
ipnettomediaphysaddress.5.145.249.30.33= 0x00:00:0c:02:69:7d
ipnettomediaphysaddress.5.192.148.166.100= 0x00:20:af:15:c1:61
ipnettomediaphysaddress.5.192.148.166.101= 0x08:00:09:42:0d:e8
ipnettomedianetaddress.1.193.124.224.33= 193.124.224.33
ipnettomedianetaddress.1.193.124.224.35= 193.124.224.35
ipnettomedianetaddress.3.192.148.166.193= 192.148.166.193
ipnettomedianetaddress.3.193.124.226.110= 193.124.226.110
ipnettomedianetaddress.5.145.249.30.33= 145.249.30.33
ipnettomediatype.1.193.124.224.33= other(1)
ipnettomediatype.1.193.124.224.35= dynamic(3)
ipnettomediatype.1.193.124.224.37= dynamic(3)
ipnettomediatype.3.192.148.166.195= dynamic(3)
ipnettomediatype.3.192.148.166.222= other(1)
ipnettomediatype.5.193.124.224.190= other(1)
ipnettomediatype.5.193.124.225.33= other(1)
ipnettomediatype.5.193.124.225.35= dynamic(3)

Синтаксис каждого объекта описывается в рамках ASN.1 и показывает побитовое представление объекта. Кодирование объекта характеризует то, как тип объекта отображается через его синтаксис и передается по телекоммуникационным каналам. Кодирование производится в соответствии с базовыми правилами кодирования asn.1. Все описания объектов базируются на типовых шаблонах и кодах asn.1 (см. RFC-1213). Формат шаблона показан ниже:

object (Объект):

Имя типа объекта с соответствующим ему идентификатором объекта (object identifier)

syntax (Синтаксис):
asn.1 описание синтаксиса типа объекта.
definition (Определение):
Текстовое описание типа объекта.
access (доступ):
Опции доступа.
status (состояние):
Статус типа объекта.

Маршруты также являются объектами mib. Согласно требованиям к mib, каждому маршруту в этой базе соответствует запись, схема которой приведена ниже на рис. 4.4.13.1.3:

Рис. 4.4.13.1.3 Формат записи маршрутной таблицы в MIB

Поле место назначения представляет собой IP-адрес конечной точки маршрута. Поле индекс интерфейса определяет локальный интерфейс (физический порт), через который можно осуществить следующий шаг по маршруту. Следующие пять полей (метрика 1-5) характеризуют оценку маршрута. В простейшем случае, например для протокола RIP, достаточно было бы одного поля. Но для протокола OSPF необходимо 5 полей (разные TOS). Поле следующий шаг представляет собой IP-адрес следующего маршрутизатора. Поле тип маршрута имеет значение 4 для опосредованного достижения места назначения; 3 - для прямого достижения цели маршрута; 2 - для нереализуемого маршрута и 1 - для случаев отличных от вышеперечисленных.

Поле протокол маршрутизации содержит код протокола. Для RIP этот код равен 8, для OSPF - 13, для BGP - 14, для IGMP - 4, для прочих протоколов - 1. Поле возраст маршрута описывает время в секундах, прошедшее с момента последней коррекции маршрута. Следующее поле - маска маршрута используется для выполнения логической побитовой операции И над адресом в IP-дейтограммы перед сравнением результата с кодом, хранящимся в первом поле записи (место назначения). Последнее поле маршрутная информация содержит код, зависящий от протокола маршрутизации и обеспечивающий ссылки на соответствующую информацию в базе MIB.

Новым расширением MIB является система удаленного мониторинга сетей (RMON; RFC-1513, -1271). RMON служит для мониторирования сети в целом, а не отдельных сетевых устройств. В RMON предусмотрено 9 объектных групп (см. табл. 4.4.13.1.8).

Таблица 4.4.13.1.8. Функциональные группы RMON

ГруппаНазначение
statistics

Таблица, которая отслеживает около 20 статистических параметров сетевого трафика, включая общее число кадров и количество ошибок

historyПозволяет задать частоту и интервалы для измерений трафика
alarmПозволяет установить порог и критерии, при которых агенты выдают сигнал тревоги
hostТаблица, содержащая все узлы сети, данные по которым приводятся в сетевой статистике
hostTopN

Позволяет создать упорядоченные списки, которые базируются на пиковых значениях трафика группы ЭВМ

matrix

Две таблицы статистики трафика между парами узлов. Одна таблица базируется на адресах узлов-отправителей, другая - на адресах узлов-получателей

filter

Позволяет определить конкретные характеристики кадров в канале. Например, можно выделить TCP-трафик.

packet captureРаботает совместно с группой filter. Позволяет специфицировать объем ресурса памяти, выделяемой для запоминания кадров, которые отвечают критериям filter.
eventПозволяет специфицировать набор параметров или условий, которые должен контролировать агент. Когда условия выполняются, информация о событии записывается в специальный журнал

Для того чтобы реализовать функционирование RMON-агента, сетевая карта должна быть способна работать в режиме 6 (promiscuous mode), когда воспринимаются все пакеты, следующие по кабельному сетевому сегменту.

Назад: 4.4.13. Протокол управления SNMP
Оглавление: Телекоммуникационные технологии
Вперёд: 4.4.13.2. Нотация ASN.1

Бесплатный конструктор сайтов и Landing Page

Хостинг с DDoS защитой от 2.5$ + Бесплатный SSL и Домен

SSD VPS в Нидерландах под различные задачи от 2.6$

✅ Дешевый VPS-хостинг на AMD EPYC: 1vCore, 3GB DDR4, 15GB NVMe всего за €3,50!

🔥 Anti-DDoS защита 12 Тбит/с!

VPS в России, Европе и США

Бесплатная поддержка и администрирование

Оплата российскими и международными картами

🔥 VPS до 5.7 ГГц под любые задачи с AntiDDoS в 7 локациях

💸 Гифткод CITFORUM (250р на баланс) и попробуйте уже сейчас!

🛒 Скидка 15% на первый платеж (в течение 24ч)

Новости мира IT:

Архив новостей

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 7861149
Пресс-релизы — pr@citforum.ru
Обратная связь
Информация для авторов
Rambler's Top100 TopList This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2019 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...