snmptest

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

Синтаксис:

snmptest [-d] [-p порт] [-r повторные_попытки] [-t таймаут] -v 1 хост сообщество 
snmptest [-d] [-p порт] [-r повторные_попытки] [-t таймаут] [-v 2] хост noAuth
snmptest [-d] [-p порт] [-r повторные_попытки] [-t таймаут] [-v 2] хост сторона-источник сторона-адресат контекст

Опции:

-d
Выгрузить входные и выходные пакеты.
-p порт
Задать номер порта назначения.
-r повторные_попытки
Указать число повторных попыток.
-t таймаут
Таймаут (в секундах).
-v 1|2
Версия SNMP (значение по умолчанию – 2).
сообщество
Имя сообщества для транзакции с удаленной системой.
контекст
Набор ресурсов объектов, которые могут запрашиваться стороной назначения (сторона-адресат).
сторона-адресат
Имя стороны, предоставляющей информацию.
хост
IP-адрес или имя хоста.
сторона-источник
Имя стороны, запрашивающей информацию.

Платформы:

ЗОСРВ «Нейтрино»

Целевые архитектуры:

aarch64, arm, armv7, e2k, mips, ppc, x86

Описание:

Утилита 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-файл запрашивающему менеджеру.

Note: Отправлять этот 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 предлагает ввести значение:

Value:

Указанный тип переменной Вводимое значение
целое число Целое десятичное число
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

Классификация:

Базовые подсистемы ЗОСРВ «Нейтрино»

Тематические ссылки:

snmpd, snmpget, snmpgetnext, snmpnetstat, snmpset, snmpstatus, snmptranslate, snmptrap, snmptrapd, snmpwalk

/etc/acl.conf, /etc/context.conf, /etc/mib.txt, /etc/party.conf, /etc/snmpd.conf, /etc/view.conf

Основано на: RFC 1065, RFC 1066, RFC 1067, RFC 1441, RFC 1445, RFC 1446, RFC 1448, RFC 1449




Предыдущий раздел: Утилиты