Процедуры, диагностики и безопасность в Интернет

Сетевая диагностика. Управляющая база данных MIB

Разбить на страницы
Показывать лекцию целиком

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

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

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

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

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
Системные переменные MIB
Системная переменная Описание Код
Sysdescr Текстовое описание объекта; 1
Sysobjectid Идентификатор производителя в рамках дерева 1.3.6.1.4.1 2
Sysuptime Время с момента последней загрузки системы (timeticks); 3
Syscontact Имя системного менеджера и способы связи с ним; 4
Sysname Полное имя домена; 5
Syslocation Физическое местоположение системы; 6
Sysservice Величина, которая характеризует услуги, предоставляемые узлом (сумма номеров уровней модели OSI); 7
Переменные IFtable (интерфейсы)
Переменная описания интерфейсов (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 Число пакетов, доставленных на верхний системный уровень (nonunicast). 12
IfInDiscads counter Число полученных, но отвергнутых пакетов. 13
IfInErrors counter Число пакетов, полученных с ошибкой; 14
IfInUnknown-Protos counter Число пакетов, полученных с ошибочным кодом протокола; 15
IfOutOctets counter Число отправленных байтов; 16
IfOutUcastPkts counter Число unicast- пакетов, полученных с верхнего системного уровня; 17
IfOutNucastPkts counter Число мультикастинг- и широковещательных пакетов, полученных с верхнего системного уровня; 18
IfOutDiscads counter Количество отвергнутых пакетов из числа отправленных; 19
IfOutErrors counter Число отправленных пакетов, содержащих ошибки; 20
IfOutQlen gauge Число пакетов в очереди на отправку; 21

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

Название объекта Цифра-точечное представление
org 1.3
dod 1.3.6
internet 1.3.6.1
directory 1.3.6.1.1
mgmt 1.3.6.1.2
experimental 1.3.6.1.3
private 1.3.6.1.4
enterprises 1.3.6.1.4.1
security 1.3.6.1.5
snmpV2 1.3.6.1.6
snmpDomains 1.3.6.1.6.1
snmpProxys 1.3.6.1.6.2
snmpModules 1.3.6.1.6.3
snmpMIB 1.3.6.1.6.3.1
snmpMIBObjects 1.3.6.1.6.3.1.1
snmpTraps 1.3.6.1.6.3.1.1.5
mib-2 1.3.6.1.2.1
ifMIB 1.3.6.1.2.1.31
interfaces 1.3.6.1.2.1.2
ifMIBObjects 1.3.6.1.2.1.31.1
ifConformance 1.3.6.1.2.1.31.2
ifTableLastChange 1.3.6.1.2.1.31.1.5
ifXTable 1.3.6.1.2.1.31.1.1
ifStackTable 1.3.6.1.2.1.31.1.2
ifStackLastChange 1.3.6.1.2.1.31.1.6
ifRcvAddressTable 1.3.6.1.2.1.31.1.4
ifTestTable 1.3.6.1.2.1.31.1.3
ifXEntry 1.3.6.1.2.1.31.1.1.1
ifName 1.3.6.1.2.1.31.1.1.1.1
ifInMulticastPkts 1.3.6.1.2.1.31.1.1.1.2
ifInBroadcastPkts 1.3.6.1.2.1.31.1.1.1.3
ifOutMulticastPkts 1.3.6.1.2.1.31.1.1.1.4
ifOutBroadcastPkts 1.3.6.1.2.1.31.1.1.1.5
ifLinkUpDownTrapEnable 1.3.6.1.2.1.31.1.1.1.14
ifHighSpeed 1.3.6.1.2.1.31.1.1.1.15
ifPromiscuousMode 1.3.6.1.2.1.31.1.1.1.16
ifConnectorPresent 1.3.6.1.2.1.31.1.1.1.17
ifAlias 1.3.6.1.2.1.31.1.1.1.18
ifCounterDiscontinuityTime 1.3.6.1.2.1.31.1.1.1.19
ifStackEntry 1.3.6.1.2.1.31.1.2.1
ifStackHigherLayer 1.3.6.1.2.1.31.1.2.1.1
ifStackLowerLayer 1.3.6.1.2.1.31.1.2.1.2
ifStackStatus 1.3.6.1.2.1.31.1.2.1.3
ifRcvAddressEntry 1.3.6.1.2.1.31.1.4.1
ifRcvAddressAddress 1.3.6.1.2.1.31.1.4.1.1
ifRcvAddressStatus 1.3.6.1.2.1.31.1.4.1.2
ifRcvAddressType 1.3.6.1.2.1.31.1.4.1.3
ifTestEntry 1.3.6.1.2.1.31.1.3.1
ifTestId 1.3.6.1.2.1.31.1.3.1.1
ifTestStatus 1.3.6.1.2.1.31.1.3.1.2
ifTestType 1.3.6.1.2.1.31.1.3.1.3
ifTestResult 1.3.6.1.2.1.31.1.3.1.4
ifTestCode 1.3.6.1.2.1.31.1.3.1.5
ifTestOwner 1.3.6.1.2.1.31.1.3.1.6
ifGroups 1.3.6.1.2.1.31.2.1
ifCompliances 1.3.6.1.2.1.31.2.2
ifGeneralInformationGroup 1.3.6.1.2.1.31.2.1.10
ifFixedLengthGroup 1.3.6.1.2.1.31.2.1.2
ifHCFixedLengthGroup 1.3.6.1.2.1.31.2.1.3
ifPacketGroup 1.3.6.1.2.1.31.2.1.4
ifHCPacketGroup 1.3.6.1.2.1.31.2.1.5
ifVHCPacketGroup 1.3.6.1.2.1.31.2.1.6
ifRcvAddressGroup 1.3.6.1.2.1.31.2.1.7
ifStackGroup2 1.3.6.1.2.1.31.2.1.11
ifCounterDiscontinuityGroup 1.3.6.1.2.1.31.2.1.13
ifGeneralGroup 1.3.6.1.2.1.31.2.1.1
ifTestGroup 1.3.6.1.2.1.31.2.1.8
ifStackGroup 1.3.6.1.2.1.31.2.1.9
ifOldObjectsGroup 1.3.6.1.2.1.31.2.1.12
ifCompliance2 1.3.6.1.2.1.31.2.2.2
ifCompliance 1.3.6.1.2.1.31.2.2.1
ifNumber 1.3.6.1.2.1.2.1
ifTable 1.3.6.1.2.1.2.2
ifEntry 1.3.6.1.2.1.2.2.1
ifIndex 1.3.6.1.2.1.2.2.1.1
ifDescr 1.3.6.1.2.1.2.2.1.2
ifType 1.3.6.1.2.1.2.2.1.3
ifMtu 1.3.6.1.2.1.2.2.1.4
ifSpeed 1.3.6.1.2.1.2.2.1.5
ifPhysAddress 1.3.6.1.2.1.2.2.1.6
ifAdminStatus 1.3.6.1.2.1.2.2.1.7
ifOperStatus 1.3.6.1.2.1.2.2.1.8
ifLastChange 1.3.6.1.2.1.2.2.1.9
ifInOctets 1.3.6.1.2.1.2.2.1.10
ifInUcastPkts 1.3.6.1.2.1.2.2.1.11
ifInNUcastPkts 1.3.6.1.2.1.2.2.1.12
ifInDiscards 1.3.6.1.2.1.2.2.1.13
ifInErrors 1.3.6.1.2.1.2.2.1.14
ifInUnknownProtos 1.3.6.1.2.1.2.2.1.15
ifOutOctets 1.3.6.1.2.1.2.2.1.16
ifOutUcastPkts 1.3.6.1.2.1.2.2.1.17
ifOutNUcastPkts 1.3.6.1.2.1.2.2.1.18
ifOutDiscards 1.3.6.1.2.1.2.2.1.19
ifOutErrors 1.3.6.1.2.1.2.2.1.20
ifOutQLen 1.3.6.1.2.1.2.2.1.21
ifSpecific 1.3.6.1.2.1.2.2.1.22
Переменные IP-группы
Переменная 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
IPAdEntReasm-Maxsize [0...65535] Размер наибольшей IP-дейтограммы, полученной интерфейсом, которая может быть собрана. 5
Переменные TCP-группы
Переменные 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] Местный номер порта.
tcpconnlocal address ipaddress Удаленный ip-адрес.
tcpconnrem port [0...65535] Удаленный номер порта
Переменные 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
Переменные AT-группы (attable, преобразование адресов).
Переменные at-группы Тип данных Описание atEntry
atIfIndex integer Число интерфейсов. 1
atPhysAddress physaddress Физический адрес. Если эта переменная равна строке нулевой длины, физический адрес отсутствует. 2
atNetAddress networkaddress IP-адрес. 3

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

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

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

Название объекта Описание Код
SnmpInPkts Число пакетов, которые получены от слоя, расположенного ниже SNMP. 1
SnmpOutPkts Число пакетов, доставленных от SNMP к нижележащему слою. 2
SnmpInBadVersions Индицирует число PDU, полученных с ошибкой в поле версия. 3
snmpInBadCommunity-Names Индицирует число PDU, полученных с нечитаемым или нелегальным именем community. 4
snmpInBadCommunity-Uses Полное число 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 TRAP 29
snmpEnableAuthTraps Говорит о том, разрешены или нет ловушки (TRAP). 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-узлах. В этой структуре содержится две записи:

  • UDPlocaladdress типа ipaddress, содержит местные IP-адреса;
  • UDPlocalport типа integer, содержит номера местных портов.
  • SEQUENCE OF. Описание вектора, все элементы которого имеют один и тот же тип. Элементы могут представлять собой простые объекты, например, типа целое. В этом случае мы имеем одномерный список. Но элементами вектора могут быть объекты типа SEQUENCE, тогда этот вектор описывает двумерный массив.

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

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

    (рис 9.1) Структура идентификаторов переменных в MIB

    В приведенной ниже таблице охарактеризованы четыре простые переменные, идентификаторы которых помещены в нижней части . Все эти переменные допускают только чтение (таблица 9.1">рис 9.7б">таблица 9.1. Все эти переменные допускают только чтение (Имя переменной Тип данных Описание Код udpInDatagrams counter Число UDP-дейтограмм, присланных процессам пользователя. 1 udpNoPorts counter Число полученных UDP-дейтограмм, для которых отсутствует прикладной процесс в порте назначения. 2 udpInErrors counter Число UDP-дейтограмм, не доставленных по причинам, отличающимся от отсутствия процесса со стороны порта назначения (напр., ошибка контрольной суммы). 3 udpOutDatagrams counter Число посланных UDP-дейтограмм. 4 udpTable counter Таблица, содержащая данные о принимающей стороне 5

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

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

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

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

    (рис 9.2) Расширение базы данных MIB маршрутизаторов Cisco

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

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

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

    Группа локальных переменных 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, а для базы checkpointclear 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 — прикладной уровень.

    Если у вас возникла необходимость просмотреть таблицу, например, 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

    Если вы хотите получить временные зависимости вариаций потоков дейтограмм, можно воспользоваться услугами программы MRTG. Ниже показана методика выяснения алгоритма и параметров задания величины тайм-аута:

    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 таблицей, можно воспользоваться командой:

    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, каждому маршруту в этой базе соответствует запись, схема которой приведена ниже на рис 9.3.

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

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

    (рис 9.3) Формат записи маршрутной таблицы в MIB

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

    Функциональные группы RMON
    Группа Назначение
    statistics Таблица, которая отслеживает около 20 статистических параметров сетевого трафика, включая общее число кадров и количество ошибок
    history Позволяет задать частоту и интервалы для измерений трафика
    alarm Позволяет установить порог и критерии, при которых агенты выдают сигнал тревоги
    host Таблица, содержащая все узлы сети, данные по которым приводятся в сетевой статистике
    hostTopN Позволяет создать упорядоченные списки, которые базируются на пиковых значениях трафика группы ЭВМ
    matrix Две таблицы статистики трафика между парами узлов. Одна таблица базируется на адресах узлов-отправителей, другая — на адресах узлов-получателей
    filter Позволяет определить конкретные характеристики кадров в канале. Например, можно выделить TCP-трафик.
    packet capture Работает совместно с группой filter. Позволяет специфицировать объем ресурса памяти, выделяемой для запоминания кадров, которые отвечают критериям filter.
    event Позволяет специфицировать набор параметров или условий, которые должен контролировать агент. Когда условия выполняются, информация о событии записывается в специальный журнал

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

    Страницы:

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

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

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

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

    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
    Системные переменные MIB
    Системная переменная Описание Код
    Sysdescr Текстовое описание объекта; 1
    Sysobjectid Идентификатор производителя в рамках дерева 1.3.6.1.4.1 2
    Sysuptime Время с момента последней загрузки системы (timeticks); 3
    Syscontact Имя системного менеджера и способы связи с ним; 4
    Sysname Полное имя домена; 5
    Syslocation Физическое местоположение системы; 6
    Sysservice Величина, которая характеризует услуги, предоставляемые узлом (сумма номеров уровней модели OSI); 7
    Переменные IFtable (интерфейсы)
    Переменная описания интерфейсов (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 Число пакетов, доставленных на верхний системный уровень (nonunicast). 12
    IfInDiscads counter Число полученных, но отвергнутых пакетов. 13
    IfInErrors counter Число пакетов, полученных с ошибкой; 14
    IfInUnknown-Protos counter Число пакетов, полученных с ошибочным кодом протокола; 15
    IfOutOctets counter Число отправленных байтов; 16
    IfOutUcastPkts counter Число unicast- пакетов, полученных с верхнего системного уровня; 17
    IfOutNucastPkts counter Число мультикастинг- и широковещательных пакетов, полученных с верхнего системного уровня; 18
    IfOutDiscads counter Количество отвергнутых пакетов из числа отправленных; 19
    IfOutErrors counter Число отправленных пакетов, содержащих ошибки; 20
    IfOutQlen gauge Число пакетов в очереди на отправку; 21

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

    Название объекта Цифра-точечное представление
    org 1.3
    dod 1.3.6
    internet 1.3.6.1
    directory 1.3.6.1.1
    mgmt 1.3.6.1.2
    experimental 1.3.6.1.3
    private 1.3.6.1.4
    enterprises 1.3.6.1.4.1
    security 1.3.6.1.5
    snmpV2 1.3.6.1.6
    snmpDomains 1.3.6.1.6.1
    snmpProxys 1.3.6.1.6.2
    snmpModules 1.3.6.1.6.3
    snmpMIB 1.3.6.1.6.3.1
    snmpMIBObjects 1.3.6.1.6.3.1.1
    snmpTraps 1.3.6.1.6.3.1.1.5
    mib-2 1.3.6.1.2.1
    ifMIB 1.3.6.1.2.1.31
    interfaces 1.3.6.1.2.1.2
    ifMIBObjects 1.3.6.1.2.1.31.1
    ifConformance 1.3.6.1.2.1.31.2
    ifTableLastChange 1.3.6.1.2.1.31.1.5
    ifXTable 1.3.6.1.2.1.31.1.1
    ifStackTable 1.3.6.1.2.1.31.1.2
    ifStackLastChange 1.3.6.1.2.1.31.1.6
    ifRcvAddressTable 1.3.6.1.2.1.31.1.4
    ifTestTable 1.3.6.1.2.1.31.1.3
    ifXEntry 1.3.6.1.2.1.31.1.1.1
    ifName 1.3.6.1.2.1.31.1.1.1.1
    ifInMulticastPkts 1.3.6.1.2.1.31.1.1.1.2
    ifInBroadcastPkts 1.3.6.1.2.1.31.1.1.1.3
    ifOutMulticastPkts 1.3.6.1.2.1.31.1.1.1.4
    ifOutBroadcastPkts 1.3.6.1.2.1.31.1.1.1.5
    ifLinkUpDownTrapEnable 1.3.6.1.2.1.31.1.1.1.14
    ifHighSpeed 1.3.6.1.2.1.31.1.1.1.15
    ifPromiscuousMode 1.3.6.1.2.1.31.1.1.1.16
    ifConnectorPresent 1.3.6.1.2.1.31.1.1.1.17
    ifAlias 1.3.6.1.2.1.31.1.1.1.18
    ifCounterDiscontinuityTime 1.3.6.1.2.1.31.1.1.1.19
    ifStackEntry 1.3.6.1.2.1.31.1.2.1
    ifStackHigherLayer 1.3.6.1.2.1.31.1.2.1.1
    ifStackLowerLayer 1.3.6.1.2.1.31.1.2.1.2
    ifStackStatus 1.3.6.1.2.1.31.1.2.1.3
    ifRcvAddressEntry 1.3.6.1.2.1.31.1.4.1
    ifRcvAddressAddress 1.3.6.1.2.1.31.1.4.1.1
    ifRcvAddressStatus 1.3.6.1.2.1.31.1.4.1.2
    ifRcvAddressType 1.3.6.1.2.1.31.1.4.1.3
    ifTestEntry 1.3.6.1.2.1.31.1.3.1
    ifTestId 1.3.6.1.2.1.31.1.3.1.1
    ifTestStatus 1.3.6.1.2.1.31.1.3.1.2
    ifTestType 1.3.6.1.2.1.31.1.3.1.3
    ifTestResult 1.3.6.1.2.1.31.1.3.1.4
    ifTestCode 1.3.6.1.2.1.31.1.3.1.5
    ifTestOwner 1.3.6.1.2.1.31.1.3.1.6
    ifGroups 1.3.6.1.2.1.31.2.1
    ifCompliances 1.3.6.1.2.1.31.2.2
    ifGeneralInformationGroup 1.3.6.1.2.1.31.2.1.10
    ifFixedLengthGroup 1.3.6.1.2.1.31.2.1.2
    ifHCFixedLengthGroup 1.3.6.1.2.1.31.2.1.3
    ifPacketGroup 1.3.6.1.2.1.31.2.1.4
    ifHCPacketGroup 1.3.6.1.2.1.31.2.1.5
    ifVHCPacketGroup 1.3.6.1.2.1.31.2.1.6
    ifRcvAddressGroup 1.3.6.1.2.1.31.2.1.7
    ifStackGroup2 1.3.6.1.2.1.31.2.1.11
    ifCounterDiscontinuityGroup 1.3.6.1.2.1.31.2.1.13
    ifGeneralGroup 1.3.6.1.2.1.31.2.1.1
    ifTestGroup 1.3.6.1.2.1.31.2.1.8
    ifStackGroup 1.3.6.1.2.1.31.2.1.9
    ifOldObjectsGroup 1.3.6.1.2.1.31.2.1.12
    ifCompliance2 1.3.6.1.2.1.31.2.2.2
    ifCompliance 1.3.6.1.2.1.31.2.2.1
    ifNumber 1.3.6.1.2.1.2.1
    ifTable 1.3.6.1.2.1.2.2
    ifEntry 1.3.6.1.2.1.2.2.1
    ifIndex 1.3.6.1.2.1.2.2.1.1
    ifDescr 1.3.6.1.2.1.2.2.1.2
    ifType 1.3.6.1.2.1.2.2.1.3
    ifMtu 1.3.6.1.2.1.2.2.1.4
    ifSpeed 1.3.6.1.2.1.2.2.1.5
    ifPhysAddress 1.3.6.1.2.1.2.2.1.6
    ifAdminStatus 1.3.6.1.2.1.2.2.1.7
    ifOperStatus 1.3.6.1.2.1.2.2.1.8
    ifLastChange 1.3.6.1.2.1.2.2.1.9
    ifInOctets 1.3.6.1.2.1.2.2.1.10
    ifInUcastPkts 1.3.6.1.2.1.2.2.1.11
    ifInNUcastPkts 1.3.6.1.2.1.2.2.1.12
    ifInDiscards 1.3.6.1.2.1.2.2.1.13
    ifInErrors 1.3.6.1.2.1.2.2.1.14
    ifInUnknownProtos 1.3.6.1.2.1.2.2.1.15
    ifOutOctets 1.3.6.1.2.1.2.2.1.16
    ifOutUcastPkts 1.3.6.1.2.1.2.2.1.17
    ifOutNUcastPkts 1.3.6.1.2.1.2.2.1.18
    ifOutDiscards 1.3.6.1.2.1.2.2.1.19
    ifOutErrors 1.3.6.1.2.1.2.2.1.20
    ifOutQLen 1.3.6.1.2.1.2.2.1.21
    ifSpecific 1.3.6.1.2.1.2.2.1.22
    Переменные IP-группы
    Переменная 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
    IPAdEntReasm-Maxsize [0...65535] Размер наибольшей IP-дейтограммы, полученной интерфейсом, которая может быть собрана. 5
    Переменные TCP-группы
    Переменные 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] Местный номер порта.
    tcpconnlocal address ipaddress Удаленный ip-адрес.
    tcpconnrem port [0...65535] Удаленный номер порта
    Переменные 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
    Переменные AT-группы (attable, преобразование адресов).
    Переменные at-группы Тип данных Описание atEntry
    atIfIndex integer Число интерфейсов. 1
    atPhysAddress physaddress Физический адрес. Если эта переменная равна строке нулевой длины, физический адрес отсутствует. 2
    atNetAddress networkaddress IP-адрес. 3

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

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

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

    Название объекта Описание Код
    SnmpInPkts Число пакетов, которые получены от слоя, расположенного ниже SNMP. 1
    SnmpOutPkts Число пакетов, доставленных от SNMP к нижележащему слою. 2
    SnmpInBadVersions Индицирует число PDU, полученных с ошибкой в поле версия. 3
    snmpInBadCommunity-Names Индицирует число PDU, полученных с нечитаемым или нелегальным именем community. 4
    snmpInBadCommunity-Uses Полное число 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 TRAP 29
    snmpEnableAuthTraps Говорит о том, разрешены или нет ловушки (TRAP). 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-узлах. В этой структуре содержится две записи:

  • UDPlocaladdress типа ipaddress, содержит местные IP-адреса;
  • UDPlocalport типа integer, содержит номера местных портов.
  • SEQUENCE OF. Описание вектора, все элементы которого имеют один и тот же тип. Элементы могут представлять собой простые объекты, например, типа целое. В этом случае мы имеем одномерный список. Но элементами вектора могут быть объекты типа SEQUENCE, тогда этот вектор описывает двумерный массив.

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

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

    (рис 9.1) Структура идентификаторов переменных в MIB

    В приведенной ниже таблице охарактеризованы четыре простые переменные, идентификаторы которых помещены в нижней части . Все эти переменные допускают только чтение (таблица 9.1">рис 9.7б">таблица 9.1. Все эти переменные допускают только чтение (Имя переменной Тип данных Описание Код udpInDatagrams counter Число UDP-дейтограмм, присланных процессам пользователя. 1 udpNoPorts counter Число полученных UDP-дейтограмм, для которых отсутствует прикладной процесс в порте назначения. 2 udpInErrors counter Число UDP-дейтограмм, не доставленных по причинам, отличающимся от отсутствия процесса со стороны порта назначения (напр., ошибка контрольной суммы). 3 udpOutDatagrams counter Число посланных UDP-дейтограмм. 4 udpTable counter Таблица, содержащая данные о принимающей стороне 5

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

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

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

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

    (рис 9.2) Расширение базы данных MIB маршрутизаторов Cisco

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

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

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

    Группа локальных переменных 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, а для базы checkpointclear 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 — прикладной уровень.

    Если у вас возникла необходимость просмотреть таблицу, например, 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

    Если вы хотите получить временные зависимости вариаций потоков дейтограмм, можно воспользоваться услугами программы MRTG. Ниже показана методика выяснения алгоритма и параметров задания величины тайм-аута:

    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 таблицей, можно воспользоваться командой:

    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, каждому маршруту в этой базе соответствует запись, схема которой приведена ниже на рис 9.3.

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

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

    (рис 9.3) Формат записи маршрутной таблицы в MIB

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

    Функциональные группы RMON
    Группа Назначение
    statistics Таблица, которая отслеживает около 20 статистических параметров сетевого трафика, включая общее число кадров и количество ошибок
    history Позволяет задать частоту и интервалы для измерений трафика
    alarm Позволяет установить порог и критерии, при которых агенты выдают сигнал тревоги
    host Таблица, содержащая все узлы сети, данные по которым приводятся в сетевой статистике
    hostTopN Позволяет создать упорядоченные списки, которые базируются на пиковых значениях трафика группы ЭВМ
    matrix Две таблицы статистики трафика между парами узлов. Одна таблица базируется на адресах узлов-отправителей, другая — на адресах узлов-получателей
    filter Позволяет определить конкретные характеристики кадров в канале. Например, можно выделить TCP-трафик.
    packet capture Работает совместно с группой filter. Позволяет специфицировать объем ресурса памяти, выделяемой для запоминания кадров, которые отвечают критериям filter.
    event Позволяет специфицировать набор параметров или условий, которые должен контролировать агент. Когда условия выполняются, информация о событии записывается в специальный журнал

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

    Вернуться к учебному плану