находящихся в состоянии ESTABLISHED или CLOSE_WAIT.
Counter (счетчик). Положительное число в диапазоне 0..232-1, которое может только увеличиваться, допуская переполнение.
SEQUENCE. Этот объект аналогичен структуре в языке Си. Например, MIB определяет SEQUENCE с именем UdpEntry, содержащую информацию об активных UDP-узлах. В этой структуре содержится две записи:1.UdpLocalAddress типа IpAddress; местные IP-адреса; 1.UdpLocalPort типа INTEGER; номера местных портов.
SEQUENCE OF. Описание вектора, все элементы которого имеют один и тот же тип. Элементы могут представлять собой простые объекты, например, типа целое. В этом случае мы имеем одномерный список. Но элементами вектора могут быть объекты типа SEQUENCE, тогда этот вектор описывает двумерный массив.
В MIB Internet каждый объект должен иметь имя (OBJECT IDENTIFIER), синтакс и метод кодировки.
Стандарт ASN.1 определяет форму представления информации и имен. Имена MIB-переменных соответствуют в свою очередь стандартам ISO и CCITT. Структура имен носит иерархический характер, отображенный на рис. 1.39.
В табл. 1.26 охарактеризованы четыре простые переменные, идентификаторы которых помещены в нижней части рис. 1.39. Все эти переменные допускают только чтение.
В табл. 1.27 приведено описание таблицы udpTable (index=,), состоящей из двух простых переменных, предназначенных только для чтения.
Согласно иерархии рис. 1.39 переменные, соответствующие icmp, должны иметь префикс (идентификатор) 1.3.6.1.2.1.5 или в символьном выражении iso.org.dod.internet.mgmt.mib.icmp. Если вы хотите узнать значение какой-то переменной, следует послать запрос, содержащий соответствующие префикс и суффикс (последний определяет имя конкретной переменной). Для простой переменной суффикс имеет вид .0.
Рис. 1.39. Структура идентификаторов переменных в MIB
Таблица 1.26.
Имя Переменной
Тип данных
Описание
UdpInDatagrams
Counter
Число UDP-дейтограмм, присланных процессам пользователя
UdpNoPorts
Counter
Число полученных UDP-дейтограмм, для которых отсутствует прикладной процесс в порте назначения
UdpInErrors
Counter
Число не доставленных UDP-дейтограмм (например, ошибка контрольной суммы)
UdpDatagrams
Counter
Число посланных UDP-дейтограмм
Таблица 1.27.
Имя переменной
Тип данных
Описание
UdpLocalAddress
UdpLocalPort
IpAddress
(0...65535)
Местный IP-адрес для данного приемника
Местный номер порта приемника
Лучшим способом закрепить в памяти все вышесказанное является использование программы snmpi (SNMP initiator или SNMPWALK, NETGUARD, SNMPMAN для PC). Если в вашем распоряжении имеется ЭВМ, работающая под управлением UNIX, например SUN, вы можете попутно узнать много полезного о вашей локальной сети. Синтаксис обращения к snmpi:
snmpi [-a agent] [-с community] [-f file] [-p portno] [-d] [-v] [-w]
Программа snmpi крайне проста. Для того чтобы проверить, работает ли онa, выдайте команду
% snmpi dump
Следует отметить, что в ответ на эту операций будет произведена весьма объемная выдача.
Опция -a предлагает возможность ввести адрес SNMP-обьекта: имя ЭВМ, IP-адрес или транспортный адрес. По умолчанию это местная ЭВМ. Аналогично опция -р позволяет задать номер UDP-порта. По умолчанию это порт 61.
Опция -с позволяет задать групповой пароль (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 ї 1986-1993 by Cisco Systems, Inc. Compiled Thu 25-Mar-93 09:49 by daveu"
snmpi> get sysObjectID.0
snmpi> sys0bjectlD.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) представляет собой сумму кодов уровней модели SO, поддерживаемых системой. Для справок: 0х01 - физический уровень; 0х02 связной уровень; 0х04 - Интернет; 0х08 - связь точка-точка; 0х40 - прикладной уровень.
Если вы хотите получить информацию о состоянии интерфейсов на одной из ЭВМ, подключенных к вашей локальной сети (команды вызова snmpi далее не повторяются; в ниже приведенных примерах в круглых скобках помещены комментарии автора), выдайте команды:
snmpi> nextifTable
(команда next в данном случае соответствует запросу get-next, здесь понятие "следующий" подразумевает порядок переменных в MlВ)
snmpi> iflndex.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=0х00:00:0c:02:За: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 M бит/с, радиорелейный последовательный канал, спутниковый канал был бы охарактеризован точно также)
В приведенном примере размеры пересылаемых блоков для 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 -а 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=0x00: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
Отправить комментарий