Мониторинг и администрирование информации по сетевому объекту
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:
Применительно к данному примеру сеанса, необходимо отметить следующее: - После ввода переменной ничего не происходит, пока не будет введена пустая строка.
- В данном примере введена одна переменная, однако при необходимости можно ввести любое количество переменных.
- Ввод этой неповторяющейся переменной (non-repeaters) инициирует отправку запроса GetNextRequest-PDU (но не запроса GetRequest-PDU).
- В запросе на ввод повторяющихся переменных (repeating variables) предлагается ввести номер группы объектов, начиная с которого должен выполняться коллективный (Bulk) запрос. Эти номера приведены в файле mib.txt. В данном примере введен номер 3, соответствующий группе трансляции адресов (Address Translation; at).
- Число повторов (repeat count) определяет количество последовательно проверяемых объектов базы данных MIB.
- 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 предлагает ввести значение:
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
Предыдущий раздел: Утилиты