Traceroute, как использовать в Linux

Команда traceroute используется в Linux для отображения пути прохождения пакета информации от его источника к месту назначения. Одним из способов использования traceroute является обнаружение случаев потери данных по всей сети, что может указывать на то, что узел не работает.

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

Синтаксис traceroute и другая информация, описанная ниже, применима только к машинам Linux.

Как работает Traceroute

Оценка конкретного маршрута, по которому следует сетевой трафик (или нахождение неверного шлюза, отбрасывающего ваши пакеты), представляет несколько проблем с устранением неполадок. Traceroute использует поле протокола IP, времени жизни для запроса ответа ICMP TIME_EXCEEDED от каждого шлюза по пути к хосту назначения.

Единственный параметр, который необходимо указать при выполнении команды traceroute, – это имя хоста или IP-адрес места назначения.

Синтаксис traceroute и ключи

traceroute
Синтаксис traceroute в Ubuntu.

traceroute [ -dFInrvx ] [ -f first_ttl ] [ -g gateway ] [ -i iface ] [ -m max_ttl ] [ -p port ] [ -q nqueries ] [ -s src_addr ] [ -t tos ] [ -w waittime ] [ -z pausemsecs ] host [ packetlen ]  

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

Ключ Описание
-fУстановить начальное время жизни, используемое в первом исходящем тестовом пакете.
-FУстановить бит “не фрагментировать”.
-dВключить отладку на уровне сокетов.
-gУказать свободный исходный шлюз маршрута (максимум 8).
-iУказать сетевой интерфейс для получения исходного IP-адреса для исходящих тестовых пакетов. Обычно это полезно только на многосетевом хосте. (Смотрите ключ -s для другого способа сделать это.)
-lИспользовать ICMP ECHO вместо UDP .
-mУстановить максимальное время жизни (максимальное количество прыжков), используемое в исходящих тестовых пакетах. По умолчанию используется 30 переходов (то же самое, что используется по умолчанию для соединений TCP).
-n Выводить адреса переходов численно, а не символически и численно (сохраняет поиск адреса к имени сервера имен для каждого шлюза, найденного на пути).
-pУстановить базовый номер порта UDP (по умолчанию 33434). Traceroute надеется, что на базе портов UDP ничего не прослушивается base + nhops – 1 на хосте назначения (поэтому будет возвращено сообщение ICMP PORT_UNREACHABLE для завершения трассировки маршрута). Если что-то прослушивает порт в диапазоне по умолчанию, этот параметр можно использовать для выбора неиспользуемого диапазона портов.
-rОбходить обычные таблицы маршрутизации и отправка напрямую на хост в подключенной сети. Если хост не находится в сети с прямым подключением, возвращается ошибка. Эта опция может использоваться для проверки связи с локальным хостом через интерфейс, у которого нет маршрута через него (например, после того, как интерфейс был сброшен маршрутизируемым (8C)).
-sИспользовать следующий IP-адрес (который обычно задается как IP, а не имя хоста) в качестве адреса источника в исходящих тестовых пакетах. На многосетевых хостах (с несколькими IP адресами) этот параметр можно использовать, чтобы заставить исходный адрес отличаться от IP-адреса интерфейса, на который отправляется тестовый пакет. Если IP-адрес не является одним из адресов интерфейса данного хоста, возвращается ошибка и ничего не отправляется. (Смотрите ключ -i для другого способа сделать это.)
-tУстановить для type-of-service в тестовых пакетах следующее значение (по умолчанию ноль). Значение должно быть десятичным целым числом в диапазоне от 0 до 255. Этот параметр можно использовать, чтобы увидеть, приводят ли разные типы обслуживания к разным путям. Не все значения TOS являются законными или значимыми. Полезные значения, вероятно, “-t 16(низкая задержка) и “-t 8” (высокая пропускная способность).
-vПодробный вывод. Полученные ICMP-пакеты, кроме TIME_EXCEEDED и UNREACHABLE.
-wУстановить время (в секундах) ожидания ответа на нод (по-умолчанию 5 секунд).
-xПереключить контрольные суммы IP . Обычно это не позволяет traceroute вычислять контрольные суммы IP. В некоторых случаях операционная система может перезаписывать части исходящего пакета, но не пересчитывать контрольную сумму; таким образом, в некоторых случаях по умолчанию не вычисляются контрольные суммы, а использование -x приводит к их вычислению. Обратите внимание, что контрольные суммы обычно требуются для последнего прыжка при использовании ICMP ECHO ( -I ), поэтому они всегда рассчитываются при использовании ICMP.
-zУстановить время (в миллисекундах) для паузы между прыжками (по умолчанию 0). Некоторые системы, такие как Solaris и маршрутизаторы от Cisco, ограничивают скорость передачи сообщений icmp. Хорошее значение для использования это 500 (например, 1/2 секунды).

Интерпретация результатов

Traceroute обрисовывает путь, по которому IP-пакет следует к хосту, запуская тестовые пакеты UDP с небольшим TTL (время жизни), а затем прослушивая ICMP-ответ «превышено время» от шлюза. Мы запускаем наши тесты с TTL, равным единице, и увеличиваем его на единицу, пока не получим ICMP «порт недоступен» (что означает, что пакет прибыл в пункт назначения) или не достигнем максимального значения попыток, которое по умолчанию составляет 30 прыжков и может быть изменено с помощью ключа -m .

Когда traceroute выполняется, он отправляет три сигнала с каждой настройкой TTL, а затем выводит на консоль строку, показывающую TTL, адрес шлюза и время прохождения сигнала в обоих направлениях. Если ответы зондирования поступают из разных шлюзов, печатается адрес каждой отвечающей системы. Если в течение пятисекундного интервала ожидания ответа нет (изменяется с помощью ключа -w ), для этого сигнала печатается звездочка.

Чтобы предотвратить перегрузку хоста назначения при обработке зондирующего пакета UDP, для порта назначения установлено значение, которое вряд ли будет использоваться этим устройством. Если сеть или служба в пункте назначения использует этот порт, измените значение с помощью ключа -p .

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

tracerouteya

Traceroute предназначен для использования в тестировании, измерении и управлении сетью. Его следует использовать главным образом для ручной локализации неисправностей. Из-за нагрузки, которая может быть наложена на сеть, неразумно использовать traceroute во время обычных операций или из автоматических сценариев.

На этом всё!

Оставьте комментарий