ping
выведет статистику работы: сколько пакетов было отправлено, сколько получено, процент потерянных пакетов, общее время работы в миллисекундах. Кроме того, выводится минимальное, среднее и максимальное время прохождения пакетов.
Основные опции команды ping
:
-c count
ограничивает число посылаемых пакетов значением count;
-n
отменяет преобразование IP-адреса отвечающего узла в его DNS-имя. Такой режим может ускорить работу программы и исключить проблемы с настройками DNS при диагностике сети;
-i interval
задаёт время ожидания перед посылкой следующего пакета;
-l size
задаёт размер пакета.
Эта команда может служить в том числе для тестирования сети InfiniBand, если на интерфейсах InfiniBand поднят протокол IPoIB (IP over InfiniBand). Если вы поняли, что удалённый узел или сеть недоступны, можно выяснить, где происходит обрыв связи. Для этого используется команда traceroute
или её более современный аналог tracepath
. В качестве аргумента команда принимает адрес узла.
Она посылает пакеты ping
на этот узел со значением ttl, равным 1, затем 2 и т. д. В выдаче программы видно, какие узлы по пути следования пакета обработали факт обнуления ttl и сообщили об этом. Таким образом, мы можем отследить путь пакета.
Пример работы команды traceroute
:
Видно, что 10-й по счёту узел не ответил; это значит, что он просто игнорирует пакет, не уведомляя об этом отсылающего.
Полезные опции команды traceroute
:
-n
не преобразовывать DNS-имена узлов,
-f N
начать с TTL с указанным номером,
-m N
ограничить TTL указанным числом (по умолчанию 30),
-w N
время ожидания отклика (по умолчанию 5 сек.).
Команда route
показывает текущую таблицу маршрутизации, т. е. правила, по которым узел определяет, куда послать пакет. Типичный вывод команды:
Значения столбцов:
• Destination
– адрес назначения пакета;
• Gateway
– адрес хоста(роутера), куда будет направлен пакет;
• Genmask
– маска адреса(destination);
• Flags, Metric, Ref, Use
– служебная информация;
• Iface
– имя интерфейса, куда будет передан пакет.
Если необходимо передать пакет по сети на адрес x.y.z.q, ядро последовательно проверит этот адрес по таблице: на адрес и на поле destination
будет наложена маска (genmask
), и если результаты совпадут, то пакет будет пересылаться на роутер (gateway
) через сетевой интерфейс (interface
). Наложение маски производится битовой операцией AND, т. е. все биты, установленные в маске в 0, будут в результате сброшены в 0, а биты, установленные в маске в 1, будут в результате такими же, как и у исходного адреса.
Отсюда, в частности, следует, что маска 0.0.0.0
задаёт маршрут, который сработает всегда, так как результат её применения всегда будет 0.0.0.0
. Такой маршрут часто называют default
(по умолчанию). В нашем примере сеть 9.10.11.*
доступна через eth1
, сеть 10.*.*.*
– через интерфейс eth0
(это внутренняя сеть), а все остальные пакеты направляются на роутер 9.10.11.1
, который доступен через интерфейс eth1
.
Командой