Чтение онлайн

на главную

Жанры

Linux: Полное руководство

Аллен Питер В.

Шрифт:

С помощью протокола ICMP можно определить не только тип неисправности, но и максимально уточнить ее причину. Например, тип сообщения 3 («Адресат недостижим») свидетельствует о том, что посланный нам пакет не может «добраться» до адресата. Кроме типа сообщения, возвращается его код, позволяющий детализировать неисправность. Например, код 0 означает, что сеть недоступна, 1 — узел недоступен. 2 — протокол недоступен и т.д. В таблице 27.8 ниже перечислены типы и коды сообщений ICMP.

Обязательно ли посылать сообщение об ошибке, получив некорректный пакет? Нет, из главы 19 вы узнали, что такие пакеты (например, отправленные на запрещенный для доступа извне порт) можно просто игнорировать. Первый подход «вежливее», второй безопаснее. Представьте, что злоумышленник отправляет с 1000 машин 1000 пакетов

с указанием неверного порта на вашу систему. Тогда ваша система только тем и будет заниматься, что отправлять сообщения об ошибках. Это называется атакой на отказ. Конечно, современные брандмауэры позволяют избавиться от этого неприятного явления, но не у всех они установлены и настроены должным образом.

27.2.2. Структура ICMP-пакета

Для лучшей диагностики ошибки вместе с ICMP-пакетом передается заголовок исходного пакета, вызвавшего ошибку. Также передается специальный указатель на позицию заголовка, позволяющий определить, что именно вызвала ошибку. В случае с неправильным номером порта указатель будет установлен на поле, содержащее номер порта. Благодаря этому система-источник может вычислить процесс и сокет, вызвавшие ошибку.

Структуры различных ICMP-пакетов отличаются друг от друга в зависимости от типа пакета. Например, пакет, сообщающий о недоступности адресата (Destination Unreachable Message), выглядит так:

Сообщение Destination Unreachable Message Таблица 27.6

Тип Код Контрольная сумма
Не используется
Интернет-заголовок плюс первые 64 бита оригинального сообщения (пакета)

Что такое тип и код, вы уже знаете, с контрольной суммой тоже все ясно. А последнее поле необходимо, поскольку оно поможет идентифицировать процесс, вызвавший ошибку.

Точно такую же структуру имеют сообщение об истечении лимита времени (Time Exceeded Message) и сообщение об обрыве источника Source Quench Message (тип 4).

А вот сообщение о неверном параметре (например, указан неверный номер порта) выглядит уже по-другому (таблица 27.7).

Сообщение Parameter Problem Message Таблица 27.7

Тип Код Контрольная сумма
Указатель Не используется
Интернет-заголовок плюс первые 64 бита оригинального сообщения (пакета)

Поле Указатель в сообщении о неверном параметре (Parameter Problem Message) указывает на то место в заголовке, которое вызвало ошибку.

Сообщение о переадресации (Redirect Message) имеет следующую структуру:

Сообщение Redirect Message Таблица 27.8

Тип Код Контрольная сумма
Адрес шлюза
Интернет-заголовок плюс первые 64 бита оригинального сообщений (пакета)

Чтобы понять, что такое сообщение о переадресации, рассмотрим следующий пример. Система Б определяет, что посланный системой А пакет некорректен. Системе Б нужно отправить системе А сообщение об ошибке. Система Б определяет, что единственным маршрутом назад для данного пакета является маршрут через систему А. Тогда система Б посылает системе А два пакета: первый с сообщением о некорректном пакете, а второе — сообщение переадресации, докладывающее, что у системы А проблемы с таблицей маршрутизации, которая, возможно, содержит ошибку.

Сообщения типа эхо-запрос (ping, тип 8) и эхо-ответ (pong, тип 0) имеют следующую структуру:

Сообщения Echo или Echo Reply Message Таблица 27.9

Тип Код Контрольная сумма
Идентификатор Последовательность
Данные

Поля

Идентификатор и Последовательность могут использоваться источником эха для передачи вспомогательной информации. Например, идентификатор может использоваться как порт при использовании протоколов TCP/UDP для идентификации службы, а номер последовательности может увеличивается на единицу при отправке каждого запроса (то есть выступать в роли счетчика).

27.2.3. Тип и код ICMP-сообщения

В следующей таблице перечислены все типы ICMP-сообшений. Об их структуре вы можете прочитать в документе RFC 792. Типы 17 и 18 описаны в документе RFC 950.

Типы IСМР-сообщений Таблица 27.8

Поделиться:
Популярные книги

Старатель

Лей Влад
1. Старатели
Фантастика:
боевая фантастика
космическая фантастика
5.00
рейтинг книги
Старатель

Искушение Инферно

Вяч Павел
4. Игра топа
Фантастика:
фэнтези
боевая фантастика
рпг
6.46
рейтинг книги
Искушение Инферно

Адаптация

Кораблев Родион
1. Другая сторона
Фантастика:
фэнтези
6.33
рейтинг книги
Адаптация

Расческа для лысого

Зайцева Мария
Любовные романы:
современные любовные романы
эро литература
8.52
рейтинг книги
Расческа для лысого

Аномалия

Юнина Наталья
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Аномалия

Диверсант

Вайс Александр
2. Фронтир
Фантастика:
боевая фантастика
космическая фантастика
5.00
рейтинг книги
Диверсант

Внешники такие разные

Кожевников Павел
Вселенная S-T-I-K-S
Фантастика:
боевая фантастика
попаданцы
5.00
рейтинг книги
Внешники такие разные

Назад в СССР: 1984

Гаусс Максим
1. Спасти ЧАЭС
Фантастика:
попаданцы
альтернативная история
4.80
рейтинг книги
Назад в СССР: 1984

Дурашка в столичной академии

Свободина Виктория
Фантастика:
фэнтези
7.80
рейтинг книги
Дурашка в столичной академии

Черкес. Дебют двойного агента в Стамбуле

Greko
1. Черкес
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Черкес. Дебют двойного агента в Стамбуле

Чайлдфри

Тоцка Тала
Любовные романы:
современные любовные романы
6.51
рейтинг книги
Чайлдфри

Набирая силу

Каменистый Артем
2. Альфа-ноль
Фантастика:
фэнтези
боевая фантастика
рпг
6.29
рейтинг книги
Набирая силу

Измена. Не прощу

Леманн Анастасия
1. Измены
Любовные романы:
современные любовные романы
4.00
рейтинг книги
Измена. Не прощу

Ищу жену для своего мужа

Кат Зозо
Любовные романы:
любовно-фантастические романы
6.17
рейтинг книги
Ищу жену для своего мужа
Тип Код Название сообщения Описание
0 Echo Reply Message Эхо-ответ
0 Код всегда равен 0
3 Destination Unreachable Message Адресат недоступен
0 Сеть недоступна
1 Узел недоступен — что-то случилось с компьютером возможно, он просто выключен
2 Протокол недоступен — запрашиваемый протокол ни поддерживается
3 Порт недоступен — на машине ни одна служба не связана с указанным номером порта
4 Длина пакета слишком велика, а в его заголовке установлен флаг DF (Don't Fragment), то есть не фрагментировать. Для передачи большого пакета его нужно фрагментировать (разбить на части), а так как установлен флаг DF, фрагментация, а следовательно, и передача пакета невозможна
5 Ошибочный маршрут источника
4 Source Quench Message Обрыв источника
0 Код всегда равен 0
5 Redirect Message Переадресация
0 Переадресация пакетов для сети
1 Переадресация пакетов для узла
2 Переадресация пакетов для сети и типа обслуживания (TOS, Type Of Service)
3 Переадресация пакетов для узла и типа обслуживания (TOS, Type Of Service)
8 Echo Message Эхо-запрос
0 Код всегда равен 0
11 Time Exceeded Message Превышен лимит времени
0 При передаче превышено «время жизни» (TTL, Time То Live)
1 Превышено время реассемблирования (сборки) фрагментов
12 Parameter Problem Message Ошибочный параметр
0 Указатель на ошибочный параметр (табл. 27.7)