Главная » 2017 » Ноябрь » 17 » man 7 icmp
00:06
man 7 icmp

SEO sprint - Всё для максимальной раскрутки!





ИМЯ


icmp - модуль ядра Linux, реализующий протокол IPv4 ICMP



ОПИСАНИЕ


Этот модуль ядра реализует Internet Control Message Protocol, описанный в RFC 792.
Он используется для извещения об ошибках и для диагностики. Пользователь не
взаимодействует напрямую с этим модулем; вместо этого он работает с другими
протоколами в ядре, а они при помощи протокола ICMP передают ошибки на уровень
приложения. Кроме того, этот модуль отвечает на ICMP-запросы.

Пользовательский протокол может получать ICMP-пакеты для всех локальных сокетов,
если откроет неструктурированный (raw) сокет, используя протокол IPPROTO_ICMP.
Более подробную информацию смотрите в raw(7). Типы ICMP-пакетов, передаваемые в
сокет, могут быть отфильтрованы с помощью параметра сокета ICMP_FILTER. Пакеты
ICMP всегда обрабатываются ядром, даже когда передаются в пользовательский сокет.

Linux ограничивает для каждого получателя поток ICMP-пакетов с сообщениями об
ошибках. Количество ICMP_REDIRECT и ICMP_DEST_UNREACH также ограничивается для
каждого отправителя приходящих пакетов.

Интерфейсы в /proc
Для настройки некоторых глобальных параметров IP ICMP поддерживает набор
интерфейсов в /proc. Эти параметры доступны на чтение и запись через файлы в
каталоге /proc/sys/net/ipv4/. Большинство параметров служит для управления
ограничением потока пакетов ICMP определённых типов. В Linux 2.2 для ограничения
ICMP используется фильтр «протекающего ведра» (token bucket). Значение — задержка
в jiffy, отведённая на очистку фильтра после всплеска. Величина jiffy зависит от
архитектуры машины, обычно, это 10мс на i386 и около 1мс на alpha и ia64.

icmp_destunreach_rate (в Linux с 2.2 по 2.4.9)
Максимальная частота посылки ICMP-пакетов с типом Destination Unreachable
по каждому конкретному маршруту или получателю. Ограничение не влияет на
посылку пакетов ICMP_FRAG_NEEDED, необходимых для определения MTU для
маршрута.

icmp_echo_ignore_all (начиная с Linux 2.2)
Если значение больше нуля, то Linux будет игнорировать все запросы
ICMP_ECHO.

icmp_echo_ignore_broadcasts (начиная с Linux 2.2)
Если значение больше нуля, то Linux будет игнорировать все пакеты
ICMP_ECHO, посланные по широковещательным адресам.

icmp_echoreply_rate (в Linux с 2.2 по 2.4.9)
Максимальная частота посылки пакетов ICMP_ECHOREPLY в ответ на запросы
ICMP_ECHOREQUEST.

icmp_errors_use_inbound_ifaddr (логический; по умолчанию: выключено; начиная с
Linux 2.6.12)
Если выключено, то сообщения ICMP об ошибках посылаются с первичным адресом
существующего интерфейса.

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

icmp_paramprob_rate (в Linux с 2.2 по 2.4.9)
Максимальная частота посылки пакетов ICMP_PARAMETERPROB. Эти пакеты
посылаются, когда приходит пакет с ошибочным заголовком IP.

icmp_ratelimit (целое; по умолчанию: 1000; начиная с Linux 2.4.10)
Ограничивает скорость отправки пакетов ICMP для определённого получателя,
чьи типы совпадают с icmp_ratemask (смотрите далее). Значение 0 отключает
ограничение, иначе указывается минимальная задержка между ответами в
миллисекундах.

icmp_ratemask (целое; по умолчанию: смотрите далее; начиная с Linux 2.4.10)
Маска типов ICMP, для которых накладывается ограничение.

Расстановка битов: IHGFEDCBA9876543210
Маска по умолчанию: 0000001100000011000 (0x1818)

Описание битов (смотрите файл include/linux/icmp.h из исходного кода ядра
Linux):

0 Ответное эхо
3 Назначение недостижимо *
4 Погасить источник *
5 Перенаправление
8 Запрос эхо
B Время вышло *
C Проблема с параметром *
D Запрос метки времени
E Ответ меткой времени
F Запрос информации
G Ответ информацией
H Запрос маски адреса
I Ответ маской адреса

Для битов, помеченных звёздочкой, ограничение включено по умолчанию (смотрите
маску по умолчанию, приведённую ранее).

icmp_timeexceed_rate (в Linux с 2.2 по 2.4.9)
Максимальная частота посылки пакетов ICMP_TIME_EXCEEDED. Эти пакеты
посылаются для предотвращения зацикливания, когда пакет прошёл слишком
большое количество транзитных участков (hops).

ping_group_range (два целых числа; значение по умолчанию смотрите далее; начиная с
Linux 2.6.39)
Диапазон ID групп (минимальный и максимальный ID группы, включительно),
которым разрешено создавать сокеты ICMP Echo. По умолчанию «1 0», что
означает, что всем группам запрещено создавать сокеты ICMP Echo.



ВЕРСИИ


Поддержка запроса ICMP_ADDRESS была удалена из 2.2.

Поддержка ICMP_SOURCE_QUENCH была удалена из Linux 2.2.



ЗАМЕЧАНИЯ


Так как многие реализации не поддерживают неструктурированные сокеты IPPROTO_ICMP,

В Linux-реализации ICMP для посылки ICMP-пакетов используются неструктурированные
сокеты. Такие сокеты могут показываться программой netstat(8), при этом их inode
будет равен 0.



СМОТРИТЕ ТАКЖЕ


ip(7), rdisc(8)

В RFC 792 приведено описание протокола ICMP.



Категория: (7) Различные описания, соглашения и прочее | Просмотров: 478 | Добавил: Администратор | Рейтинг: 0.0/0
Всего комментариев: 0
avatar