1.2 Основы SNMP управления
SNMP определяет всего пять типов сообщений, которыми обмениваются менеджер и клиент.
Получить значение одной или нескольких переменных: оператор get-request. Получить следующую переменную после этой или несколько указанных переменных: оператор get-next-request. (Мы опишем то, что имеем в виду под словом "следующий" позже в этой главе.) Установить значение одной или нескольких переменных: оператор set-request. Выдать значение одной или нескольких переменных: оператор get-response. Это сообщение возвращается агентом менеджеру в ответ на операторы get-request, get-next-request и set-request. Уведомить менеджера, когда что-либо произошло с агентом: оператор trap.
Первые три сообщения отправляются от менеджера к агенту, а последние два от агента к менеджеру. (Мы будем называть первые три оператора как get, get-next и set.) На рисунке 1 приведены все пять операторов.
Так как четыре из пяти SNMP сообщений реализуются простой последовательностью запрос-отклик (менеджер отправляет запрос, а агент возвращает отклик), SNMP используют UDP. Это означает, что запрос от менеджера может не прибыть к агенту, а отклик от агента может не прибыть к менеджеру. В этом случае менеджер, возможно, отработает тайм-аут и осуществит повторную передачу.
Рисунок 1. Пять операторов SNMP.
Менеджер отправляет эти три запроса на UDP порт 161. Агент отправляет ловушки (trap) на UDP порт 162. Так как используются два разных порта, одна система может выступать в роли менеджера и агента одновременно.
На рисунке 2 показан формат пяти SNMP сообщений, инкапсулированных в UDP датаграмму.
Рисунок 2. Формат пяти SNMP сообщений.
Значение поля version равно 0. Это значение в действительности равно номеру версии минус единица [5].
На рисунке 3 показано значение для типа блока данных протокола (PDU type). (PDU - это блок данных протокола - Protocol Data Unit, обычно называемый "пакет".)
PDU type |
Имя |
|
0 |
get-request |
|
1 |
get-next-request |
|
2 |
set-request |
|
3 |
get-response |
|
4 |
trap |
Рисунок 3. Типы PDU сообщений SNMP.
Сообщество (community) это строка символов, в которой содержится пароль в открытом виде. Пароль используется при общении между менеджером и агентом. Обычное значение - 6-символьная строка public.
В операторах get, get-next и set менеджер устанавливает идентификатор запроса (request ID), который возвращается агентом в сообщении get-response. Мы видели этот тип переменной в других UDP приложениях. Это позволяет клиенту (менеджеру в данном случае) сопоставить отклики от сервера (агент) с запросами, которые были отправлены клиентом. Это поле также позволяет менеджеру выдать несколько запросов одному или нескольким агентам, а затем отсортировать полученные отклики [1].
Статус ошибки (error status) это целое число, которое возвращается агентам и указывает на ошибку. На рисунке 4 показаны значения, имена и описания ошибок.
статус ошибки |
Имя |
Описание |
|
0 |
noError |
все в порядке |
|
1 |
tooBig |
клиент не может поместить отклик в одно SNMP сообщение |
|
2 |
noSuchName |
оператор указывает на несуществующую переменную |
|
3 |
badValue |
в операции установки использовано недопустимое значение или сделана ошибка в синтаксисе |
|
4 |
readOnly |
менеджер попытался изменить переменную, которая помечена как "только для чтения" |
|
5 |
genErr |
неопознанная ошибка |
Рисунок 4. Значения статуса ошибки SNMP.
Если возникла ошибка, индекс ошибки (error index) это целое смещение, указывающее на то, в какой переменной произошла ошибка. Это значение устанавливается агентом только для ошибок noSuchName (нет такого имени), badValue (неверное значение) и readOnly (только для чтения).
Список имен переменных и значений следует в get, get-next и set запросах. Раздел значений игнорируется в операторах get и get-next.
Для оператора trap (PDU type равен 4) формат SNMP сообщения изменяется.
- ВВЕДЕНИЕ
- 1.Теоретические основы протокола SNMP
- 1.1 История развития протокола SNMP
- 1.2 Основы SNMP управления
- 1.3 Структура управляющей информации
- 1.4 Защита в SNMP
- 2. База управляющей информации (MIB)
- 2.1 Структура SNMP MIВ
- 2.2 Форматы и имена объектов SNMP MIB
- 2.3 Недостатки протокола SNMP
- Заключение