на каком уровне работает протокол icmp

Протокол межсетевых управляющих сообщений. Типы и Коды ICMP — сообщений

Протокол ICMP (Internet Control Message Protocol) — протокол межсетевых управляющих сообщений.

на каком уровне работает протокол icmp. Смотреть фото на каком уровне работает протокол icmp. Смотреть картинку на каком уровне работает протокол icmp. Картинка про на каком уровне работает протокол icmp. Фото на каком уровне работает протокол icmp

Информация о возникающих ошибках в сети передается по протоколу ICMP. А также протокол ICMP может использоваться для диагностики работы в сети даже, когда в ней не возникают ошибки. Так как IP предоставляет сервис без гарантии доставки, то сообщение об ошибках ICMP не обязаны обрабатываться ни протоколом ICMP ни протоколом IP.

Формат заголовка ICMP

Рассмотрим формат пакета ICMP. Первое поле в заголовке тип сообщения. Оно говорит о том, что произошло в сети, какая ошибка или какое действие по диагностике пытаются выполнить.

на каком уровне работает протокол icmp. Смотреть фото на каком уровне работает протокол icmp. Смотреть картинку на каком уровне работает протокол icmp. Картинка про на каком уровне работает протокол icmp. Фото на каком уровне работает протокол icmp

Типы ICMP — сообщений

Самое важно в пакете ICMP это тип сообщений. Именно тип, говорит о том, что произошло в сети. Есть 2 вида ICMP сообщений. Первый вид это запрос-ответ.

на каком уровне работает протокол icmp. Смотреть фото на каком уровне работает протокол icmp. Смотреть картинку на каком уровне работает протокол icmp. Картинка про на каком уровне работает протокол icmp. Фото на каком уровне работает протокол icmp

Коды ICMP — сообщений

Следующее поле в заголовке ICMP это код сообщения. Ниже представлено несколько возможных кодов для типа сообщения 3 — узел назначения недостижим. Какие могут быть причины? Причины перечислены ниже на картинке.

на каком уровне работает протокол icmp. Смотреть фото на каком уровне работает протокол icmp. Смотреть картинку на каком уровне работает протокол icmp. Картинка про на каком уровне работает протокол icmp. Фото на каком уровне работает протокол icmp

Применение ICMP

Большая часть пакетов ICMP формируется и отправляется автоматически сетевым оборудованиям. Но некоторые типы сообщений формируются утилитами, которые применяются для диагностики сети. Рассмотрим утилиты ping и traceroute (в Windows tracert)

Утилита ping

Утилита ping используется, чтобы проверить доступность компьютера в сети. Возможно подключиться к этому компьютеру или нельзя. Ping использует это-протокол ICMP. Компьютер, который хочет проверить доступность другого, отправляет эхо-запрос (тип=8, код=0).

на каком уровне работает протокол icmp. Смотреть фото на каком уровне работает протокол icmp. Смотреть картинку на каком уровне работает протокол icmp. Картинка про на каком уровне работает протокол icmp. Фото на каком уровне работает протокол icmp

Компьютер, который получил такой запрос, в ответ отправляет эхо-ответ ICMP с типом 0, если эхо-ответ не пришел, значит установить с компьютером соединение по сети невозможно.

на каком уровне работает протокол icmp. Смотреть фото на каком уровне работает протокол icmp. Смотреть картинку на каком уровне работает протокол icmp. Картинка про на каком уровне работает протокол icmp. Фото на каком уровне работает протокол icmp

Пример использования утилиты ping для проверки возможности подключиться к сайту ВКонтакте. По умолчанию утилита ping запускает 4 эхо-запроса и для каждого эхо-запроса получен эхо-ответ. В ответе указывается некоторая диагностическая информация.

на каком уровне работает протокол icmp. Смотреть фото на каком уровне работает протокол icmp. Смотреть картинку на каком уровне работает протокол icmp. Картинка про на каком уровне работает протокол icmp. Фото на каком уровне работает протокол icmp

Утилита traceroute

Утилита traceroute позволяет определить маршрут от отправителя к получателю. Под маршрутом имеется в виду перечень всех маршрутизаторов через которые проходит пакет.

Пример работы утилиты traceroute ее windows вариант tracert для определения маршрута к сайту ВКонтакте.

на каком уровне работает протокол icmp. Смотреть фото на каком уровне работает протокол icmp. Смотреть картинку на каком уровне работает протокол icmp. Картинка про на каком уровне работает протокол icmp. Фото на каком уровне работает протокол icmp

Работа утилиты traceroute

Как утилита traceroute узнает маршрутизатор? Для этого утилита использует ICMP сообщения время жизни истекло. Чтобы этого достичь, сначала отправляется сообщение у которого время жизни установлено в единицу TTL=1.

на каком уровне работает протокол icmp. Смотреть фото на каком уровне работает протокол icmp. Смотреть картинку на каком уровне работает протокол icmp. Картинка про на каком уровне работает протокол icmp. Фото на каком уровне работает протокол icmp

Пакет доходит до первого маршрутизатора, маршрутизатор уменьшает время жизни TTL=0 и маршрутизатор отбрасывает пакет.

на каком уровне работает протокол icmp. Смотреть фото на каком уровне работает протокол icmp. Смотреть картинку на каком уровне работает протокол icmp. Картинка про на каком уровне работает протокол icmp. Фото на каком уровне работает протокол icmp

И генерирует сообщение об ошибке ICMP с типом 11, код 0 время жизни истекло. Утилита traceroute из заголовка IP пакета в которого вложен ICMP извлекает IP-адрес маршрутизатора.

на каком уровне работает протокол icmp. Смотреть фото на каком уровне работает протокол icmp. Смотреть картинку на каком уровне работает протокол icmp. Картинка про на каком уровне работает протокол icmp. Фото на каком уровне работает протокол icmp

На следующем этапе о тправляется пакет с временем жизни равным двум TTL=2.

на каком уровне работает протокол icmp. Смотреть фото на каком уровне работает протокол icmp. Смотреть картинку на каком уровне работает протокол icmp. Картинка про на каком уровне работает протокол icmp. Фото на каком уровне работает протокол icmp

На первом маршрутизаторе время жизни уменьшается до единицы и пакет переходит на второй маршрутизатор.

на каком уровне работает протокол icmp. Смотреть фото на каком уровне работает протокол icmp. Смотреть картинку на каком уровне работает протокол icmp. Картинка про на каком уровне работает протокол icmp. Фото на каком уровне работает протокол icmp

Второй маршрутизатор снова уменьшает время на 1, время жизни становится нулем. Пакет отбрасывается и уже второй маршрутизатор отправляет сообщение время жизни истекло. Утилита traceroute извлекает адрес второго маршрутизатора из IP заголовка этого сообщения.

на каком уровне работает протокол icmp. Смотреть фото на каком уровне работает протокол icmp. Смотреть картинку на каком уровне работает протокол icmp. Картинка про на каком уровне работает протокол icmp. Фото на каком уровне работает протокол icmp

И так происходит до тех пор пока пакет не дойдет до узла назначения.

Заключение

Рассмотрели протокол ICMP протокол межсетевых управляющих сообщений. Протокол ICMP используется для сообщения об ошибках, которые происходят в сети и для тестирования работоспособности сети.

Источник

Интернет технологии (архив ИПМ 2001-2010, Богомолов)

Вы их получаете постоянно, а иногда и отправляете, например:

Если адрес не доступен, вы получаете сообщение ICMP.

Если порт не доступен, вы получаете сообщение ICMP.

Если вы пользуетесь командой ping, вы получаете сообщение ICMP.

Сообщение ICMP инкапсулируется прямо в IP пакет (поле данных), т.е. протоколы транспортного уровня не используются.

Поле protocol = 1 (в заголовке IP).

Первый стандарт ICMP определен в RFC0777 (Internet Control Message Protocol J. Postel Apr-01-1981)

Сообщения делятся на два типа:

Непарные (например: посылаете запрос к HTTP-серверу, но сервер не доступен, и последний маршрутизатор (или сервер) отправляет ICMP-сообщение (Destination Unreachable) вам)

11.1.1 Заголовок сообщения ICMP.

на каком уровне работает протокол icmp. Смотреть фото на каком уровне работает протокол icmp. Смотреть картинку на каком уровне работает протокол icmp. Картинка про на каком уровне работает протокол icmp. Фото на каком уровне работает протокол icmp

Структура заголовка сообщения ICMP. Слова по 32 бита.

Типы сообщений протокола ICMP

11.1.2 Сообщение Destination Unreachable

Непарное сообщение, формируется, если цель недостижима.

на каком уровне работает протокол icmp. Смотреть фото на каком уровне работает протокол icmp. Смотреть картинку на каком уровне работает протокол icmp. Картинка про на каком уровне работает протокол icmp. Фото на каком уровне работает протокол icmp

«Заголовок и первые 64 бита исходной дейтограммы» отправляются для диагностики причины ошибки.

Диагностические коды сообщений Destination Unreachable

КодТип кодаЗначение
0Network UnreachableСеть назначения недостижима
1Host UnreachableХост назначения не достижим
2Protocol UnreachableПротокол недостижим
3Port UnreachableПорт недостижим
4Fragmentation Need & DF setНеобходима фрагментация, однако она запрещена
5Source Route FailedИсходный маршрут вышел из строя
6Destination Network UnknownСеть назначения неизвестна
7Destination Host UnknownХост назначения неизвестен
8Source Host IsolatedИсточник изолирован
9Communication with destination
Network Administratively Prohibited
Взаимодействие с сетью назначения запрещено
10Communication with destination
Host Administratively Prohibited
Взаимодействие с узлом назначения запрещено
11Network Unreachable for type of serviceСеть назначения недоступна для запрошенного типа сервиса
12Host Unreachable for type of serviceХост назначения недоступен для запрошенного типа сервиса
13Связь административно запрещена с помощью фильтра
14Нарушение старшинства ЭВМ
15Дискриминация по старшинству

Из таблицы видно, что коды 2 и 3 формируются сервером назначения.

11.1.3 Сообщение Time Exceeded

Непарное сообщение, формируется, если время жизни истекло.

на каком уровне работает протокол icmp. Смотреть фото на каком уровне работает протокол icmp. Смотреть картинку на каком уровне работает протокол icmp. Картинка про на каком уровне работает протокол icmp. Фото на каком уровне работает протокол icmp

Диагностические коды сообщений Time Exceeded

КодЗначение
0Время жизни = 0
1Таймер дефрагментации установился в 0
до полной сборки принятого сообщения

11.1.4 Сообщение Parameter Problem

Непарное сообщение, формируется, если заголовок IP-дейтограммы содержит неверный параметр.

на каком уровне работает протокол icmp. Смотреть фото на каком уровне работает протокол icmp. Смотреть картинку на каком уровне работает протокол icmp. Картинка про на каком уровне работает протокол icmp. Фото на каком уровне работает протокол icmp

Диагностические коды сообщений Parameter Problem

КодЗначение
0Если возникла проблема с интерпретацией какого то поля
(используется поле «номер байта с ошибкой в исходном сообщении»)
1Если возникла проблема с несоответствием какого то запрашиваемого параметра, с установленными требованиями

11.1.5 Сообщение Source Quench

Непарное сообщение, формируется, если возникла перегрузка маршрутизатора, пакет не может быть помещен в буфер, т.к. он переполнен.

на каком уровне работает протокол icmp. Смотреть фото на каком уровне работает протокол icmp. Смотреть картинку на каком уровне работает протокол icmp. Картинка про на каком уровне работает протокол icmp. Фото на каком уровне работает протокол icmp

11.1.6 Сообщение Redirect

Непарное сообщение, формируется, если изменен маршрут для пакета.

на каком уровне работает протокол icmp. Смотреть фото на каком уровне работает протокол icmp. Смотреть картинку на каком уровне работает протокол icmp. Картинка про на каком уровне работает протокол icmp. Фото на каком уровне работает протокол icmp

Случай, когда маршрутизатор перенаправляет пакеты по другому маршруту (маршрут 2).

И предлагает в сообщении ICMP изменить шлюз по умолчанию

на каком уровне работает протокол icmp. Смотреть фото на каком уровне работает протокол icmp. Смотреть картинку на каком уровне работает протокол icmp. Картинка про на каком уровне работает протокол icmp. Фото на каком уровне работает протокол icmp

Диагностические коды сообщений Redirect

КодТип кодаЗначение
0Redirect Datagram for networksИзменение маршрута для сети
1Redirect Datagram for hostИзменение маршрута для хоста
2Redirect Datagram for the Type of service and networksИзменение маршрута для типа сервиса или сети
3Redirect Datagram for the Type of service and hostИзменение маршрута для типа сервиса или хоста

11.1.7 Сообщение Echo Request/Echo Reply

Парное сообщение. Любой узел, получивший Echo Request, должен ответить Echo Reply отправителю.

Echo Request сообщения формирует программа ping.

на каком уровне работает протокол icmp. Смотреть фото на каком уровне работает протокол icmp. Смотреть картинку на каком уровне работает протокол icmp. Картинка про на каком уровне работает протокол icmp. Фото на каком уровне работает протокол icmp

Идентификатор и последовательный номер используются для определения, какой ответ принадлежит какому запросу.

11.1.8 Атаки с помощью Echo Request/Echo Reply

Цель: загрузить сервер так, чтобы он не мог отвечать.

Нужно послать как можно больше ответов Echo Reply на жертву.

Для этого можно задействовать чужие сети.

Посылаем сообщение Echo Request.

253 машины посылают ответ на жертву (194.85.241.1)

Все повторяем много раз, а лучше задействовать побольше таких сетей.

Жертва будет перегружена.

на каком уровне работает протокол icmp. Смотреть фото на каком уровне работает протокол icmp. Смотреть картинку на каком уровне работает протокол icmp. Картинка про на каком уровне работает протокол icmp. Фото на каком уровне работает протокол icmp

Атаки с помощью Echo Request/Echo Reply

Меры предотвращения таких атак:

Запретить прием и распространение сообщений типа Directed Broadcast.

Уничтожать сфальсифицированные пакеты, сопоставляя IP источника с маршрутной таблицей и номером интерфейса, с которого получен пакет.

Запретить трафик ICMP (ping, traceroute и т.д., работать не будут).

11.1.9 Принцип работы traceroute

Номер используемого порта по умолчанию 33434.

Посылаются дейтограммы с TTL=1 (время жизни пакета)

Первый же маршрутизатор уменьшает TTL на 1, т.е. TTL=0 и пакет уничтожается, а отправителю посылается ICMP сообщение Time Exceeded.

Посылаются дейтограммы с TTL=2 (время жизни пакета)

Первый же маршрутизатор уменьшает TTL на 1, т.е. TTL=1 и пакет проходит дальше.

Второй маршрутизатор уменьшает TTL на 1, т.е. TTL=1 и пакет уничтожается, а отправителю посылается ICMP сообщение Time Exceeded.

Попадая на получателя, пакет уничтожается, т.к. получатель не знает, что с ним делать (порт не существует), и отправителю посылается ICMP сообщение Destination Unreachable.

на каком уровне работает протокол icmp. Смотреть фото на каком уровне работает протокол icmp. Смотреть картинку на каком уровне работает протокол icmp. Картинка про на каком уровне работает протокол icmp. Фото на каком уровне работает протокол icmp

Пример работы traceroute

Создана для стандартизации управления оборудованием разных производителей.

Например, в сети установлены разные маршрутизаторы (cisco, motorola, linux и т.д.), все настраиваются поразному. Нужно изменить настройки на всех маршрутизаторах. Обычным методом придется каждый настраивать индивидуально (интерфейсы у всех разные). С помощью SNMP можно настроить используя один интерфейс.

SNMP служит примером системы управления, в которой для достижения нужного результата не выдается команда, а осуществляется обмен информацией, решение принимается «на месте» в соответствии с полученными данными.

Первый стандарт SNMP определен в RFC1067 (Simple Network Management Protocol J.D. Case, M. Fedor, M.L. Schoffstall, J. Davin Aug-01-1988)

Последняя версия RFC1157 (STD0015 Simple Network Management Protocol (SNMP) J.D. Case, M. Fedor, M.L. Schoffstall, J. Davin May-01-1990)

RFC1592 (Simple Network Management Protocol Distributed Protocol Interface Version 2.0 B. Wijnen, G. Carpenter, K. Curran, A. Sehgal, G. Waters March 1994)

Протокол прикладного уровня работает по умолчанию поверх UDP, но может работать по TCP.

Клиент и сервер обмениваются сообщениями.

на каком уровне работает протокол icmp. Смотреть фото на каком уровне работает протокол icmp. Смотреть картинку на каком уровне работает протокол icmp. Картинка про на каком уровне работает протокол icmp. Фото на каком уровне работает протокол icmp

Взаимодействие клиент-сервера SNMP. Приведены все пять типов сообщений.

Типы PDU сообщений SNMP

Тип PDUИмяЗначение
0get-requestПолучить значение переменных
1get-next-requestПолучить следующие переменные после этой
2set-requestУстановить значение переменных
3get-responseВыдать значение переменных
(Посылает агент в ответ на get-request,
get-next-request, set-request)
4trapУведомить менеджера, когда что-либо произошло с агентом

на каком уровне работает протокол icmp. Смотреть фото на каком уровне работает протокол icmp. Смотреть картинку на каком уровне работает протокол icmp. Картинка про на каком уровне работает протокол icmp. Фото на каком уровне работает протокол icmp

Формат SNMP-сообщений. Trap приведен отдельно.

Значения статуса ошибки SNMP.

Статус ошибкиИмяЗначение
0noErrorВсе в порядке
1noErrorКлиент не может поместить отклик в одно SNMP сообщение
2noSuchNameОператор указывает на несуществующую переменную
3badValueВ команде set использовано недопустимое значение или неправильный синтаксис
4readOnlyМенеджер попытался изменить переменную, которая помечена как «только для чтения»
5genErrнеопознанная ошибка
Тип trapИмя trapЗначение
0coldStartУстановление начального состояния объекта
1wannStartВосстановление начального состояния объекта
2linkDownИнтерфейс выключился. Первая переменная в сообщении идентифицирует интерфейс
3linkUpИнтерфейс включился. Первая переменная в сообщении идентифицирует интерфейс
4authenticationFailureОт менеджера получено SNMP-сообщение с неверным паролем
5egpNeighborLossEGP-партнер отключился. Первая переменная в сообщении определяет IP-адрес партнера
6entrpriseSpeclficИнформация о trap содержится в поле «Специальный код»

Поле «Специальный код» для типов trap 0…4 поле должно быть равно нулю.

11.2.2 Структура информации управления (SMI)

Первый стандарт SMI определен в RFC1155 (Structure and identification of management information for TCP/IP-based internets M.T. Rose, K. McCloghrie May-01-1990)

Последний стандарт для версии SMIv1 RFC1155 (Structure and identification of management information for TCP/IP-based internets M.T. Rose, K. McCloghrie May-01-1990)

Последний стандарт для версии SMIv2 RFC2578 (Structure of Management Information Version 2 (SMIv2) K. McCloghrie, D. Perkins, J. Schoenwaelder April 1999)

Некоторые типы данных:

TimeTicks (тики времени). Счетчик, который считает время в сотых долях секунды с какой-либо исходной точки.

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

Все управляемые объекты глобальной сети расположены в дереве.

Идентификатор объекта (OID) это последовательность целых десятичных чисел, разделенных точками (1.4.2.1.6). Эти целые числа представляют собой древовидную структуру, напоминающую DNS

на каком уровне работает протокол icmp. Смотреть фото на каком уровне работает протокол icmp. Смотреть картинку на каком уровне работает протокол icmp. Картинка про на каком уровне работает протокол icmp. Фото на каком уровне работает протокол icmp

Дерево идентификаторов объектов в информационной базе управления

Например, ветвь 1.3.6.1.2.1.4 (iso.org.dod.internet.mgmt.mib-2.ip) дает информацию необходимую для управления компьютерами и маршрутизаторами.

11.2.3 Информационная база управления (MIB)

Первый стандарт MIB определен в RFC1066 (Management Information Base for network management of TCP/IP-based internets K. McCloghrie, M.T. Rose Aug-01-1988 )

Последний стандарт для версии MIB-I RFC1156 (Management Information Base for network management of TCP/IP-based internets K. McCloghrie, M.T. Rose May-01-1990)

Последний стандарт для версии MIB-II RFC1213 (STD0017 Management Information Base for Network Management of TCP/IP-based internets:MIB-II K. McCloghrie, M.T. Rose Mar-01-1991)

Ветвь 1.3.6.1.2.1.4 (iso.org.dod.internet.mgmt.mib-2).

Расмотрим подробнее ветвь UDP (рис. выше).

Группа UDP содержит четыре переменные, и одну таблицу (udpTable) из двух переменных.

Переменные группы udp

ИмяТип данныхЧтение/ЗаписьОписание
udpInDatagramsCounterТолько чтениеКоличество UDP датаграмм, доставленных пользовательским процессам.
udpNoPortsCounterТолько чтениеКоличество доставленных UDP датаграмм, для которых не оказалось порта назначения.
udpInErrorsCounterТолько чтениеКоличество недоставленных UDP датаграмм по другим причине (например, ошибка контрольной суммы UDP).
udpOutDatagramsCounterТолько чтениеКоличество отправленных UDP датаграмм.

Как видно из таблицы эти переменные обеспечивают полный сбор статистики для UDP-протокола.

Переменные в udpTable.

ИмяТип данныхЧтение/ЗаписьОписание
udpLocalAddressIpAddressТолько чтениеЛокальный IP адрес слушающего процесса.
udpLocalPortINTEGER
[0..65535]
Только чтениеЛокальный номер порта слушающего процесса.

11.2.3.1 Примеры идентификации

Каждая переменная в MIB должна быть идентифицирована.

Обращение осуществляется только к тупиковым (в дереве) узлам.

11.2.3.1.1 Простые переменные

Обращения к этой переменной чаше делаются в сокращенном виде, udpInErrors.0, т.к. реально идет обращение к идентификатору объекта 1.3.6.1.2.1.7.1.0.

Рассмотрим идентификацию пунктов таблицы udpTable более подробно.

Пример таблицы udpTable.

Из таблицы видно, что система готова принимать UDP датаграммы с любого интерфейса (0.0.0.0) для портов 53 (DNS), 67 (BOOTP) и 161 (SNMP).

11.2.3.1.3 Абстрактная форма записи

Все поля в MIB и SNMP сообщениях описываются с использованием ASN.1.

Например, ASN.1 определение переменной udpNoPorts выглядит так:

udpNoPorts OBJECT-TYPE
SYNTAX Counter
ACCESS read-only
STATUS mandatory
DESCRIPTION
«The total number of received UDP datagrams for which there
was no application at the destination port.»
::= < udp 2 >

Новое в этой версии:

Определены два новых MIB: MIB SNMPv2 и MIB SNMPv2-M2M (менеджер-менеджер).

11.2.5 Программы для работы с SNMP

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *