ICMP (ang. Internet Control Message Protocol) - это один из протоколов сетевого уровня в модели ISO/OSI. Его задачей является обслуживание функции контроля правильности работы сети. С его помощью передаются всякого рода, низкоуровневые сводки, с раскроенными неправильностями во время сетевых связей. Практически целая коммуникация между данными компьютерами или другими устройствами при употреблении протокола ICMP происходит незаметным для конечнего пользователя образом. Единичными исключениями являются здесь инструменты ping и traceroute.
Коммуникация, ицпользующая протокол ICMP, состоит в пересылке подходящих информаций об ошибках, раскроенных во время связи между двумя устройствами. Одиночная информация существует в виде пакета, сформированного надлежащим образом (ang. Datagram), который следовательно будет подвергнутый инкапсуляции в рамке протокола IP. Протокол ICMP, вопреки всеобщему мнению, не использует в своей работе протоколы TCP, ни UDP. Итак, не пользуется никакими сетевыми портами.
Устройство пакета ICMP следующее:
Заголовок в 4 байтов - первый байт определяет тип пакета, второй - код операции, третий и четвёртый представляют собой контрольную сумму.
. Поле данных с долготой зависимой от типа пакета и его функции. В некоторых случаях может быть установленным с уровня инструмента, напр. догадливая команда ping в Виндоуз устанавливает размер данных пакета ECHO_REQUEST на 32 байта, а версия, встречающаяся в системах Юникс на 56 байтов.
Список некоторых типов сводок протокола ICMP:
Тип Значение
0 Echo Reply (поворот эха - "ответ на ping")
1 - 2 Забронированные
3 Destination Unreachable (недостожимость места предназначения)
4 Source Quench (сдержание отправителя)
5 Redirect Message (измени трассирование)
6 Alternate Host Address (альтернативный адрес хоста)
7 Забронированные
8 Echo Request (требование эха)
9 Router Advertisement (объявление маршрутизатора (рутера))
10 Router Solicitation (выбор рутера)
11 Time Exceeded (превышение лимита времени)
12 Parameter Problem (проблема с параметром)
13 Timestamp (требование временного шифра)
14 Timestamp Reply (поворот временного шифра)
15 Information Request (требование информации)
16 Information Reply (поворот информации)
17 Address Mask Request (требование адресной маски)
18 Address Mask Reply (поворот адресной маски)
19 Забронированные для безопасности
20 - 29 Забронированные
30 Traceroute (слежка трассы)
31 Datagram Conversion Error (ошибка конверсии дейтаграммы)
32 Mobile Host Redirect (изменение адреса мобильного узла)
33 IPv6 Where-Are-You (вопрос IPv6 "где ты")
34 IPv6 Here-I-Am (ответ IPv6 "я здесь")
35 Mobile Registration Request (просьба регистрировать мобильный узел)
36 Mobile Registration Reply (ответ на проьбу регистрировать мобильный узел)
37 Domain Name Request (требование названия домена)
38 Domain Name Reply (поворот названия домена)
39 SKIP Algorithm Discovery Protocol
40 Photuris, Security failures
41-255 Забронированные
Поле кода операции в заголовке пакета ICMP определяет вид содержания в сообщении, зависимого от его типа. Например, пакет типа 3, то есть Destination Unreachable может заключать следующие коды операции во втором байте заголовка:
0 Целевая сеть недостижимая
1 Целевое устройство (хост) недостижимое
2 Целевой протокол недостижимый (или необслуживаемый)
3 Целевой порт недостижимый
4 Пакет должен быть подвергнутый фрагментации, а установили флаг DF (не фрагментируй)
5 Traceroute неправильная
6 Неизвестная целевая сеть
7 Целевое устройство (хост) неизвестное
8 Хост отправителя недоступный
9 Доступ в сеть воспрещённый
10 Доступ в устройство воспрещённый
11 Установка поля Type of Service (в заголовке IP) делает невозможным доступ в целевую сеть
12 Установка поля Type of Service (в заголовке IP) делает невозможным доступ в целевую сеть
13 Коммуникация воспрещённая
Примеры работы протокола ICMP:
Ping - один из инструментов, выступающих практически в каждой операционной системе, обслуживающей протокол TCP/IP. С его помощью пакеты ICMP ECHO_REQUEST отправляются в целевой компьютер. Дистанционная машина, после получения такого сообщения должна ответить при помощи ECHO_REPLY. Поэтому можно определить следующее: Конфигурация сети делает возможной связь с дистанционной машиной, и оценку её нагрузки на основании информаций, касающихся количества потерянных пакетов и времени ответа.
. Traceroute - инструмент, делающий возможным определение, через какие маршрутизаторы проходит пакет по дороге к дистанционному компьютеру. Сначала, локальный компьютер посылает пакет ECHO_REQUEST в дистанционное устройство, с параметром ТТЛ (TTL -Time to Live), установленным на 1. Первый рутер уменьшает ТТЛ на один, значит до нуля, удаляет пакет и отсылает адресату сообщение ICMP TIME_EXCEEDED. Целевой компьютер, после получения такой информации, возобновляет высылку ECHO_REQUEST, но ц ТТЛ установленным на стоимость 2. Первый рутер уменьшает ТТЛ на 1, второй сделает то же самое, устанавливая 0, и вновь удалит пакет, и отошлёт сообщение TIME_EXCEEDED. Такая ситуация повтаряется так долго, что даже пакет доберётся до дистанционного комньютера, который тогда отошлёт отправителю сообщение ECHO_REPLY.
Протокол IP не имеет механизма, сообщающего об ошибке или исправляющего ее. Протоколу IP также недостает ICMP - механизма запросов управления от хоста. Хост иногда должен определять, исправен ли маршрутизатор или другой хост . И иногда сетевой менеджер нуждается в информации от другого хоста или маршрутизатора.
Протокол управления сообщениями Интернета ( ICMP – Internet Control Message Protocol ) был разработан для компенсации этих вышеупомянутых дефектов. Это - спутник протокола IP . ICMP - протокол сетевого уровня. Однако он сам не передает сообщения непосредственно данных канальному уровню. Эти сообщения первыми инкапсулируются в дейтаграммы IP перед переходом к более низкому уровню (рис. 6.1).
Рис.
6.1.
Значение поля протокола в дейтаграмме IP - это "1", оно указывает, что данные IP - это ICMP -сообщение.
ICMP -сообщения разделены на две широкие категории: отчет об ошибке сообщения и запрос , как это показано на рис. 6.2.
Сообщение об ошибке переносит данные о проблемах, возникающих при обмене сообщениями, с которыми маршрутизатор или хост ( пункт назначения) могут столкнуться, когда они обрабатывают пакет IP .
Сообщения запроса помогают хосту или сетевому менеджеру получить заданную информацию от маршрутизатора или другого хоста. Например, узлы могут обнаружить их соседей. Также хосты могут обнаружить и узнать о маршрутизаторах на их сети, и маршрутизаторы могут помочь узлу переадресовывать его сообщения. Таблица 6.1. перечисляет ICMP -сообщения в каждой категории.
Категория | Тип | Сообщение |
---|---|---|
Сообщения отчета об ошибках | 3 | Конечный пункт не достижим |
4 | подавление источника | |
11 | Время истекло | |
12 | Проблемы параметров | |
5 | Переназначение | |
8 или 0 | Эхо запрос и ответ | |
13 или 14 | Метка времени запрос и ответ | |
17 или 18 | Маска адреса запрос и ответ | |
10 или 9 | Маршрутизатор затребование и извещение |
ICMP -сообщение имеет 8-байтовый заголовок и раздел данных переменного размера. Хотя общий формат заголовка различен для каждого типа сообщения, первые 4 байта - общие для всех. Как показывает рис. 6.3. , первое поле , ICMP , определяет тип сообщения . Поле кода определяет основание для конкретного типа сообщения. Последнее общее поле – это поле контрольной суммы. Остальная часть заголовка задана для каждого типа сообщения.
Раздел данных в сообщениях об ошибках доставляет информацию для нахождения первоначального пакета, который содержит ошибку. В сообщениях запроса раздел данных доставляет дополнительную информацию, основанную на типе запроса.
Одна из главных обязанностей ICMP состоит в том, чтобы известить об ошибках. Хотя технологии передачи сегодня предоставляют для передачи все более и более достоверные среды, ошибки все еще существуют и должны быть обработаны. IP , как обсуждалось ранее, является ненадежным протоколом. ICMP был частично предназначен для компенсирования этого недостатка. Однако ICMP не исправляет ошибки, он просто извещает о них. Исправление ошибки оставляют протоколам высокого уровня. Сообщения об ошибках всегда посылают первоначальному источнику, потому что единственная информация , доступная в дейтаграмме о маршруте - адреса IP пункта назначения и источник. ICMP использует исходный адрес IP , чтобы послать сообщение об ошибках источнику дейтаграммы. Обрабатываются пять типов ошибок
Протокол передачи команд и сообщений об ошибках ( ICMP - internet control message protocol, RFC-792, - 1256) выполняет различные и не только диагностические функции. При пересылке пакетов промежуточные узлы не информируются о возникших проблемах, поэтому ошибка в маршрутной таблице может восприниматься как неисправность в узле адресата и достоверно диагностироваться не будет. ICMP-протокол сообщает об ошибках в IP-дейтаграммах, но не дает информации об ошибках в самих ICMP-сообщениях. ICMP использует IP, а IP-протокол должен использовать ICMP. В случае ICMP-фрагментации сообщение об ошибке будет выдано только один раз на дейтаграмму, даже если ошибки были в нескольких фрагментах. Подводя итоги, можно сказать, что ICMP -протокол:
ICMP -сообщения об ошибках никогда не выдаются:
Эти правила призваны блокировать потоки дейтаграмм, посылаемые в отклик на мультикастинг- или широковещательные ICMP -сообщения. Особенности протокола ICMPv6 описаны в документе RFC-2463. В IPv6 на протокол ICMP возложены функции управления группами ( IGMP ).
ICMP -сообщения имеют свой формат, а схема их вложения аналогична UDP или TCP и представлена на рис. 3.1 .
Все ICMP пакеты начинаются с 8-битного поля типа ICMP и его кода (15 значений).
Рис.
3.1.
По существу, значения полей типа и кода выполняют почти ту же функцию, что и порт в ТСР и UDP -протоколах.
Код уточняет функцию ICMP -сообщения. Таблица 3.1 этих кодов приведена ниже (символом * помечены сообщения об ошибках, остальные являются запросами).
Процедура "отключение источника" (quench, поле тип ICMP=4 ) позволяет управлять потоками данных в каналах Интернет . Не справляясь с обработкой дейтаграмм, ЭВМадресат (или транзитное сетевое устройство) может послать запрос "отключить источник" отправителю, который может сократить темп посылки пакетов, например, вдвое, или вовсе прервать их посылку. Специальной команды, отменяющей прежние запреты, не существует. Если сообщения об отключении прекращаются, источник может возобновить посылку пакетов или увеличить частоту их отправки. Ниже (на рис. 3.2) представлен формат эхозапроса ( ping ) и отклика для протокола ICMP .
Поля идентификатор (обычно это идентификатор процесса) и номер по порядку (увеличивается на 1 при посылке каждого пакета) служат для того, чтобы отправитель мог связать в пары запросы и отклики.
Поле тип определяет, является ли этот пакет запросом (8) или откликом (0). Поле контрольная сумма представляет собой 16-разрядное дополнение по модулю 1 контрольной суммы всего ICMP -сообщения, начиная с поля тип . Поле данные служит для записи информации, возвращаемой отправителю. При выполнении процедуры ping эхозапрос с временной меткой в поле данные посылается адресату. Если адресат активен, он принимает IP -пакет, меняет адрес отправителя и получателя местами и посылает его обратно. ЭВМ-отправитель, восприняв этот отклик, может сравнить временную метку, записанную им в пакет, с текущим показанием внутренних часов и определить время распространения пакета ( RTT - round trip time ). Размер поля данные не регламентирован и определяется предельным размером IP -пакета.
ICMP-сообщение | описание сообщения | |
---|---|---|
Тип | код | |
0 | Эхо-ответ (ping-отклик) | |
3 | Адресат недостижим | |
0 | * Сеть недостижима | |
1 | * ЭВМ недостижима | |
2 | * Протокол недоступен | |
3 | * Порт недоступен | |
4 | * Необходима фрагментация сообщения (установлен флаг DF) | |
5 | * Маршрутизация отправителя нереализуема | |
6 | * Сеть места назначения неизвестна | |
7 | * ЭВМ места назначения неизвестна | |
8 | * Исходная ЭВМ изолирована (устарело) | |
9 | * Связь с сетью места назначения административно запрещена | |
10 | * Связь с ЭВМ места назначения административно запрещена | |
11 | * Сеть не доступна для данного вида сервиса (TOS) | |
12 | * ЭВМ не доступна для данного вида сервиса (TOS) | |
13 | * Связь административно запрещена с помощью фильтра | |
14 | * Нарушение старшинства ЭВМ | |
15 | * Дискриминация по старшинству | |
4 | 0 | * Отключение источника при переполнении очереди (quench) |
5 | Переадресовать (изменить маршрут) | |
0 | Переадресовать дейтаграмму в сеть (устарело) | |
1 | Переадресовать дейтаграмму на ЭВМ | |
2 | Переадресовать дейтаграмму для типа сервиса (ToS) и сети | |
3 | Переадресовать дейтаграмму для типа сервиса и ЭВМ | |
8 | 0 | Эхо запроса (ping-запрос) |
9 | 0 | Объявление маршрутизатора |
10 | 0 | Запрос маршрутизатора |
11 | Для дейтаграммы время жизни истекло (ttl=0): | |
0 | *при передаче | |
1 | * тайм-аут при сборке (случай фрагментации) | |
12 | * Проблема с параметрами дейтаграммы | |
0 | * Ошибка в IP-заголовке | |
1 | * Отсутствует необходимая опция | |
13 | Запрос временной метки | |
14 | Временная метка-отклик | |
15 | Запрос информации (устарел) | |
16 | Информационный отклик (устарел) | |
17 | Запрос адресной маски | |
18 | Отклик на запрос адресной маски |
Так как в пакете ICMP нет поля порт , то при запуске нескольких процессов PING одновременно может возникнуть проблема с тем, какому из процессов следует передать тот или иной отклик. Для преодоления этой неопределенности следует использовать уникальные значения полей идентификатор .
Время распространения ICMP -запроса, вообще говоря, не равно времени распространения отклика (ситуация с очередями, например, в маршрутизаторах может быть разной). Это связано не только с возможными изменениями в канале. В общем случае маршруты их движения могут быть различными. Те же запросы используются при выполнении процедуры Traceroute .
Эта процедура позволяет не только диагностировать, но и оптимизировать маршрут . Например, команда traceroute cernvm.cern.ch , выданная в ЭВМ SUN (ИТЭФ), может отобразить на экране (в скобках указаны IP -адреса узлов и значения времени жизни дейтаграмм, значения RTT приводится в миллисекундах) (таблица 3.1.1.):
traceroute to crnvma cern ch | (128 141 2 4) 30 hops max, 40 byte packets | |
---|---|---|
1 | itep-fddi-bbone | (193.124.224.50) 3 ms 2 ms 3 ms |
2 | msu - tower .moscow.ru.radio- msu .net | (193.124.137.13) 3 ms 3 ms 3 ms |
3 | npi- msu .moscow.ru.radio- msu .net | (193.124.137.9) 27 ms 3 ms 9 ms |
4 | desy.hamburg.de.radio- msu .net | (193.124.137.6) 556 ms 535 ms 535 ms |
5 | * 188.1.133.56 | (188.1.133.56) 637ms 670ms |
6 | duesseldorf2.empb.net | (193.172.4.12) 740ms(ttl=59!) 839ms(ttl=59!) 2066ms(ttl=59!) |
7 | bern3.empb.net | (193.172.4.30) 2135ms (ttl=58!) 1644ms (ttl=58!) 1409ms (ttl=58!) |
8 | cernh3.euro-hep.net | (193.172.24.10) 1808ms 1508ms 1830ms |
9 | cgate1.cern.ch | (192.65.185.1) 1116ms 1270ms 1278ms |
10 | crnvma.cern.ch | (128.141.2.4) 1132ms 1362ms 1524ms |
Отсюда видно, что наиболее узкими участками маршрута (на момент выполнения процедуры) являются Гамбург-Дюссельдорф-Берн-CERN. Следует иметь в виду, что канал МГУ-Гамбург был спутниковым и 500мс задержки здесь вносит удвоенное время распространения сигнала до спутника и обратно. Участок Гамбург-Дюссельдорф (X.25, квота 256кбит/с) был общим для потока данных из Германии в США. Передача IP поверх X.25 также снижает эффективную широкополосность канала. Остальные связи обладают недостаточной пропускной способностью. Программа ping показывает для данных участков в часы пик высокую долю потерянных пакетов. Таким образом, имея карту связей и используя указанные процедуры, вы можете успешно диагностировать ситуацию в сети. Продвинутые же программисты могут легко написать свои диагностические программы, базирующиеся на ICMP , как для локальной сети, так и для "окрестного" Интернет .
Когда маршрутизатор не может доставить дейтаграмму по месту назначения, он посылает отправителю сообщение "адресат недостижим" ( destination unreachable). Формат такого сообщения показан ниже (на рис. 3.3).
Поле код содержит целое число , проясняющее положение дел. Перечень кодов таких сообщений помещен в таблице 3.1 . Поле MTU на следующем этапе характеризует максимальную длину пакетов на очередном шаге пересылки. Эта информация ( MTU ) позволяет выбрать оптимальный размер пакета .
Так как в сообщении содержится Интернет -заголовок и первые 64-бита дейтаграммы, легко понять, какой адрес оказался недостижим. Этот тип ICMP -сообщения посылается и в случае, когда дейтаграмма имеет флаг DF=1 ("не фрагментировать"), а фрагментация необходима. В поле код в этом случае будет записано число 4.
Если буфер приема сообщения переполнен, ЭВМ посылает сообщение типа 4.
Так как собственные часы различных ЭВМ имеют свое представление о времени, протокол ICMP , среди прочего, служит для синхронизации работы различных узлов, если это требуется (запросы временных меток). Протокол синхронизации NTP ( network time protocol ) описан в RFC-1119.
Когда дейтаграммы поступают слишком часто и принимающая сторона не справляется с этим потоком, отправителю может быть послано сообщение с требованием резко сократить информационный поток (quenchзапрос). Снижение потока должно продолжаться до тех пор, пока не прекратятся quenchзапросы. Такое сообщение имеет формат, показанный на рис. 3.4 .
В Internet таблицы маршрутизации остаются без изменений достаточно долгое время, но иногда они все же меняются. Если маршрутизатор обнаружит, что ЭВМ использует неоптимальный маршрут , он может послать ей ICMP - запрос переадресации. При этом следует учитывать, что этой возможностью может воспользоваться и хакер . Формат такого сообщения отображен на рисунке 3.5 .
Поле Internet-адрес маршрутизатора содержит адрес маршрутизатора, который ЭВМ должна использовать, чтобы посланная дейтаграмма достигла места назначения, указанного в ее заголовке. В поле internet -заголовок кроме самого заголовка лежит 64 первых бита дейтаграммы, вызвавшей это сообщение. Поле код специфицирует то, как нужно интерпретировать адрес места назначения (см. табл. 3.1).
Команды переадресации маршрутизатор посылает только ЭВМ и никогда другим маршрутизаторам. Рассмотрим конкретный пример. Пусть некоторая ЭВМ на основе своей маршрутной таблицы посылает пакет маршрутизатору M1. Он, просмотрев свою маршрутную таблицу, находит, что пакет следует переслать маршрутизатору M2. Причем выясняется, что пакет из M1 в M2 следует послать через тот же интерфейс , через который он попал в M1. Это означает, что M2 доступен и непосредственно для ЭВМ-отправителя. В такой ситуации M1 посылает ICMP - запрос переадресации ЭВМ-отправителю указанного пакета с тем, чтобы она внесла соответствующие коррективы в свою маршрутную таблицу (либо чтобы администратор поменял IPадрес или маску ЭВМ).
Маршрутная таблица может загружаться из файла, формироваться менеджером сети, но может создаваться и в результате запросов и объявлений, посылаемых маршрутизаторами. После загрузки системы маршрутизатор посылает широковещательный запрос . Один или более маршрутизаторов посылают в ответ сообщения об имеющейся маршрутной информации. Кроме того, маршрутизаторы периодически (раз в 450600 сек.) широковещательно объявляют о своих маршрутах, что позволяет другим маршрутизаторам скорректировать свои маршрутные таблицы. В RFC-1256 описаны форматы ICMP -сообщений такого рода (см. рис. 3.6). Из--за своей уязвимости данная технология в последнее время практически не используется.
Поле число адресов характеризует количество адресных записей в сообщении. Поле длина адреса содержит число 32-битных слов, необходимых для описания адреса маршрутизатора. Поле время жизни предназначено для записи продолжительности жизни объявленных маршрутов (адресов) в секундах. По умолчанию время жизни равно 30 мин. Поля уровень приоритета представляют собой меру приоритетности маршрута по отношению к другим маршрутам данной подсети. Чем больше этот код, тем выше приоритет. Маршрут по умолчанию имеет уровень приоритета 0. Формат запроса маршрутной информации (8 октетов,
Протокол ICMP
Межсетевой протокол управляющих сообщений (ICMP - Internet Control Message Protocol) разработан для того, чтобы маршрутизаторы в Интернете сообщали об ошибках или предоставляли информацию о нестандартных условиях работы сети. Он является необходимой частью протокола IP. И обеспечивает обратную связь, оповещение отправителя данных о проблемах, возникающих в коммуникационном оборудовании.
Протокол ICMP - это механизм сообщения об ошибках. Он обеспечивает маршрутизаторам, обнаруживающим ошибки, способ сообщения об ошибке первоначальному источнику. Хотя спецификация протокола определяет допустимые способы использования ICMP и предлагает варианты возможных действий в ответ на ошибки, ICMP не специфицирует полностью действия, которые необходимо предпринять в ответ на все возможные ошибки. Таким образом, ICMP только сообщает о возникших ошибках первоначальному источнику; источник сам должен связать ошибки с конкретными прикладными программами и предпринять действия по исправлению ошибок.
Протокол ICMP выполняет следующие основные функции:
обмен тестовыми сообщениями для выяснения наличия и активности узлов сети;
анализ достижимости узлов и сброс пакетов, направленных к недостижимым узлам;
изменение маршрутов (Redirect);
уничтожение пакетов с истекшим временем жизни (Time-To-Live);
синхронизация времени в узлах сети;
управление трафиком (регулирование частоты отправки пакетов).
С точки зрения уровневых протоколов, ICMP является частью сетевого уровня. Но по отношению к IP ICMP протокол более высокого уровня, так как он пользуется услугами IP для доставки своих сообщений. Другими словами, каждое сообщение ICMP передается по сети внутри 1Р-дейтаграммы.
ICMP-сообщения бывают двух видов: сообщение-запрос и сообщение об ошибке. Сообщение об ошибке тесно связано с породившей его дейтаграммой и всегда содержит заголовок этой IP-дейтаграммы и первые 64 бит ее данных. Это необходимо для того, чтобы узел-источник смог более точно проанализировать причину ошибки, так как все прикладные протоколы стека TCP/IP содержат наиболее важную информацию для анализа в первых 8 байт своего сообщения. Сообщения-запросы передают информацию об определенной сети и об определенном компьютере или их используют для диагностических целей.
IP-пакеты с сообщениями ICMP передаются по сети «на общих основаниях», без приоритетов, поэтому они тоже могут теряться. В загруженной сети они могут вызвать дополнительную загрузку маршрутизаторов, когда потеря сообщения об ошибке приводит к порождению нового сообщения и т. д., пока канал связи не исчерпает своей пропускной способности. Для того чтобы предотвратить подобные ситуации, в спецификации четко определены правила, руководствуясь которыми компьютер может решить, передавать его ICMP- сообщение или нет.
Правило 1: потеря пакета с ICMP-сообщением никогда не генерирует нового ICMP-сообщения.
Правило 2: сообщения об ошибке никогда не генерируются в ответ на IP- дейтаграммы с широковещательными или групповыми адресами, чтобы не вызвать полную перегрузку сети - широковещательный шторм (broadcast storm ).
Правило 3 : при повреждении фрагментированной дейтаграммы, 1СМР-со- общение отправляют только после первого поврежденного фрагмента (так как источник все равно повторит передачу всей дейтаграммы целиком).
Доставка ICMP-пакетов требует двух уровней инкапсуляции. ICMP-пакеты инкапсулируются внутрь IP-дейтаграммы, которая сама передается по каждой физической сети в поле данных кадра (рис. 5.29).
Несмотря на то, что сообщения ICMP инкапсулируются и посылаются, используя IP, ICMP не считают протоколом более высокого уровня - он является
необходимой частью IP. Протокол IP необходим для транспортировки сообщений ICMP, так как им, чтобы достичь своего конечного назначения, надо пересечь несколько физических сетей. Поэтому, они не могут быть доставлены только с помощью физической передачи.
Формат ICMP-пакетов. Хотя каждое сообщение ICMP имеет свой собственный формат, все они начинаются с трех одинаковых полей: 8-битового целочисленного поля «Тип», идентифицирующего сообщение, 8-битового поля «Код», обеспечивающего более точную информацию о типе сообщения, и 16битового поля «Контрольная сумма» (рис. 5.30). Помимо того, сообщения ICMP, сообщающие об ошибках, всегда включают заголовок и первые 64 бит данных дейтаграммы, вызвавшей ошибку. Это необходимо для того, чтобы узел-отправитель смог более точно проанализировать причину ошибки, так как все протоколы прикладного уровня стека TCP/IP содержат наиболее важную информацию для анализа в первых 64 бит своих сообщений.
Сетевые программы распознают ICMP-сообщения по двум признакам: значению поля «Тип» и значению поля «Код». Контрольная сумма вычисляется не только для ICMP-заголовка, но и для всего сообщения.
Таблица 5.12. Типы сообщений ICMP
сообщения |
Описание |
Ответ на эхо (Echo Reply) |
|
Узел назначения недостижим (Destination Unreachable) |
|
Подавление источника (Source Quench) |
|
Перенаправление маршрута (Redirect) |
|
Запрос эха (Echo Request) |
|
Информация о маршрутизаторах (Router Advertisement) |
|
Регистрация маршрутизатора (Router Solicitation) |
|
Лимит времени для дейтаграммы превышен (Time Exceeded for a Data- gramm) |
|
Проблема с параметром пакета (Parameter Problem on a Datagramm) |
|
Запрос метки времени (Timestamp Request) |
|
Ответ для метки времени (Timestamp Reply) |
|
Запрос информации (не действует) |
|
Ответ на запрос информации (не действует) |
|
Запрос маски адреса (Address Mask Request) |
|
Ответ на запрос маски адреса (Address Mask Reply) |
Типы сообщений ICMP представлены в табл. 5.12. Рассмотрим каждое из этих сообщений и его формат подробнее.
Тестирование достижимости места назначения. Протоколы TCP/IP обеспечивают средства, помогающие сетевым администраторам или пользователям идентифицировать проблемы в сети. Пользователь в качестве одного из широко используемых средств отладки применяют команду, которая вызывает сообщения ICMP запроса эха и ответа эха. Компьютер или маршрутизатор посылает сообщение запроса эха указанному месту назначения. Любая машина, получившая запрос эха, генерирует ответ на эхо и возвращает его первоначальному отправителю. Этот запрос содержит необязательную область данных; ответ содержит копию данных, посланных в запросе. Запрос эха и связанный с ним ответ можно использовать для проверки достижимости назначения и его способности отвечать на запросы. Так как и запрос эха, и ответ на него передаются в IP-дейтаграммах, успешный прием ответа свидетельствует о работоспособности основных частей транспортной системы. Во-первых, программное обеспечение IP на машине источника выполнило маршрутизацию дейтаграммы. Во-вторых, промежуточные маршрутизаторы между источником и получателем работоспособны и корректно маршрутизируют дейтаграммы. В-третьих, машина получателя работает (по крайней мере, она обрабатывает прерывания) и программное обеспечение, как IP, так и ICMP, выполняет свои функции. И, наконец, таблицы маршрутов в маршрутизаторах на всем обратном пути корректны.
Во многих системах команда, которую пользователи вызывают для посылки запроса эха ICMP, называется ping . Усложненные версии этой программы посылают серии запросов эха ICMP, принимают ответы и выдают статистику о потерях дейтаграмм. Они позволяют пользователю указывать длину посылаемых данных и интервалы времени между запросами. Менее сложные версии просто посылают запрос эха ICMP и ждут ответа.
Формат сообщения запроса эха и ответа эха. Средства для тестирования достижимости узлов сети представляют собой очень простой эхо-протокол, включающий обмен двумя типами сообщений: эхо-запрос и эхо-ответ. Компьютер или маршрутизатор посылают по интерсети эхо-запрос, в котором указывают IP-адрес узла, достижимость которого нужно проверить. Узел, получающий эхо-запрос, формирует и отправляет эхо-ответ и возвращает сообщение узлу - отправителю запроса. В запросе могут содержаться некоторые данные, которые должны быть возвращены в ответе.
Рис. 5.30 иллюстрирует формат сообщений запроса эха и ответа на запрос эха. Поле «Необязательные данные» имеет переменную длину и содержит данные, которые надо вернуть отправителю. Ответ на эхо всегда возвращает те же самые данные, что были получены им в запросе. Поля «Идентификатор» и «Последовательный номер» отправитель использует для проверки соответствия ответов запросам. Значение поля «Тип» определяет, является ли сообщение запросом (8) или ответом (0).
Сообщения о недостижимости назначения. Когда маршрутизатор не может доставить IP-дейтаграмму, он посылает сообщение «назначение недостижимо» первоначальному отправителю, используя формат, приведенный на рис. 5.31. Поле «Код» в сообщении о недостижимости назначения содержит целое число, которое описывает причину. Возможные значения представлены в табл. 5.13.
Таблица 5.13. Коды сообщений о недостижимости
сообщения |
Пояснения |
Сеть недостижима |
|
Компьютер недостижим |
|
Протокол недостижим |
|
Порт недостижим |
|
Необходима фрагментация |
|
Ошибка при маршрутизации источника |
|
Сеть назначения неизвестна |
|
Компьютер назначения неизвестен |
|
Компьютер источника изолирован |
|
Взаимодействие с сетью назначения административно запрещено |
|
То же с компьютером назначения |
|
Сеть недостижима из-за класса обслуживания |
|
Компьютер недостижим из-за класса обслуживания |
Хотя протокол ЕР является механизмом ненадежной доставки, дейтаграммы не уничтожаются просто так. Всякий раз, когда ошибка мешает маршрутизатору произвести маршрутизацию или доставку дейтаграммы, маршрутизатор посылает сообщение о недостижимости назначения его источнику, а затем уничтожает дейтаграмму. Ошибки недостижимости сети обычно являются следствием ошибок маршрутизации; ошибки недостижимости компьютера - следствие ошибок при доставке.
Назначения могут быть недостижимыми из-за того, что оборудование было временно неработоспособно, отправитель указал несуществующий адрес назначения или (в редких случаях) у маршрутизатора не указано маршрута к сети назначения. Необходимо отметить, что не все подобные ошибки можно обнаружить.
Если дейтаграмма содержит опцию маршрутизации источника с некорректным маршрутом, то это может привести к появлению сообщения об ошибке маршрутизации источника. Если шлюзу нужно фрагментировать дейтаграмму, но установлен бит «не фрагментировать», то шлюз посылает сообщение «требуется фрагментация» обратно источнику.
Управление потоком дейтаграмм и переполнение сети. Так как IP- протокол не устанавливает соединения, то маршрутизаторы не могут резервировать память или коммуникационные ресурсы до получения дейтаграмм. В результате, трафик может вызвать перегрузку маршрутизаторов, ситуацию, называемую переполнением сети (congestion). Переполнение сети происходит по двум совершенно разным причинам. Во-первых, высокоскоростной компьютер может генерировать трафик быстрее, чем сеть может передавать его. Например, представим суперкомпьютер, генерирующий межсетевой трафик. Дейтаграммам, посылаемым им, может потребоваться передача, в конечном счете, по медленной глобальной сети (WAN), хотя сам суперкомпьютер может быть присоединен к высокоскоростной LAN. Переполнение будет возникать в маршрутизаторе, присоединенном к глобальной сети, так как дейтаграммы будут прибывать быстрее, чем их можно послать. Во-вторых, если большому числу компьютеров одновременно нужно посылать дейтаграммы через один маршрутизатор, этот маршрутизатор может оказаться переполненным, хотя ни один источник в отдельности не вызывает эту проблему.
Когда дейтаграммы прибывают на шлюз или маршрутизатор быстрее, чем он успевает их обрабатывать, он временно ставит их в очередь в своей памяти. Если эти дейтаграммы создают небольшую пиковую нагрузку при передаче дейтаграмм, то такая буферизация решает проблему. Если же трафик продолжает поступать, то, в конечном счете, маршрутизатор или шлюз займет всю память под очередь и вынужден будет удалять новые прибывающие дейтаграммы. Тогда машина для выхода из состояния переполнения использует сообщения о подавлении источника.
Сообщение о подавлении источника требует от источника уменьшить скорость передачи дейтаграмм. Обычно переполненные маршрутизаторы посылают по одному сообщению о подавлении источника на каждую удаляемую дейтаграмму или используют более сложные технологии выхода из переполнения. Формат подавления источника представлен на рис. S.32. Помимо обычных полей ICMP «Тип», «Код» и «Контрольная сумма» и неиспользуемого 32-битового поля, сообщения о подавлении источника имеют поле, содержащее
префикс дейтаграммы. Как и в других сообщениях об ошибках ICMP поле префикса дейтаграммы содержит префикс дейтаграммы, вызвавшей этот запрос подавления источника.
Сообщения ICMP, вызывающего эффект, обратный подавлению источника, не существует. Вместо этого, компьютер, принявший сообщения о подавлении источника от некоторой машины, снижает скорость, с которой он посылает ей дейтаграммы. Это происходит до тех пор, пока к нему не перестанут приходить сообщения о подавлении источника. Затем он постепенно увеличивает скорость пока снова не получит сообщения о подавлении источника.
Перенаправление маршрута. Маршрутные таблицы у компьютеров обычно статические, так как их конфигурирует администратор сети, а у маршрутизаторов - динамические, формируемые автоматически с помощью протоколов обмена маршрутной информации. Поэтому с течением времени при изменении топологии сети маршрутные таблицы компьютеров могут устаревать.
При изменении топологии сети таблицы маршрутизации в маршрутизаторе или компьютере могут стать некорректными. Изменение может быть временным (например, нужно заменить неисправное оборудование) или постоянным (например, когда в межсетевое взаимодействие включается новая сеть). Маршрутизаторы периодически обмениваются информацией о маршрутизации, чтобы отслеживать изменения в сети и своевременно менять маршруты. Для корректировки поведения компьютеров маршрутизатор может использовать сообщение протокола ICMP, называемое «перенаправлением» (Redirect), запрашивающее изменение маршрута в таблице маршрутизации компьютера.
Механизм перенаправления протокола ICMP позволяет компьютерам содержать в конфигурационном файле только IP-адреса его локальных маршрутизаторов. С помощью сообщений о перенаправлении маршрутизаторы будут сообщать компьютеру всю необходимую ему информацию о том, какому маршрутизатору следует отправлять пакеты для той или иной сети назначения, т. е. маршрутизаторы передадут компьютеру нужную ему часть их таблиц маршрутизации.
Преимуществом схемы перенаправления ICMP является ее простота: она позволяет компьютеру знать вначале адрес только одного маршрутизатора в локальной сети. Этот начальный маршрутизатор возвращает сообщение ICMP о перенаправлении всякий раз, когда компьютер посылает дейтаграмму, для которой существует лучший маршрут. Таблица маршрутизации компьютера останется маленькой, но содержит оптимальные маршруты для всех используемых назначений.
Сообщения о перенаправлении, тем не менее, не решают проблему распространения информации о маршрутах полностью, так как они предназначены только для взаимодействия между маршрутизатором и компьютером в одной физической сети. Каждое сообщение о перенаправлении содержит 32-битовое поле «IP-адрес маршрутизатора» и поле «Префикс дейтаграммы», как это показано на рис. 5.33.
Поле «Межсетевой адрес маршрутизатора» содержит IP-адрес маршрутизатора, который должен использовать компьютер при отправлении дейтаграммы к назначению, указанному в заголовке дейтаграммы. Поле «Префикс дейтаграммы» содержит заголовок IP и следующие 8 байт дейтаграммы, которая привела к появлению этого сообщения. Поэтому компьютер, принимающий сообщение о перенаправлении ICMP, должен выделить адрес назначения дейтаграммы из префикса дейтаграммы. Поле «Код» в сообщении о перенаправлении ICMP более конкретно указывает, как интерпретировать адрес назначения, при этом значения имеют следующий смысл: 0 - перенаправление дейтаграмм для этой сети (устарело), 1 - перенаправление дейтаграмм для этого компьютера, 2 - перенаправление дейтаграмм для этого типа сервиса и сети, 3 - перенаправление дейтаграмм для этого типа сервиса и компьютера. Напомним, что каждый заголовок IP указывает тип сервиса, используемого при маршрутизации. Как правило, маршрутизаторы посылают запросы переназначения ICMP только на компьютеры, а не на другие маршрутизаторы.
Изменение маршрута является одной из наиболее интересных функций протокола ICMP - по существу, это один из механизмов автоматической оптимизации доставки пакетов и адаптации сетей TCP/IP к изменениям топологии.
Запросы «Информация о маршрутизаторах» (типы 9 и 10).
Информация о маршрутизации находится в местных конфигурационных файлах и загружается оттуда при запуске компьютера. Чтобы таблица маршрутизации не содержала устаревших данных она обновляется динамически. ICMP- протокол реализует один из способов ее обновления.
Существует 2 типа сообщений маршрутизаторов:
9 - информация о маршрутизации;
10-регистрация маршрутизатора.
Всякий раз, когда компьютер запускают, он генерирует сообщения о регистрации. В ответ маршрутизаторы, находящиеся в той же локальной сети, посылают сообщения с информацией о маршрутизации, позволяющие правильно сконфигурировать маршрутную таблицу.
Формат сообщения «Информация о маршрутизации» (тип 9) описан в RFC 1256 (рис. 5.34).
В одном ICMP-сообщении может содержаться описание нескольких адресов, количество которых указано в поле «Количество адресов». Поле «Размер адреса» задает длину адреса в 32-битовых словах. В настоящее время «Длина поля адреса» всегда равна 2.
Поле «Время существования» задает интервал времени, в течение которого информация еще не устарела. Как правило, это 1800 с.
Поле «Приоритет» указывает, какой из адресов следует использовать первым и более интенсивно. Как правило, чем больше значение поля, тем выше приоритет. Маршрутизаторы передают информационные сообщения широковещательно через случайные интервалы времени. Обычно через 450...600 с. Поле «Время существования» можно использовать для уведомления, что данный маршрутизатор выключается. При этом содержимое данного поля устанавливается равным 0.
Формат сообщения «Регистрация» (тип 10) представлен на рис. 5.35.
Запрос «Регистрация» передается 3 раза с интервалом 3 с при запуске маршрутизатора и продолжает (при необходимости) передаваться, пока маршрутизатор не получит информационного сообщения с нужной маршрутной информацией.
Обнаружение циклических или слишком длинных путей. Как было отмечено выше для защиты Интернета от перегрузок каждая дейтаграмма имеет счетчик времени жизни TTL (Time-To-Live). Маршрутизатор декрементирует счетчик времени жизни всякий раз, когда он обрабатывает дейтаграмму, и удаляет ее, когда счетчик становится нулевым.
Независимо от того, удалил ли маршрутизатор дейтаграмму из-за обнуления счетчика времени жизни или из-за превышения времени ожидания фрагментов дейтаграммы, он посылает сообщение ICMP «Лимит времени для дейтаграммы превышен» источнику дейтаграммы определенного формата (рис. 5.36).
Поле «Код» объясняет причину сообщения: 0 - превышено значение счетчика времени жизни; 1 - превышено время ожидания фрагмента при сборке.
Сообщения о других ситуациях. Когда маршрутизатор или компьютер сталкивается с проблемой, не укладывающейся в рамки описанных сообщений об ошибках ICMP (например, некорректный заголовок дейтаграммы), связанной с дейтаграммой, он посылает сообщение «Проблема с параметром пакета» первоначальному отправителю. Такую ситуацию может вызвать некорректность аргументов опции. Сообщение, формат которого показан на рис. 5.37, посылается только в том случае, если дейтаграмма должна быть удалена из- за этой ошибки. Для уточнения места ошибки в дейтаграмме отправитель использует поле «Указатель» в заголовке сообщения для идентификации октета в дейтаграмме, содержащего ошибку.
Синхронизация часов и оценка времени передачи. Стек протоколов TCP/IP включает несколько протоколов, которые могут использоваться для синхронизации часов. В сети для этого используется несколько технологий. Одна из простейших технологий реализуется сообщениями ICMP для получения значения времени от другой машины. Запрашивающая машина посылает сообщение ICMP «Запрос метки времени» другой машине, ожидая, что вторая машина вернет ей текущее значение времени. Принимающая машина возвращает «Ответ для метки времени» машине, выдавшей запрос. Рис. 5.38 иллюстрирует формат сообщений запроса и ответа временной метки. Поле «Тип» идентифицирует сообщение как запрос (13) или ответ (14); поля «Идентификатор» и «Последовательный номер» используют источник для связи между ответами и запросами. Оставшиеся поля специфицируют времена, указанные в миллисекундах после полуночи, по Гринвичу. Поле «Временная метка отправителя» заполняет
первоначальный отправитель перед передачей пакета, поле «Временная метка приема» заполняется сразу после приема запроса, а поле «Временная метка передачи» - непосредственно перед отправкой ответа.
Компьютеры используют эти три поля временных меток для определения ожидаемого времени передачи между ними и синхронизации своих часов. Так как ответ включает поле «Временная метка отправителя», компьютер может вычислить общее время, требуемое для передачи запроса к назначению, формирования ответа на него и возвращения ответа. Так как ответ содержит как время прихода запроса на удаленную машину, так и время выдачи ответа, компьютер может вычислить время передачи по сети, а на его основе - разницу между своими и удаленными часами. На практике бывает трудно точно оценить время передачи по сети, так как ГР является технологией с негарантированной доставкой, дейтаграммы могут бьггь потеряны, задержаны или доставлены не по порядку, что ограничивает полезность сообщений ICMP о временных метках.
Сообщения запроса и ответа информации. Сообщения ICMP запроса информации и ответа информации (тип 15 и 16) в настоящее время устарели и их использовать не рекомендуется. Они предназначались для обнаружения компьютерами своих IP-адресов при загрузке. Сейчас для определения адреса используют протоколы RARP и ВООТР.
Получение маски подсети. Для применения адресации подсетей компьютеру надо знать, какие биты их 32-битного IP-адреса соответствуют физической сети, а какие - адресу компьютера. Информация, требуемая для интерпретации адреса, представляет собой 32-битовую величину, называемую маской подсети. Чтобы узнать маску подсети, используемую в локальной сети, машина может послать сообщение запроса маски адреса маршрутизатору и получить ответ маски адреса. Машина, формирующая запрос, может либо послать сообщение напрямую, если она знает адрес маршрутизатора, либо послать широковещательное сообщение, если не знает его. Рис. 5.39 иллюстрирует формат сообщений маски адреса. Поле «Тип» в сообщении маски адреса указывает, является ли сообщение запросом (17) или ответом (18). Ответ содержит маску адреса подсети в поле «Маска адреса». Как правило, поля «Идентификатор» и «Последовательный номер» позволяют машине связать ответ с запросом.
Статья отвечает на вопрос насколько опасно блокировать ICMP трафик.
Многие сетевые администраторы считают, что протокол межсетевых управляющих сообщений (Internet Control Message Protocol (ICMP) представляет собой угрозу безопасности и поэтому должен всегда блокироваться на . Это правда, что протокол имеет некоторые связанные с этим проблемы безопасности, и что часть запросов должна быть заблокирована. Но это не повод блокировать весь ICMP-трафик!
ICMP-трафик имеет много важных функций; какие то из них полезны для устранения неполадок, другие же необходимы для правильной работы сети. Ниже приведены сведения о некоторых важных составляющих ICMP протокола, о которых вы должны знать. Следует подумать над тем, как оптимальным образом пропускать их через вашу сеть.
IPv4 – Echo запрос (Type8, Code0) и Echo ответ (Type0, Code0)
IPv6 – Echo запрос (Type128, Code0) and Echo ответ (Type129, Code0)
Мы все хорошо знаем, что ping, - один из первых инструментов для поиска и устранения неполадок. Да, если вы включите на своем оборудование обработку ICMP-пакетов, то это значит, что ваш хост теперь доступен для обнаружения, но разве ваш уже не слушает порт 80, и не отправляет ответы на клиентские запросы? Конечно, заблокируйте ещё и эти запросы, если вы действительно хотите, чтобы на границе сети была ваша DMZ. Но блокируя ICMP трафик внутри вашей сети, не усилите защиту, напротив получите систему с излишне сложным процессом поиска и устранения неполадок («Проверьте пожалуйста отзывается ли шлюз на сетевые запросы?», «Нет, но это меня ничуть не расстраивает, потому что мне это ничего не скажет! »).
Помните, также можете разрешить прохождение запросов в определенном направлении; например, настроить оборудование так, чтобы Echo запросы из вашей сети проходили в сеть Интернет и Echo ответы из Интернета в вашу сеть, но не наоборот.
IPv4 – (Type3, Code4)
IPv6 – (Type2, Code0)
Данные компоненты протокола ICMP очень важны, так как являются важным компонентом в Path MTU Discovery (PMTUD), который является неотъемлемой частью протокола TCP. Позволяет двум хостам корректировать значение максимального размера сегмента TCP (MSS) до значения, которое будет соответствовать наименьшему MTU по пути связей между двумя адресатами. Если на пути следования пакетов будет узел с меньшим Maximum Transmission Unit, чем у отправителя или получателя, и у них не будет средств для обнаружения данной коллизии, то трафик будет незаметно отбрасывается. И вы не будете понимать что происходит с каналом связи; другими словами, «для вас наступят веселые деньки».
Передача IPv4-пакетов с установленным битом Don’t Fragment (большинство из них!) или IPv6-пакетов (помним, что в IPv6 нет фрагментации маршрутизаторами), которые слишком велики для передачи через интерфейс, приведёт к тому, что маршрутизатор отбросит пакет и сформирует ответ источнику передачи с следующими ICMP-ошибками: Требуется Фрагментация (Fragmentation Required ), либо Пакет Слишком Большой (Packet Too Big). Если ответы с этими ошибками не смогут вернуться к отправителю, то он будет интерпретировать отсутствие подтверждающих ответов о доставке пакетов ACK (Acknowledge ) от получателя в качестве перегрузки / потери и источником для повторной передачи пакетов, которые также будут отбрасываться.
Сложно выявить причину подобной проблемы и быстро устранить, процесс обмена TCP-рукопожатиями (TCP-handshake) работает нормально, поскольку в нем задействованы небольшие пакеты, но как только происходит массовая передача данных сеанс передачи зависает, так как источник передачи не получает сообщения об ошибках.
RFC 4821 был разработан для того, чтобы помочь участникам передачи трафика в сети обойти эту проблему, используя исследование пути распространения пакетов (Path MTU Discovery (PLPMTUD) . Стандарт позволяет обнаружить максимальный объём данных (Maximum Transmission Unit (MTU) , который может быть передан протоколом за одну итерацию, путем постепенного увеличения максимального размера полезного блока данных (Maximum Segment Size (MSS) , для того чтобы найти максимально возможную величину пакета без его фрагментации на пути следования от передатчика к приемнику. Данный функционал уменьшает зависимость от своевременного получения ответов с ошибками по протоколу межсетевых управляющих сообщений (Internet Control Message Protocol (ICMP) и доступен в большинстве сетевых стеков устройств и клиентских операционных систем. К сожалению, он не так эффективен, как непосредственное получение данных о максимальном возможном размере передаваемых пакетов. Пожалуйста, позвольте этим сообщениям протокола ICMP возвращаться к источнику передачи, хорошо?
IPv4 – (Type11, Code0)
IPv6 – (Type3, Code0)
Traceroute - очень полезный инструмент для устранения неполадок в сетевых соединениях между двумя хостами, подробно описывающий каждый шаг пути.
Отправляет пакет с временем жизни пакета данных для протокола IP (Time to live (TTL) равным 1 , чтобы первый маршрутизатор отправил сообщение с ошибкой (включая собственный IP-адрес) о превышении времени жизни пакета. Затем отправляет пакет с TTL 2 и так далее. Данная процедура необходима для того, чтобы обнаружить каждый узел на пути следования пакетов.
Router Solicitation (RS) (Type133, Code0)
Router Advertisement (RA) (Type134, Code0)
Neighbour Solicitation (NS) (Type135, Code0)
Neighbour Advertisement (NA) (Type136, Code0)
Redirect (Type137, Code0)
В то время как IPv4 использовал протокол разрешения адресов (ARP) для сопоставления 2 и 3 уровней сетевой модели OSI, IPv6 использует другой подход в виде протокола обнаружения соседей (NDP). NDP предоставляет множество функций, включая обнаружение маршрутизатора, обнаружение префикса, разрешение адреса и многое другое. В дополнение к NDP, Автоконфигурация (StateLess Address AutoConfiguration (SLAAC) позволяет динамически настраивать хост в сети, аналогично концепции протокола динамической настройки узла (Dynamic Host Configuration Protocol (DHCP) (хотя DHCPv6 предназначается для более тонкого управления).
Эти пять типов ICMP сообщений не должны блокироваться внутри вашей сети (не учитываем внешний периметр), чтобы протокол передачи данных IP функционировал правильно.
Протокол межсетевых управляющих сообщений (ICMP) содержит много сообщений, которые идентифицируются полем «тип».
Тип | Наименование | Спецификация |
---|---|---|
Echo Reply | ||
1 | Unassigned | |
2 | Unassigned | |
3 | Destination Unreachable | |
4 | Source Quench (Deprecated) | |
5 | Redirect | |
6 | Alternate Host Address (Deprecated) | |
7 | Unassigned | |
8 | Echo | |
9 | Router Advertisement | |
10 | Router Solicitation | |
11 | Time Exceeded | |
12 | Parameter Problem | |
13 | Timestamp | |
14 | Timestamp Reply | |
15 | Information Request (Deprecated) | |
16 | Information Reply (Deprecated) | |
17 | Address Mask Request (Deprecated) | |
18 | Address Mask Reply (Deprecated) | |
19 | Reserved (for Security) | Solo |
20-29 | Reserved (for Robustness Experiment) | ZSu |
30 | Traceroute (Deprecated) | |
31 | Datagram Conversion Error (Deprecated) | |
32 | Mobile Host Redirect (Deprecated) | David_Johnson |
33 | IPv6 Where-Are-You (Deprecated) | |
34 | IPv6 I-Am-Here (Deprecated) | |
35 | Mobile Registration Request (Deprecated) | |
36 | Mobile Registration Reply (Deprecated) | |
37 | Domain Name Request (Deprecated) | |
38 | Domain Name Reply (Deprecated) | |
39 | SKIP (Deprecated) | |
40 | Photuris | |
41 | ICMP messages utilized by experimental mobility protocols such as Seamoby | |
42 | Extended Echo Request | |
43 | Extended Echo Reply | |
44-252 | Unassigned | |
253 | RFC3692-style Experiment 1 | |
254 | RFC3692-style Experiment 2 | |
255 | Reserved |
Хотя ICMP-сообщения, подобные тем, которые описаны в статье, могут быть очень полезными, помните, что генерация всех этих сообщений занимает процессорное время на ваших маршрутизаторах и генерирует трафик. Вы действительно ожидаете, что вы получите 1000 пингов в секунду через ваш брандмауэр в обычной ситуации? Будет ли это считаться нормальным трафиком? Вероятно, нет. Ограничивайте пропускную способность сети для этих типов ICMP трафика, как вы считаете нужным; этот шаг может помочь вам в защите вашей сети.