Linux ping без фрагментации

Linux ping без фрагментации

ping [ -LRUbdfnqrvVaAB ] [ -c количество ] [ -i интервал ] [ -l преднагрузка ] [ -p шаблон ] [ -s размер-пакета ] [ -t ttl ] [ -w ограничение-на-время-работы ] [ -F идентификатор-потока ] [ -I адрес ] [ -M указание ] [ -Q тип-обслуживания ] [ -S буфер-отправки ] [ -T параметр-временной-метки ] [ -W время-ожидания-ответа ] [ переход . ] назначение

ОПИСАНИЕ

ping использует обязательные датаграммы ECHO_REQUEST протокола ICMP для получения по этому протоколу ответов ECHO_RESPONSE от хоста или шлюза.

Датаграммы ECHO_REQUEST состоят из заголовков IP и ICMP, структуры данных struct timeval и произвольного числа несмысловых байтов для заполнения пакета.

ОПЦИИ

-a Сопровождать работу программы звуком. -A Адаптировать интервал между отправками пакетов к длительности их доставки и возврата. Таким образом, если только не выполняется преднагрузка, в любой момент времени может быть не больше одного пакета, на который не получен ответ. Минимальный интервал для не администратора — 200 мс. В сетях с низким rtt данный режим эквивалентен лавинообразному. -b Разрешить использование широковещательного адреса в качестве целевого. -B Запретить изменение исходного адреса для пакетов во время работы программы. Исходный адрес определяется в начале работы ping . -c количество Остановить работу после передачи заданного количества пакетов ECHO_REQUEST. Если задано ограничение-на-время-работы , программа будет ждать указанное количество ответных пакетов ECHO_REPLY в указанный период. -d Устанавливает параметр SO_DEBUG на используемый сокет. Примечание: этот параметр не используется ядром Linux. -F идентификатор-потока Устанавливать идентификатор-потока в отправляемых пакетах (только для ping6 ). Если указан нуль, идентификатор-потока будет генерироваться случайно ядром. -f Лавинообразный режим. Для каждого пакета ECHO_REQUEST выводится точка (`.’), для каждого ответного пакета ECHO_REPLY — забой (удаление последней точки). Это позволяет наглядно представлять число потерянных пакетов. Если интервал между отправками не задан, последние производятся с наибольшей скоростью (по мере получения ответов) или со скоростью 100 раз в секунду, в зависимости от того, в каком случае получается большая скорость. Задавать нулевой интервал между отправками может только суперпользователь. -i интервал Интервал в секундах между отправкой пакетов. По умолчанию между отправкой пакетов делается пауза в 1 секунду, либо, в случае лавинообразного режима, отправка производится без пауз. Задавать значения меньше 0.2 может только суперпользователь. -I адрес Установить адрес источника в указанный. В качестве аргумента может выступать числовой IP-адрес или имя устройства. Этот параметр обязателен при отправке запросов на локально соединённый адрес IPv6. -l преднагрузка Послать с максимальной скоростью указанное количество пакетов, не дожидаясь ответов, и затем перейти в обычный режим работы. Значения больше 3 может указывать только суперпользователь. -L Подавлять циклические петли для широковещательных пакетов. Этот ключ применяется только если в качестве целевого адреса указан широковещательный. -n Только цифровой вывод. Не расшифровывать имена (символьный вид) адресов. -p шаблон Можно указать до 16 несмысловых байтов для заполнения пакетов. Это полезно при диагностике проблем в сети. Например, -p ff заполнит все пакеты единицами символами. -Q тип-обслуживания Разряды байта QoS (Quality of Service — качество обслуживания) для датаграмм ICMP. Тип-обслуживания может быть либо десятичным либо шестнадцатеричным числом. Обычно (согласно RFC 1349) это значение интерпретируется так: младший (нулевой) разряд зарезервирован (сейчас используется для управления событиями при переполнении), разряды 1-4 используются для указания собственно типа обслуживания, и разряды 5-7 для приоритета (IP-предпочтения). Возможные типы обслуживания: минимизация стоимости — 0x02, максимизация надёжности — 0x04, максимизация пропускной способности — 0x08 минимизация задержек — 0x10. Одновременно можно указывать только один из четырёх перечисленных разрядов. Возможный диапазон значения приоритета — от приоритетного (0x20) до управляемого сетью (0xe0). Для указания высокого приоритета необходимы права суперпользователем (точнее, должно быть доступна возможность CAP_NET_ADMIN). Разряд 0x01 можно устанавливать только если в ядре включен ECN.

Читайте также:  Atheros ar9271 drivers linux

В RFC 2474 этот байт переопределён как DS (Differentiated Services — дифференцированные службы): разряды 0-1 отведены для отдельных данных (тут будет использоваться ECN) разряды 2-7 для DSCP (Differentiated Services Codepoint — точка кода дифференцированных служб) -q Выводить только начальные и итоговые данные (не выводить информацию об отдельных запросах). -R Записывать маршрут. Для пакетов ECHO_REQUEST будет включен параметр RECORD_ROUTE и на экран будет выведен буфер маршрута для возвращённых пакетов. Заметим, что в заголовок IP помещается не больше 9 таких маршрутов. Многие узлы игнорируют или не отбрасывают этот параметр. -r Не использовать обычные таблицы маршрутизации и передавать данные прямо на компьютер, подключенный к интерфейсу. Если компьютер не находится в сети с прямым подключением, то возвращается сообщение об ошибке. Этот параметр может использоваться вместе с -I для проверки локальной системы через интерфейс, по которому не идет маршрутизация (например после того, как интерфейс был сброшен routed(8)). -s размер-пакета Размер пакетов для пересылки. По умолчанию — 56, что соответствует размеру 64 байта после добавления 8 байтов заголовка ICMP. -S буфер-отправки Размер буфера отправки соединения. По умолчанию буферизируется не больше одного пакета. -t ttl Время актуальности пакета IP (ttl — Time to Live). -T параметр-временной-метки Параметры временной метки IP. Возможные значения параметра-временной-метки : tsonly (только временная метка), tsandaddr (временная метка и адреса) и tsprespec хост1 [хост2 [хост3 [хост4]]] (отмечать переходы). -M указание Стратегия обнаружения маршрута MTU. Возможные значения: do (запретить фрагментацию, даже локальную), want (выполнять обнаружение PMTU, фрагментировать локально если размер пакета слишком большой) и dont (не устанавливать флаг DF). -U Выводить полное время прохода (старое поведение). По умолчанию выводится сетевое время прохода, которое может отличаться от реального, например из-за ошибок DNS. -v Выводить подробную информацию. -V Вывести информацию о версии и закончить работу. -w ограничение-на-время-работы Время, по истечении которого ping завершит свою работу независимо от количества посланных и принятых пакетов. При указании этого параметра время ожидания для одного пакета игнорируется и работа может быть завершена ранее указанного срока только в случае получения информации об ошибке (т.е. уведомления о том, что ответных пакетов точно не будет). -W время-ожидания-ответа Время ожидания (в секундах) ответного пакета. Принимается во внимание только если не было принято ни одного ответа. В противном случае программа ожидает получения двух ответов.

Читайте также:  Linux wake on lan утилита

При использовании команды ping для локализации неполадки сначала запустите её с адресом локального хоста для проверки работоспособности локального сетевого интерфейса. Затем проверяйте связь посредством ping со всё более удалёнными компьютерами и шлюзами. Время прохождения сигналов в обе стороны и потери пакетов подсчитываются и анализируются позднее. Если принимаются дублированные пакеты, то они не включаются в статистику утерянных пакетов, хотя время прохода таких пакетов включается в статистику минимального/среднего/максимального времени. После отправки и получения указанного количества пакетов или при прерывании работы программы сигналом SIGINT выводится краткий итог работы. Более краткую статистику можно получить без прерывания процесса с помощью сигнала SIGQUIT.

Если ответные пакеты не будут получены, то программа завершит работу с кодом выхода 1. Если указаны количество пакетов и ограничение-на-время-работы , но по истечении этого времени принято менее запрошенного числа пакетов, то программа также завершит работу с кодом выхода 1. При других ошибках выход будет произведен с кодом 2. Иначе программа завершает работу с кодом 0. Эти значения позволяют использовать коды выхода для определения доступности серверов и компьютеров в сети.

Эта программа предназначена для тестирования сетей, управления сетями и измерения производительности. Из-за нагрузок, которые она создаёт в сети, неразумно использовать ping в рабочее время или в автоматических сценариях.

ОПИСАНИЕ ПАКЕТОВ ICMP

Заголовок IP без параметров имеет размер 20 байтов. Пакет ICMP ECHO_REQUEST содержит дополнительные 8 байтов, предназначенные для заголовка ICMP, и произвольное количество заполняющих байтов (для обеспечения требуемого размера пакета), определяемое аргументом размер-пакета данных (по умолчанию 56). Поэтому количество полученных данных из пакета IP типа ICMP ECHO_REPLY всегда будет на 8 байтов (заголовок ICMP) больше, чем задаваемое.

Если заданный размер данных не меньше размера struct timeval, то программа включает в них временную метку, используемую для измерения времени прохода сигнала в обе стороны. В противном случае такое время не будет измеряться.

ПОВТОРЯЮЩИЕСЯ И ПОВРЕЖДЁННЫЕ ПАКЕТЫ

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

Повреждённые пакеты являются прямым свидетельством неполадок в аппаратной части на одном из участков сети, через который проходили пакеты.

ТЕСТИРОВАНИЕ НА РАЗЛИЧНЫХ ДАННЫХ

(Меж)сетевая часть механизма передачи данных не должна обрабатывать пакеты по-разному, в зависимости от содержащихся в них данных. К сожалению такие проблемы часто встречаются в сетях и остаются невыявленными достаточно долго. Во многих случаях оказывается, что некорректно обрабатывается некоторый вырожденный шаблон, например, состоящий из одних нулей или единиц, либо близкий к нему. Простой проверки по вырожденным шаблонам данных недостаточно, т.к речь идёт о данных на уровне канала данных, которые могут соотноситься с указываемыми вами данными самым сложным образом.

Читайте также:  Ping no terminal linux

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

ВРЕМЯ АКТУАЛЬНОСТИ (TTL)

Значение TTL для пакетов IP задаёт максимальное количество IP-маршрутизаторов, через которое пакет ещё будет доставляться, а не считаться утерянным. Сейчас каждый маршрутизатор в Интернете уменьшает поле TTL при обработке пакета на единицу.

Согласно спецификации TCP/IP значение поля TTL для пакетов TCP должно быть равно 60, но многие системы используют меньшие значения (4.3 BSD использует 30, 4.2 использует 15).

Максимальное значение данного поля равно 255, и многие Unix-системы устанавливают поле TTL для пакетов ICMP ECHO_REQUEST в 255. Поэтому иногда получается, что вы можете проверить связь командой `ping’ до некоторых компьютеров, но не можете связаться с ними программами telnet (1) или ftp (1).

В обычном режиме ping выводит значения времени актуальности принятых (возвращённых) пакетов. При приёме пакета удалённой системой она может выполнить одно из трёх возможных действий с полем TTL в ответ: * Не изменять его; это делали системы Berkeley Unix до выпуска BSD 4.3 Tahoe. TTL в принятом пакете будет 255 минус количество пройденных маршрутизаторов на пути в обе стороны. * Установить его в 255: это то, что системы Berkeley Unix делают сейчас. В этом случае значение TTL в принятом пакете будет 255 минус количество пройденных маршрутизаторов от удалённой системы до исходной. * Установить его в какое-либо другое значение. Некоторые машины устанавливают его равным используемому для TCP пакетов, например, либо 30 либо 60. Другие системы могут использовать вообще непредсказуемые значения.

ИЗВЕСТНЫЕ ОШИБКИ

* Многие узлы и шлюзы игнорируют параметр RECORD_ROUTE. * Максимальная длина заголовка IP слишком мала для полноценной работы таких параметров, как RECORD_ROUTE. * Использовать лавинообразный режим вообще не рекомендуется, а в случаях когда целью является широковещательный адрес, лавинообразный режим следует применять в условиях тщательного контроля.

СМ. ТАКЖЕ


ИСТОРИЯ

Настоящим документом описывается адаптированная для Linux версия программы.

БЕЗОПАСНОСТЬ


РАСПРОСТРАНЕНИЕ

ping является частью пакета iputils , который доступен по адресу ftp://ftp.inr.ac.ru/ip-routing/iputils-current.tar.gz.

Источник

Оцените статью
Adblock
detector