Опубликован: 10.10.2007 | Уровень: специалист | Доступ: платный
Лекция 8:

Сетевая диагностика. Протокол SNMP

< Лекция 7 || Лекция 8: 12345 || Лекция 9 >

Протокол SNMP

Интернет — гигантская сеть. Напрашивается вопрос, как она сохраняет свою целостность и функциональность без централизованного управления? Если же учесть разнородность ЭВМ, маршрутизаторов и программного обеспечения, используемых в сети, само существование Интернет представится просто чудом. Так как же решаются проблемы управления в Интернет? Отчасти на этот вопрос уже дан ответ: сеть сохраняет работоспособность за счет жесткой протокольной регламентации. "Запас прочности" заложен в самих протоколах. Функции диагностики возложены, как было сказано выше, на протокол ICMP. Учитывая важность функции управления, для этих целей создано два протокола SNMP (Simple Network Management Protocol, RFC-1157, -1215, -1187, -1089 разработан в 1988 году; версия 3 – RFC-3411, -3412, -3413, STD0062) и CMOT (Common Management Information services and protocol over TCP/IP, RFC-1095, в последнее время применение этого протокола ограничено). Обычно управляющая прикладная программа воздействует на сеть по цепочке SNMP -UDP-IP-Ethernet. Наиболее важным объектом управления обычно является внешний порт сети (gateway) или маршрутизатор сети. Каждому управляемому объекту присваивается уникальный идентификатор.

Протокол SNMP работает на базе транспортных возможностей UDP (допустимы реализации и на основе ТСР) и предназначен для применения в сетевых управляющих станциях. Он позволяет управляющим станциям собирать информацию о положении в сети Интернет. Протокол определяет формат данных, а их обработка и интерпретация остаются на усмотрение управляющих станций или менеджера сети. SNMP -сообщения не имеют фиксированного формата и фиксированных полей. При своей работе SNMP использует управляющую базу данных ( MIBmanagement information base, RFC-1213, -1212, -2613, -2788, -3418).

Алгоритмы управления в Интернет обычно описывают в нотации ASN.1 (Abstract Syntax Notation). Все объекты в Интернет разделены на 10 групп и определены в MIB: система, интерфейсы, обмены, трансляция адресов, IP, ICMP, TCP, UDP, EGP, SNMP. В группу система входит название и версия оборудования, операционной системы, сетевого программного обеспечения и пр.. В группу интерфейсы входит число поддерживаемых интерфейсов, тип интерфейса, работающего под IP (Ethernet, LAPB и т.д.), размер дейтограмм, скорость обмена, адрес интерфейса. IP-группа включает в себя время жизни дейтограмм, информация о фрагментации, маски субсетей и т.д. В TCP-группу входит алгоритм повторной пересылки, максимальное число повторных пересылок и пр.. Ниже приведена таблица 8.4 команд ( pduprotocol data unit) SNMP:

Таблица 8.4. Команды SNMP
Команда SNMP Тип PDU Назначение
GET-request 0 Получить значение указанной переменной или информацию о состоянии сетевого элемента;
GET_next_request 1 Получить значение переменной, не зная точного ее имени (следующий логический идентификатор на дереве MIB );
SET-request 2 Присвоить переменной соответствующее значение. Используется для описания действия, которое должно быть выполнено;
GET response 3 Отклик на GET-request, GET_next_request и SET-request. Содержит также информацию о состоянии (коды ошибок и другие данные);
TRAP 4 Отклик сетевого объекта на событие или на изменение состояния.
GetBulkRequest 5 Запрос пересылки больших объемов данных, например, таблиц.
InformRequest 6 Менеджер обращает внимание партнера на определенную информацию в MIB.
SNMPv3-Trap 7 Отклик на событие (расширение по отношению v1 и v2).
Report 8 Отчет (функция пока не задана).

Формат SNMP -сообщений, вкладываемых в UDP-дейтограммы, имеет вид ( рис. 8.2):

Схема запросов/откликов SNMP

Рис. 8.1. Схема запросов/откликов SNMP
Формат SNMP-сообщений, вкладываемых в UDP-дейтограммы

Рис. 8.2. Формат SNMP-сообщений, вкладываемых в UDP-дейтограммы

Поле версия содержит значение, равное номеру версии SNMP минус один. Поле пароль ( community — определяет группу доступа) включает в себя последовательность символов, которая является пропуском при взаимодействии менеджера и объекта управления. Обычно это поле содержит 6-байтовую строку public, что означает общедоступность. Для запросов GET, GET-next и SET значение идентификатора запроса устанавливается менеджером и возвращается объектом управления в отклике GET, что позволяет связывать в пары запросы и отклики. Поле фирма (enterprise) = sysobjectid объекта. Поле статус ошибки характеризуется целым числом, присланным объектом управления:

Таблица 8.5. Номера и назначения используемых портов
Назначение Порт Пояснение
SNMP 161/TCP Simple Network Management Protocol
SNMP 162/TCP Trap
SMUX 199/TCP SNMP Unix Multiplexer
SMUX 199/UDP SNMP Unix Multiplexer
synoptics-relay 391/TCP SynOptics SNMP Relay Port
synoptics-relay 391/UDP SynOptics SNMP Relay Port
SNMP 161/TCP Simple Network Management Protocol
agentx 705/TCP AgentX
snmp -tcp-port 1993/TCP cisco SNMP TCP port
snmp -tcp-port 1993/UDP cisco SNMP TCP port

Если произошла ошибка, поле индекс ошибки (error index) определяет, к какой из переменных это относится. error index является указателем переменной и устанавливается объектом управления не равным нулю для ошибок badvalue, readonly и nosuchname. Для оператора TRAP (тип PDU=4) формат сообщения меняется. Таблица типов TRAP представлена ниже (табл. 8.7).

Таблица 8.6. Коды ошибок
Статус ошибки Имя ошибки Описание
0 Noerror Все в порядке;
1 Toobig Объект не может уложить отклик в одно сообщение;
2 Nosuchname В операции указана неизвестная переменная;
3 badvalue В команде set использована недопустимая величина или неправильный синтаксис;
4 Readonly Менеджер попытался изменить константу;
5 Generr Прочие ошибки.
Таблица 8.7. Коды TRAP
Тип TRAP Имя TRAP Описание
0 Coldstart Установка начального состояния объекта.
1 Warmstart Восстановление начального состояния объекта.
2 Linkdown Интерфейс выключился. Первая переменная в сообщении идентифицирует интерфейс.
3 Linkup Интерфейс включился. Первая переменная в сообщении идентифицирует интерфейс.
4 Authenticationfailure От менеджера получено snmp -сообщение с неверным паролем (community).
5 EGPneighborloss EGP-партнер отключился. Первая переменная в сообщении определяет IP-адрес партнера.
6 Entrprisespecific Информация о TRAP содержится в поле специальный код.

Для тип TRAP 0-4 поле специальный код должно быть равно нулю. Поле временная метка содержит число сотых долей секунды (число тиков) с момента инициализации объекта управления. Так, прерывание coldstart выдается объектом через 200 мс после инициализации.

В последнее время широкое распространение получила идеология распределенного протокольного интерфейса DPI (Distributed Protocol Interface). Для транспортировки snmp -запросов может использоваться не только UDP-, но и TCP-протокол. Это дает возможность применять SNMP -протокол не только в локальных сетях. Форматы SNMP -DPI-запросов (версия 2.0) описаны в документе RFC-1592. Пример заголовка snmp -запроса (изображенные поля образуют единый массив; см. рис. 8.3):

Формат заголовка SNMP-запроса

Рис. 8.3. Формат заголовка SNMP-запроса

Поле Флаг=0x30 является признаком ASN.1-заголовка. Коды Ln представляют собой длины полей, начинающиеся с байта, который следует за кодом длины, вплоть до конца сообщения-запроса (n - номер поля длины), если не оговорено другое. Так, L1 — длина пакета-запроса, начиная с T1 и до конца пакета, а L3 — длина поля пароля. Субполя Tn — поля типа следующего за ними субполя запроса. Так, T1=2 означает, что поле характеризуется целым числом, а T2=4 указывает на то, что далее следует пароль (поле community, в приведенном примере = public). Цифры под рисунками означают типовые значения субполей. Код 0xA является признаком GET-запроса, за ним следует поле кода PDU (=0-4, см. табл. 8.1) Блок субполей идентификатора запроса служит для тех же целей, что и другие идентификаторы — для определения пары запрос-отклик. Собственно идентификатор запроса может занимать один или два байта, что определяется значением Lиз. СО — статус ошибки (СО=0 — ошибки нет); ТМ — тип MIB -переменной (в приведенном примере = 0x2B ); ИО — индекс ошибки. Цифровой код MIB -переменной отображается последовательностью цифровых субполей, характеризующих переменную, например: переменная 1.3.6.1.2.1.5 (в символьном выражении iso.org.dod.internet.mgmt.mib.icmp) задана последовательностью кодов 0x2B 0x06 0x01 0x02 0x01 0x05 0x00.

< Лекция 7 || Лекция 8: 12345 || Лекция 9 >
Наталья Шульга
Наталья Шульга

Курс "информационная безопасность" .

Можно ли на него записаться на ПЕРЕПОДГОТОВКУ по данному курсу? Выдается ли диплом в бумажном варианте и высылается ли он по почте?

Нияз Сабиров
Нияз Сабиров

Здравствуйте. А уточните, пожалуйста, по какой причине стоимость изменилась? Была стоимость в 1 рубль, стала в 9900 рублей.

Антон Шавергин
Антон Шавергин
Россия
Степан Крупа
Степан Крупа
Украина, Львів, СЗШ №65, 2012