Протокол icmp предназначен для чего
ICMP: Протокол межсетевых управляющих сообщений
ICMP предназначен для отправки контрольных и тестовых сообщений по IP-сетям.
В отличие от протоколов транспортного уровня TCP (Протокол управления передачей) и UDP (User Datagram Protocol), которые работают поверх IP, ICMP существует рядом с IP.
Возможность понимать ICMP является требованием для любого IP-совместимого сетевого устройства. Однако многие устройства безопасности, такие как брандмауэры, блокируют или отключают все или часть функций ICMP для целей безопасности.
Типы сообщений ICMP
ICMP работает, отправляя и получая ограниченное количество типов сообщений. Типы сообщений ICMP определены в IAMA ICMP Type Numbers.
Наиболее распространенными типами сообщений ICMP являются:
Type | Name |
---|---|
0 | Эхо-ответ |
3 | Адресат недоступен |
4 | Сдерживание источника |
5 | Перенаправление |
6 | Альтернативный адрес узла |
8 | Эхо-запрос |
9 | Объявление маршрутизатора |
10 | Запрос маршрутизатора |
11 | Время жизни дейтаграммы истекло |
12 | Неверный параметр |
13 | Запрос метки времени |
14 | Ответ с меткой времени |
15 | Информационный запрос |
16 | Информационный ответ |
17 | Запрос адресной маски |
18 | Отклик на запрос адресной маски |
30 | Трассировка маршрута |
ICMP Echo Request и Echo Reply
Двумя наиболее важными сообщениями ICMP являются Echo Request (8) и Echo Reply (0).
Echo Request и Echo Reply используются командой `ping` для проверки сетевого подключения.
Здесь мы используем команду `ping` для отправки трех 64-байтных сообщений ICMP Echo Request на www.freebsd.org и получения в ответ трех сообщений ответа Echo:
Этот вывод говорит о том, что сетевое подключение к www.freebsd.org работает. Он также сообщает нам время, которое каждый пакет принял для возврата.
`ping` — чрезвычайно полезный инструмент для устранения неполадок в сети.
Протокол межсетевых управляющих сообщений. Типы и Коды ICMP — сообщений
Протокол ICMP (Internet Control Message Protocol) — протокол межсетевых управляющих сообщений.
Информация о возникающих ошибках в сети передается по протоколу ICMP. А также протокол ICMP может использоваться для диагностики работы в сети даже, когда в ней не возникают ошибки. Так как IP предоставляет сервис без гарантии доставки, то сообщение об ошибках ICMP не обязаны обрабатываться ни протоколом ICMP ни протоколом IP.
Формат заголовка ICMP
Рассмотрим формат пакета ICMP. Первое поле в заголовке тип сообщения. Оно говорит о том, что произошло в сети, какая ошибка или какое действие по диагностике пытаются выполнить.
Типы ICMP — сообщений
Самое важно в пакете ICMP это тип сообщений. Именно тип, говорит о том, что произошло в сети. Есть 2 вида ICMP сообщений. Первый вид это запрос-ответ.
Коды ICMP — сообщений
Следующее поле в заголовке ICMP это код сообщения. Ниже представлено несколько возможных кодов для типа сообщения 3 — узел назначения недостижим. Какие могут быть причины? Причины перечислены ниже на картинке.
Применение ICMP
Большая часть пакетов ICMP формируется и отправляется автоматически сетевым оборудованиям. Но некоторые типы сообщений формируются утилитами, которые применяются для диагностики сети. Рассмотрим утилиты ping и traceroute (в Windows tracert)
Утилита ping
Утилита ping используется, чтобы проверить доступность компьютера в сети. Возможно подключиться к этому компьютеру или нельзя. Ping использует это-протокол ICMP. Компьютер, который хочет проверить доступность другого, отправляет эхо-запрос (тип=8, код=0).
Компьютер, который получил такой запрос, в ответ отправляет эхо-ответ ICMP с типом 0, если эхо-ответ не пришел, значит установить с компьютером соединение по сети невозможно.
Пример использования утилиты ping для проверки возможности подключиться к сайту ВКонтакте. По умолчанию утилита ping запускает 4 эхо-запроса и для каждого эхо-запроса получен эхо-ответ. В ответе указывается некоторая диагностическая информация.
Утилита traceroute
Утилита traceroute позволяет определить маршрут от отправителя к получателю. Под маршрутом имеется в виду перечень всех маршрутизаторов через которые проходит пакет.
Пример работы утилиты traceroute ее windows вариант tracert для определения маршрута к сайту ВКонтакте.
Работа утилиты traceroute
Как утилита traceroute узнает маршрутизатор? Для этого утилита использует ICMP сообщения время жизни истекло. Чтобы этого достичь, сначала отправляется сообщение у которого время жизни установлено в единицу TTL=1.
Пакет доходит до первого маршрутизатора, маршрутизатор уменьшает время жизни TTL=0 и маршрутизатор отбрасывает пакет.
И генерирует сообщение об ошибке ICMP с типом 11, код 0 время жизни истекло. Утилита traceroute из заголовка IP пакета в которого вложен ICMP извлекает IP-адрес маршрутизатора.
На следующем этапе о тправляется пакет с временем жизни равным двум TTL=2.
На первом маршрутизаторе время жизни уменьшается до единицы и пакет переходит на второй маршрутизатор.
Второй маршрутизатор снова уменьшает время на 1, время жизни становится нулем. Пакет отбрасывается и уже второй маршрутизатор отправляет сообщение время жизни истекло. Утилита traceroute извлекает адрес второго маршрутизатора из IP заголовка этого сообщения.
И так происходит до тех пор пока пакет не дойдет до узла назначения.
Заключение
Рассмотрели протокол ICMP протокол межсетевых управляющих сообщений. Протокол ICMP используется для сообщения об ошибках, которые происходят в сети и для тестирования работоспособности сети.
ИТ База знаний
Полезно
— Онлайн генератор устойчивых паролей
— Онлайн калькулятор подсетей
— Руководство администратора FreePBX на русском языке
— Руководство администратора Cisco UCM/CME на русском языке
— Руководство администратора по Linux/Unix
Навигация
Серверные решения
Телефония
FreePBX и Asterisk
Настройка программных телефонов
Корпоративные сети
Протоколы и стандарты
ICMP, который расшифровывается как Internet Control Message Protocol это протокол третьего уровня модели OSI, который используется для диагностики проблем со связностью в сети. Говоря простым языком, ICMP помогает определить может ли достичь пакет адреса назначения в установленные временные рамки. Обычно, ICMP “юзают» маршрутизаторы и устройства третьего уровня.
Онлайн курс по Кибербезопасности
Изучи хакерский майндсет и научись защищать свою инфраструктуру! Самые важные и актуальные знания, которые помогут не только войти в ИБ, но и понять реальное положение дел в индустрии
Для чего используется ICMP?
Про трассировку
Так и с “трассировкой». Когда говорят “сделайте трассировку маршрута» это означает, что мы хотим увидеть полный маршрут между хостом, на котором выполняется трассировка до хоста назначения. Трассировка покажет каждый из маршрутизаторов на пути до цели и время обработки и прохождения каждого из участков маршрута. Кстати, такой маршрут называется “хопом». Часто говорят: если от узла отправления до узла назначения на пути встретиться 7 маршрутизаторов, то говорят на пути будет 7 хопов. А если на 6 маршрутизаторе пакет обрабатывается дольше обычного, то в среде инженеров говорят “на 6 хопе повышенная задержка». Это один из базовых инструментов того, как можно понять, какой из сетевых узлов на маршруте пакет “сбоит». Именно в этом нам помогает протокол ICMP.
Про пинг
Теперь про ping. Можно сказать, это самый базовый инструмент инженера, который позволяет понять “»А жив ли хост?»
Помимо прочего, пинг поможет понять как долго пакет доходит до адреса назначения и, соответственно, поможет измерить задержку.
Работает ping предельно просто:
Темная сторона ICMP
Так же, раньше была популярна атака Ping of Death. Если кратко, ее суть заключалась в следующем: злоумышленник намеренно отправляет пакет больше максимального размера. Такой пакет фрагментируется на сети на несколько частей, прилетает в буфер устройства и попадает в очередь на сборка пакета “воедино». Переполнение этой очереди приводило к подвисанию хоста и полному отказу в работе.
Что же, теперь вы знаете, что такое ICMP, почему и как он используется в утилитах ping и трассировке, а так же, какие виды атак можно выполнить с помощью ICMP.
Keep calm and Merion!
Онлайн курс по Кибербезопасности
Изучи хакерский майндсет и научись защищать свою инфраструктуру! Самые важные и актуальные знания, которые помогут не только войти в ИБ, но и понять реальное положение дел в индустрии
Национальная библиотека им. Н. Э. Баумана
Bauman National Library
Персональные инструменты
ICMP (Internet Control Messaging Protocol)
Протокол управляющих сообщений Internet (Internet Control Messaging Protocol — ICMP) фактически считается вспомогательным протоколом для IP. Поэтому он определен в том же документе стандарта Internet (стандарт 5), что и IP. Но ICMP по принципам своего функционирования в большей степени напоминает протокол верхнего уровня, чем вспомогательный протокол, и использует IP таким же образом, как его используют другие протоколы верхнего уровня (такие как TCP). В частности, ICMP позволяет протоколу IP инкапсулировать передаваемые им данные. Поэтому в протоколе ICMP, как таковом, применяются механизмы адресации и фрагментации IP. Причина, по которой ICMP считается вспомогательным протоколом, состоит в том, что он играет крайне важную роль в обеспечении успешного функционирования IP, поэтому стал обязательным компонентом любой реализации IP. Какую же важную роль играет этот протокол? Он просто сообщает об ошибках.
Назначение ICMP как протокола состоит в предоставлении устройствам IP информации о результатах выполненных ими операций передачи данных по протоколу IP. Как правило, этот протокол чаще всего используется для передачи хостам сообщений о том, что возникла какая-то ошибка. Например, предположим, что предпринимается попытка подключения к удаленному хосту с помощью протокола Telnet. Пользователь вводит в приложении Telnet соответствующее имя хоста, а через несколько секунд получает ответ, что адресат недоступен — Destination Unreachable. Каким образом приложение Telnet могло определить, что адресат недоступен? Если бы маршрутизатор просто уничтожил пакет с запросом на установление соединения, то не было бы возможности определить действительную причину ошибки.
Именно для этой цели и служит ICM Р. Приложение Telnet не должно ожидать до бесконечности установления соединения (или устанавливать тайм-аут на четыре минуты, ожидая истечения максимального значения TTL), поскольку им может быть сразу же получено сообщение ICMP от маршрутизатора с указанием, что адресат недоступен. Сообщение Destination Unreachable представляет собой лишь одно из сообщений многих типов, которые определены в протоколе ICMP. Полный список типов сообщений ICMP, которые предусмотрены в документе RFC 792, приведен в табл. 5.1. Назначение сообщений некоторых типов описано ниже. Следует отметить, что все реализации IP формально должны распознавать сообщения всех типов, но не во всех этих реализациях фактически используется полный перечень типов сообщения. Иными словами, состав поддерживаемых сообщений зависит от реализации протокола IP в конкретной операционной системе.
|
Содержание
Запрос и ответ эхо-повтора ICMP
Сообщения эхо-повтора ICMP используются для диагностических целей в одном из наиболее широко применяемых в настоящее время сетевых приложений — в программе Ping. Те, кто незнаком с программой Ping, могут рассматривать ее как грубый способ проверки наличия признаков жизни. Например, если преподаватель на уроке заметил, что один из учеников положил голову на стол, он может проверить, жив ли этот ученик (и просто уснул) или умер. В этом случае преподавателю нужно взять указку (ведь она есть практически у каждого преподавателя) и «постучать» нерадивого ученика по голове. Итак, если он действительно спит, то обязательно отреагирует каким- либо образом. Ну а если случилось худшее, то и об этом необходимо вовремя узнать.
С помощью сетевого приложения Ping выполняется аналогичная задача. В процессе работы часто возникает необходимость определить, находится ли сетевое устройство в исправном и работоспособном состоянии. Для этого передается сообщение запроса эхо-повтора ICMP в надежде получить от устройства ответ. Если такое сообщение достигает цели, устройство передает ответное сообщение эхо-повтора, на основании которого можно определить, что устройство функционирует в сети и принимает запросы на установление связи.
Сообщение Destination Unreacheable (адресат недостижим)
Это сообщение применяется для передачи хосту указания на то, что получатель отправленного им пакета IP не был найден. Такая проблема может быть вызвана многими причинами, о которых можно узнать по дополнительному коду в сообщении Destination Unreachable. Для этого сообщения определено шесть дополнительных кодов, описание которых приведено ниже.
Этот код позволяет хосту определить, что заданный им маршрут передачи пакета получателю является недействительным. Как правило, это сообщение не применяется, поскольку в протоколе IP обычно не предусматривается маршрутизация от отправителя. Сообщение Source Quench(подавление источника)
Сообщение Source Quench
Сообщение Source Quench протокола ICMP является типичным примером уведомления о заторе. Когда буфер устройства начинает заполняться, этим устройством может быть отправлено сообщение Source Quench ICMP на предыдущее устройство, находящееся на расстоянии одного транзитного перехода, с требованием замедлить передачу. Такой механизм напоминает схему уведомления о заторе, которая рассматривалась в главе 1. Единственным недостатком такого механизма является то, что устройства обычно начинают отправлять сообщения Source Quench только после того, как в них начинается уничтожение пакетов, полученных от предыдущего устройства. Сообщения Source Quench могут вырабатываться любыми устройствами вдоль пути следования пакета, независимо от того, являются ли эти устройства маршрутизаторами или оконечными устройствами (хостами). Кроме того, на сообщение Source Quench может также ответить любое устройство вдоль пути следования (маршрутизатор или хост), но и в этом случае перечень возможных ответов зависит от конкретной реализации протокола ICMP.
Сообщение Redirect (перенаправление)
Сообщение Redirect ICMP передает устройству информацию о том, что в нем используется неправильный шлюз (маршрутизатор) для передачи пакетов по заданному адресу. После получения маршрутизатором от хоста пакета, предназначенного для отправки в конкретную удаленную сеть, маршрутизатор выполняет в своей таблице маршрутизации поиск сети получателя и перенаправляет пакет на следующий маршрутизатор по пути к этой сети. А если согласно этой таблице обнаруживается, что устройство (или маршрутизатор), находящееся в конце следующего транзитного перехода, относится к той же сети, что и клиент, текущий маршрутизатор перенаправляет пакет обычным образом, но затем передает клиенту сообщение Redirect. Это сообщение информирует клиента, что более быстрый путь к достижению искомой сети состоит в обращении непосредственно к тому маршрутизатору, который находится в одной сети с клиентом. Сообщение Redirect предназначено для того, чтобы клиент включил в свою локальную таблицу маршрутизации новую запись с указанием сети получателя и альтернативного маршрутизатора, сократив тем самым путь к удаленной сети.
Сообщение Time Exceeded (превышение установленного времени)
Для передачи хосту информации о том, что пересылка отправленного им сообщения потребовала слишком много времени на пути к намеченному получателю, после достижения нулевого значения в поле TTL пакета IP хосту отправителя передается сообщение Time Exceeded. Поле TTL обычно применяется в программе traceroute (версия этой программы, применяемая в операционной системе Cisco, носит название Пасе, а в операционной системе Windows — tracert). Назначение программы traceroute состоит в проверке каждого транзитного перехода на пути к указанному получателю. Такая информация позволяет узнать точный маршрут прохождения пакетов от отправителя к получателю. Такая информация имеет исключительно важное значение при поиске неисправностей.
Например, обычно автор, чтобы обратиться на Web-узел Microsoft, отправляет со своего домашнего компьютера пакеты, которые вначале поступают на узел в г. Роли (Raleigh), шт. Северная Каролина, затем в Вашингтон, округ Колумбия, и наконец, поступают в Сиэтл, шт. Вашингтон. А когда автор заметил, что в определенные дни Web-узел Microsoft отвечает на запросы с особенно значительным замедлением, он решил выяснить, находится ли причина такого замедления в его локальной сети, в сети провайдера Internet или просто связана с нарушением работы опорной сети. А поскольку после выполнения трассировки маршрута с помощью программы traceroute было обнаружено, что путь в Сиэтл в период значительного замедления проходит через Флориду, ответ стал очевидным. По всей вероятности, опорная сеть, которая обычно используется, была перегружена или остановлена, поэтому пакеты были направлены по альтернативному маршруту, который оказался намного длиннее.
В программе traceroute задача проверки маршрута выполняется очень просто. Как указано выше, после истечения времени, установленного в поле TTL, пакет уничтожается и хосту передается сообщение Time Exceeded протокола ICMP. В программе traceroute как раз и используется это поле, в котором по мере отправки очередных пакетов устанавливаются небольшие, но последовательно увеличивающиеся значения. Установив значение TTL в первом пакете, передаваемом получателю, равное 1, программа traceroute получает сообщение Time Exceeded от первого же маршрутизатора на пути к месту назначения (такое сообщение, безусловно, не может быть получено в том случае, если в конфигурации маршрутизатора не предусмотрена отправка сообщений Time Exceeded). Причина отправки такого сообщения является очевидной: каждый маршрутизатор в пути следования пакета должен уменьшить значение TTL, по меньшей мере, на 1. А если поле TTL имело значение 1 и маршрутизатор уменьшил его на 1, такое значение становится равным 0, поэтому пакет отбрасывается и отправителю передается сообщение Time Exceeded.
Итак, программа traceroute просто выполняет такую операцию много раз, последовательно увеличивая при этом значение TTL на 1. Поэтому при отправке первого сообщения TTL равно 1, что позволяет определить первый транзитный переход. Во втором сообщении оно равно 2, что дает возможность узнать, где находится второй транзитный переход и т.д.
Сообщение Parameter Problem (ошибка при обработке параметра)
Сообщение Parameter Problem передается отправителю в том случае, если устройство получателя не может определить, что означает один из параметров в заголовке IP, и поэтому вынуждено отбросить ракет. Как правило, это сообщение передается только в том случае, если получателем обнаружены в пакете такие опции, которые он не может распознать.
Сообщения Timestamp Request (запрос отметки времени) и Timestamp Reply (ответ с отметкой времени)
Сообщения Timestamp протокола ICMP позволяют проставить в пакете отметку времени (в миллисекундах после полуночи) с указанием того момента, когда отправитель послал сообщение, получатель принял это сообщение, а затем отправил его назад. Наиболее очевидный способ использования таких сообщений состоит в измерении задержки (определении того, какова продолжительность времени между отправкой сообщения по сети и получением ответа), но эти сообщения применяются также для синхронизации аппаратных часов.
Сообщения Information Request (информационный запрос) и Information Reply (информационный ответ)
Сообщения ICMP типа Information применяются устройством для определения того, в какой сети оно находится. Устройство отправляет пакет IP, в котором в полях адреса отправителя и получателя находятся значения 0.0.0.0. Затем другое устройство (обычно маршрутизатор или сервер) в ответ передают сетевой адрес данной локальной сети, что позволяет отправителю первоначального сообщения определить, к какой сети он относится.
Дополнительная информация о протоколе ICMP приведена в документе RFC 792 (стандарт 5).
Протокол icmp предназначен для чего
Другими словами, вы можете представить ICMP как команду, которая производит механические детали для автомобилей. Лучшим способом сборки транспортного средства было бы сначала изготовить каждую отдельную деталь, прежде чем отправлять каждую из этих деталей на сборочную линию, которая затем собирала бы их в более сложный продукт. Однако, как мы все знаем, будут моменты, когда производственная бригада не сможет отправить некоторые детали в запланированные сроки. Если когда-либо будут отсутствовать детали, то сборочная линия должна будет уведомить об этом производственную группу, следовательно, ICMP работает аналогичным образом. По сути, ICMP играет роль посланника, который передает данные и информацию от получателя к отправителю.
Cодержание
Функциональность
На самом деле, этот протокол довольно сложный. Он имеет множество других функций, помимо сообщения об ошибках в пакетных передачах и хостах, которые не могут быть достигнуты. Он также ретранслирует эхосигналы, а также эхо-ответы на сообщения. Это используется с помощью хорошо известной команды PING, которая позволяет большинству пользователей передавать эхо на принимающий хост. При получении эхосигнала он посылает эхо-ответ.
Таким образом, ICMP-сообщения предоставляют возможность сети и системе уведомлять IP-адрес источника, который является передающим, если удаленный узел, который является принимающей стороной, не получает пакетов, которые были переданы. [2]
Маршрутизатор используется для передачи популярного сообщения «Destination Unreachable» обратно на исходный узел. [3] Это затем отправит его на устройство или программу, которые первыми передали пакеты данных. Эти сообщения об ошибках затем сообщали программе о наличии проблемы с подключением к сети. Как только исходная программа получит информацию о том, что некоторые из этих пакетов данных не дошли до получателя, она затем повторно передаст эту информацию получателю.
Как основная функция, ICMP не обязательно регулярно используется отдельными пользователями в приложениях конечных пользователей, но используется многими сетевыми администраторами для устранения любых ошибок, присутствующих в интернет соединениях, с помощью таких утилит, как диагностика: [4]
Основной протокол, используемый ICMP, используется промежуточными устройствами, маршрутизаторами и даже хостами для связи в случае возникновения ошибки и обновления необходимых маршрутизаторов, промежуточных устройств и хостов. При этом наиболее широко используемые IPv4 (Internet Protocol version 4) и гораздо новые IPv6 используют аналогичные версии протокола ICMP, которые называются ICMPv4 и ICMP6 соответственно. [5]
С точки зрения того, как ICMP соотносится с различными заголовками пакетов, заголовок ICMP появляется после заголовка пакета IPv4 или IPv6 при распознавании по номеру протокола. Этот сложный протокол содержит три различных основных компонента: [6]
ICMP Сообщения
Наиболее популярным и известным сообщением из датаграммы ICMP является сообщение «Destination Unreachable». [1:1] Существует несколько причин, по которым генерируется это сообщение, включая такие проблемы, как невозможность подключения к сети, хосту, порту или даже неисправный протокол.
Большинство пользователей должны знать и учитывать, что хотя сообщение «Destination Unreachable» является наиболее распространенным полученным сообщением, ICMP не единственное сообщение, которое может транслироваться. Существуют и другие сообщения об ошибках, которые включают в себя: [2:1]
Другие сообщения: «Проблема с параметрами», «Запрос и ответ на адресную маску», «Метка времени».
Ограничения
Несмотря на все эти роли, которые должна выполнять ICMP, у нее есть некоторые функциональные ограничения. ICMP не помогает хосту-источнику или IP-адресу стать более надежным и фактически не принимает и не отправляет никаких данных, которые могут быть использованы для передачи. [5:1] ICMP просто существует как способ выявления проблем с потерянными пакетами и любой нарушенной маршрутизацией.
ICMP также не будет посылать сообщения о сообщениях ICMP. [2:2] Если это когда-либо произойдет, это вызовет цикл обратной связи, который окажется вредным для системы, так как создаст ICMP сообщение обратно на другую сторону. Затем это быстро тиражировалось бы до такой степени, что сеть была бы затоплена, что делало бы ее неэффективной.