Руководство по запуску Traceroute в Linux

Если вам нужно узнать, куда направляются ваши пакеты после того, как они покидают ваш компьютер с Linux, то traceroute в Linux поможет вам.

Traceroute – это удобная утилита, которая есть практически в каждом дистрибутиве Linux и отслеживает, через какие маршрутизаторы проходят ваши сетевые пакеты. Эта утилита полезна для устранения неполадок или простого планирования сети.

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

Cвязано: Как использовать Traceroute в Windows 10 (Tracert)

Изучение параметров Traceroute

Чтобы начать, давайте сначала посмотрим, что можно сделать с помощью команды traceroute в Linux.

Откройте терминал и введите команду traceroute -?, чтобы получить доступ к странице справки:

Usage: traceroute [OPTION...] HOST
Print the route packets trace to network host.

  -f, --first-hop=NUM        set initial hop distance, i.e., time-to-live
  -g, --gateways=GATES       list of gateways for loose source routing
  -I, --icmp                 use ICMP ECHO as probe
  -m, --max-hop=NUM          set maximal hop count (default: 64)
  -M, --type=METHOD          use METHOD (`icmp' or `udp') for traceroute
                             operations, defaulting to `udp'
  -p, --port=PORT            use destination PORT port (default: 33434)
  -q, --tries=NUM            send NUM probe packets per hop (default: 3)
      --resolve-hostnames    resolve hostnames
  -t, --tos=NUM              set type of service (TOS) to NUM
  -w, --wait=NUM             wait NUM seconds for response (default: 3)
  -?, --help                 give this help list
      --usage                give a short usage message
  -V, --version              print program version

Mandatory or optional arguments to long options are also mandatory or optional
for any corresponding short options.

Report bugs to <bug-inetutils@gnu.org>.

Как видно из приведенного выше примера, у вас есть много параметров для настройки работы traceroute.

Основная функциональность Traceroute

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

Она может отслеживать эти хопы, используя время жизни (TTL) на каждом пакете, уменьшая его на единицу каждый раз, чтобы определить, когда пакет больше не принимается.

Traceroute to google.com

Знайте, что у трассировки маршрута есть максимальное количество хопов. Она может пройти максимум 30 хопов.

Добавление переключателей для более точного отслеживания

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

Исключение хопов с помощью переключателя первого хопа

Один полезный командный параметр исключает определенные маршрутизаторы из трассировки. Используя параметр -f или --first-hop=NUM, вы можете исключить определенные маршрутизаторы из вывода. Это может быть очень полезно, если вы уверены, что один или несколько маршрутизаторов не вызывают проблем.

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

В следующем GIF-изображении вы можете увидеть выполнение команды traceroute -f 3 google.com. Эта команда пропускает первые три маршрутизатора, обходя мою домашнюю сеть и маршрутизатор провайдера. Обратите внимание, что первые два прыжка отсутствуют.

traceroute -f example

Для достижения www.google.com с моей сети из приведенного выше примера требуется 15 прыжков. Вы видите:

  • количество прыжков
  • имя хоста или IP-адрес маршрутизатора по пути трассировки
  • время ответа, как и раньше

В выводе вы можете увидеть дополнительные интерфейсы для некоторых прыжков. Это ожидаемо.

Ограничение прыжков с помощью переключателя Max-Hop

Предположим, что, помимо пропуска первых двух прыжков, вам также нужен путь до пятого прыжка в маршруте. Для этого вы можете использовать параметр переключателя -m или --max-hop=NUM.

Введите в терминале команду traceroute -m 5 -f 3 http://www.google.com и нажмите Enter. Эта команда, несомненно, полезна для сужения потенциальных проблем с маршрутизацией. Теперь traceroute пропускает первые два прыжка и останавливается на пятом прыжке.

Traceroute skipping hops

Уменьшение количества пакетов-зондов с помощью переключателя -Q

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

Введите traceroute -q -m 5 -f 3 www.google.com в ваш терминал и нажмите Enter. Вы можете видеть ниже, что traceroute отправляет только один пакет, потому что мы получаем только одно время отклика для каждого узла.

traceroute -q 6 example

Также вы можете увеличить количество пробных пакетов, отправляемых для каждого узла, указав аргумент для параметра -q, как показано ниже. Увеличение количества пробных пакетов может помочь, предоставив среднее время отклика для каждого узла.

Argument for -q Parameter

Резюме

В этой статье о Traceroute для Linux вы узнали основы использования этой полезной утилиты. С помощью этой команды можно сделать гораздо больше. Если вы хотите узнать, как использовать каждый переключатель, обратитесь к странице справки.

Source:
https://adamtheautomator.com/traceroute-linux/