Открыть сервис

Destination Unreachable

Destination Unreachable — это служебное сообщение (ICMP-пакет) в сетях, работающих по протоколу IPv4, которое отправляется отправителю пакета, когда маршрутизатор или хост назначения не может доставить пакет по указанному адресу. Сообщение относится к типу 3 протокола ICMP (Internet Control Message Protocol) и используется для информирования источника о недоступности конечного узла, сети, порта или о необходимости фрагментации. В протоколе IPv6 аналогичная функция выполняется сообщением типа 1 ICMPv6.

История и стандартизация

Протокол ICMP был впервые определён в RFC 792 (1981 год) как неотъемлемая часть стека протоколов TCP/IP. Сообщение Destination Unreachable (тип 3) было включено в первоначальную спецификацию. В последующих RFC, таких как RFC 1122 (1989 год) и RFC 1812 (1995 год), были уточнены коды ошибок и правила обработки этих сообщений. В RFC 4443 (2006 год) была определена аналогичная функциональность для IPv6 — сообщение ICMPv6 типа 1, также называемое Destination Unreachable.

Структура сообщения

Сообщение Destination Unreachable имеет фиксированную структуру, общую для всех ICMP-пакетов:

Коды ошибок (IPv4)

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

КодЗначениеОписание
0Network unreachableСеть назначения недоступна (обычно из-за отсутствия маршрута в таблице маршрутизации).
1Host unreachableХост назначения недоступен (например, из-за отказа ARP-запроса или отключения узла).
2Protocol unreachableПротокол, указанный в заголовке IP-пакета, не поддерживается на узле назначения.
3Port unreachableПорт назначения (UDP/TCP) закрыт или не прослушивается на узле.
4Fragmentation needed and DF setПакет требует фрагментации, но флаг Don't Fragment (DF) установлен в заголовке IP.
5Source route failedИсточник указал маршрут (опция Source Route), который не может быть выполнен.
6Destination network unknownСеть назначения неизвестна (в отличие от кода 0, маршрутизатор не имеет информации о сети).
7Destination host unknownХост назначения неизвестен (например, не может быть разрешён по MAC-адресу).
8Source host isolatedИсходный хост изолирован (устаревший код, редко используется).
9Communication with destination network administratively prohibitedСеть назначения заблокирована административными правилами (например, ACL).
10Communication with destination host administratively prohibitedХост назначения заблокирован административно.
11Destination network unreachable for type of serviceСеть недоступна для запрошенного типа обслуживания (TOS).
12Destination host unreachable for type of serviceХост недоступен для запрошенного TOS.
13Communication administratively prohibited (RFC 1812)Административный запрет на связь (обобщённый код).
14Host precedence violationНарушение приоритета хоста (используется в военных сетях).
15Precedence cutoff in effectДействует ограничение приоритета (пакет отброшен из-за низкого приоритета).

Применение и значение

Диагностика сетевых проблем

Сообщения Destination Unreachable являются ключевым инструментом для выявления неисправностей в сети. Утилиты, такие как ping и traceroute, интерпретируют эти сообщения для определения точки отказа. Например, если ping получает ответ с кодом 1 (Host unreachable), это указывает, что маршрутизатор, ближайший к цели, не может установить связь с хостом.

Обнаружение закрытых портов

Код 3 (Port unreachable) используется в сканировании портов (например, с помощью Nmap) для определения, какие порты на целевом узле закрыты. Если на UDP-порт отправляется пакет, а в ответ приходит ICMP-сообщение с кодом 3, это означает, что порт не прослушивается.

Контроль фрагментации

Код 4 (Fragmentation needed and DF set) играет важную роль в механизме Path MTU Discovery (PMTUD). Когда маршрутизатор не может передать пакет без фрагментации, а флаг DF установлен, он отправляет это сообщение отправителю, указывая максимальный размер MTU (Maximum Transmission Unit) на данном участке пути. Отправитель уменьшает размер пакета, чтобы избежать фрагментации.

Ограничения и критика

Примеры использования

Пример 1: Недоступность порта

Пользователь пытается подключиться к веб-серверу на порту 80, но служба не запущена. Хост назначения отправляет ICMP-пакет с типом 3 и кодом 3 (Port unreachable). Клиент получает это сообщение и может выдать ошибку «Connection refused».

Пример 2: Проблема с маршрутизацией

Маршрутизатор получает пакет для сети 192.168.5.0/24, но в его таблице маршрутизации нет соответствующей записи. Он отправляет отправителю ICMP-пакет с типом 3 и кодом 0 (Network unreachable). Отправитель может использовать эту информацию для обновления своей таблицы маршрутизации или уведомления пользователя.

Интересные факты

Источники

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →