snmptest

Мониторинг и администрирование информации по сетевому объекту

Синтаксис:

snmptest [-d] [-p порт] [-r повторные_попытки] [-t таймаут]

-v 1 хост сообщество


snmptest [-d] [-p порт] [-r повторные_попытки] [-t таймаут]

[-v 2] хост noAuth


snmptest [-d] [-p порт] [-r повторные_попытки] [-t таймаут]

[-v 2] хост сторона-источник сторона-адресат контекст

Поддерживаемые платформы:

Neutrino

Опции:

-d

Выгрузить входные и выходные пакеты.

-p порт

Задать номер порта назначения.

-r повторные_попытки

Указать число повторных попыток.

-t таймаут

Таймаут (в секундах).

-v 1|2

Версия SNMP (значение по умолчанию – 2).

сообщество

Имя сообщества для транзакции с удаленной системой.

контекст

Набор ресурсов объектов, которые могут запрашиваться стороной назначения (сторона-адресат).

сторона-адресат

Имя стороны, предоставляющей информацию.

хост

IP-адрес или имя хоста.

сторона-источник

Имя стороны, запрашивающей информацию.

Описание:

Утилита snmptest осуществляет мониторинг и администрирование информации по сетевому объекту с использованием простого протокола управления сетью (Simple Network Management Protocol; SNMP). В настоящее время широко используются две версии протокола SNMP – SNMPv1 и SNMPv2. В будущем появятся новые версии.

В терминологии протокола SNMP сервер принято называть агентом (agent), а клиент – менеджером (manager). Агенты и менеджеры обмениваются сетевой информацией, предоставляемой в блоках протокольных данных (Protocol Data Unit; PDU). Менеджер отправляет агенту запрос (PDU) на получение информации. Агент извлекает информацию из сетевой базы управляющей информации (Management Information Database; MIB) и передает ответный PDU менеджеру. Менеджер также может запрашивать (отправляя различные PDU агенту) изменение MIB или автоматически зарегистрированные trap-файлы.

Утилита snmptest осуществляет интерактивную генерацию PDU из командной строки менеджера SNMP.

Для запуска агента необходимо запустить snmpd на соответствующей машине в сети.

Интерактивный сеанс менеджера инициируется вызовом утилиты snmptest. Утилита выводит приглашение:

Variable:

Это означает запуск интерактивного сеанса. Здесь можно ввести одно или несколько имен переменных (по одному в каждой строке). Если введена пустая строка, утилита snmptest отправляет сетевому объекту запрос на все переменные (в одном пакете). Спецификация формата имен переменных приведена в файле mib.txt.

Например, если используется SNMPv1, можно ввести:

snmptest -v 1 netdev-kbox.cc.cmu.edu public

или, если используется SNMPv2:

snmptest netdev-kbox.cc.cmu.edu manager_party agent_party agent_context

Если доступ к хосту разрешен, появляется приглашение к вводу переменной:

Variable:

Далее, если ввести

Variable: system.sysdescr.0


Variable:


После ввода пустой строки, если запрос обработан успешно, утилита snmptest сообщает о получении ответа Get Response и выводит информацию по объекту system.sysdescr.0.

По умолчанию утилита snmptest отправляет PDU с запросом GET, однако это поведение утилиты можно изменить. В строке приглашения Variable: можно ввести команду $:

Команда

Значение

$B

Отправить GetBulkRequest-PDU

$D

Переключить выгрузку по каждому отправленному и полученному пакету

$G

Отправить GetRequest-PDU

$I

Отправить InformRequest-PDU

$N

Отправить GetNextRequest-PDU

$Q

Завершить работу утилиты.

$S

Отправить SetRequest-PDU

$T

Отправить SNMPv2-Trap-PDU


Краткое описание PDU:

GetBulkRequest-PDU ($B)

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

Variable: $B

Request type is Bulk Request

Enter a blank line to terminate the list of non-repeaters

and to begin the repeating variables

Variable: system.sysDescr.0

Variable:

Now input the repeating variables

Variable: 3

Variable:

What repeat count? 4

Received Get Response from 10.7.0.55

requestid 0x7C81 errstat 0x0 errindex 0x0

system.sysObjectID.0 = OID: enterprises.QNX-Systems.1.1

at.atTable.atEntry.atIfIndex.1.1.10.0.2.51 = 1

at.atTable.atEntry.atIfIndex.1.1.10.7.0.55 = 1

at.atTable.atEntry.atPhysAddress.1.1.10.0.2.51 = Hex: 00 E0 29 34 6E 4D

at.atTable.atEntry.atPhysAddress.1.1.10.7.0.55 = Hex: 00 01 02 C1 8C 40

Variable:


Применительно к данному примеру сеанса, необходимо отметить следующее:

GetRequest-PDU ($G)

Этот PDU используется по умолчанию. Агент получает запрос на передачу информации о сетевом объекте. В ответ агент передает сформированный им PDU, содержащий запрошенную информацию. Для получения дополнительной информации см. описание snmpget.

InformRequest-PDU ($I)

Менеджер SNMP использует этот тип PDU для предоставления другим менеджерам скрытой от них информации MIB. Запрос Inform подобен trap-файлу в том, что он может использоваться для передачи уведомления о событии. Однако, в отличие от trap-файла, в ответ на запрос Inform всегда должно выдаваться подтверждение. Следовательно, эти запросы реализуют более надежный способ отправки уведомлений (в сравнении с trap-файлами), но при этом повышают нагрузку на сетевые ресурсы.

GetNextRequest-PDU ($N)

Этот блок PDU подобен блоку GetRequest-PDU, но отличается тем, что запрашивается следующий объект в базе данных MIB.

SetRequest-PDU ($S)

Этот PDU изменяет объекты в базе данных MIB на машине агента. Такой сеанс может выглядеть следующим образом:

Variable: $S

Request type is Set Request

Variable: system.sysName.0

Type [i|s|x|d|n|o|t|a]: s

Value: James Bond

Переменная

Received Get Response from 10.7.0.55

requestid 0x6EC5 errstat 0x0 errindex 0x0

system.sysName.0 = "James Bond"

Variable:


В этом сеансе запрашивается изменение имени системы, сохраненного в базе данных MIB на машине агента. Поскольку пользователь имеет полномочия на выполнение этой операции, утилита snmptest предлагает ввести переменную, которую необходимо изменить, тип данных (в данном примере – s, то есть "строка") и новое значение. После ввода обязательной пустой строки объекта изменяется и возвращается новое значение.

SNMPv2-Trap-PDU ($T)

Менеджеры используют этот PDU для отправки агентам запроса на асинхронную передачу информации о событиях. При возникновении определенного события агент передает trap-файл запрашивающему менеджеру.

Примечание. Отправлять этот PDU можно только после запуска snmptrapd на машине агента.

Если введена команда $I, $S или $T, утилита snmptest запрашивает информацию о каждой переменной. Сначала предлагается указать тип переменной:

Type [i|s|x|d|n|o|t|a]:

Тип переменной

Вводимый символ

целое число

i

строка

s

шестнадцатеричная строка

x

десятичная строка

d

нулевая строка

n

идентификатор объекта

o

отсчет времени

t

IP-адрес

a


После ввода символа утилита snmptest предлагает ввести значение:

Значение

Указанный тип переменной

Вводимое значение

целое число

Целое десятичное число

IP-адрес

IP-адрес в стандартном представлении для Интернета (нотация с точками)

идентификатор объекта

Идентификатор объекта в виде чисел с точками.

строка

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

отсчет времени

Целое десятичное число.


Если применяется SNMP версии 2, на машине агента должны быть сконфигурированы следующие файлы: Переменные среды:

MIBFILE

Задает местоположение файла mib.txt. Например, MIBFILE=путь/mib.txt (путь по умолчанию – /etc).

SUFFIX

Если в рабочей среде существует переменная SUFFIX, то для всех идентификаторов объектов, имеющих символическое имя, выводится только последний элемент. Примеры:

Идентификатор

system.syscontact.0

выводится в виде

syscontact.0

Идентификатор

udp.udpTable.udpEntry.udpLocalAddress.0.0.0.161

выводится в виде

udpLocalAddress.0.0.0.161