Как читать traceroute: хопы, звёздочки и задержка | Check Host

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

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

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

Каждый IP-пакет несёт TTL (время жизни), которое каждый маршрутизатор уменьшает на единицу. Когда оно доходит до нуля, маршрутизатор отбрасывает пакет и отправляет обратно сообщение об ошибке. Traceroute отправляет пакеты с TTL 1, 2, 3 и так далее, поэтому каждый маршрутизатор на пути по очереди себя выдаёт. Каждая строка вывода — это хоп: адрес маршрутизатора, его имя, если есть, и время до него и обратно.

Как читать строки

Звёздочки обычно не проблема

Строка * * * значит, что этот маршрутизатор не ответил вовремя. Многие маршрутизаторы ограничивают или игнорируют пакеты traceroute, но при этом нормально пропускают трафик. Если дальше хопы отвечают, звёздочки безвредны. Настоящий обрыв — только когда звёздочки идут до самого конца, и он находится сразу после последнего ответившего хопа.

Задержка, которая скачет — и остаётся высокой

Один медленный хоп посередине часто ничего не значит: маршрутизаторы отвечают на traceroute с низким приоритетом. Важно, сохраняется ли добавленная задержка на всех следующих хопах. Если на хопе 7 время прыгает с 20 до 150 мс и все следующие хопы тоже около 150 мс, медленный участок — между хопами 6 и 7. Скачок такого размера обычно означает, что путь пересёк океан, — это нормально для хоста на другом континенте.

ICMP, UDP или TCP?

Файрволы обрабатывают их по-разному. Классический traceroute в Unix использует UDP, tracert в Windows — ICMP, а TCP-traceroute на порт 443 выглядит как обычный веб-трафик, поэтому чаще всего доходит до хоста за строгим файрволом. В онлайн-traceroute можно выбрать протокол и порт.

Почему одного traceroute мало

Маршрутизация в интернете асимметрична и зависит от региона: путь из Германии не имеет ничего общего с путём из Японии. Traceroute сразу из нескольких стран показывает, локален ли сбой для одного оператора или находится рядом с целью. Если все точки обрываются на одних и тех же последних хопах — проблема рядом с хостом. Если не работает только один регион — это проблема маршрутизации или пиринга в этом регионе.

Используйте вместе с ping

Traceroute показывает путь, а ping-тест — насколько стабильно соединение на нескольких пакетах. Используйте оба: ping — чтобы обнаружить потерю пакетов, traceroute — чтобы её локализовать. В статье о задержке и потере пакетов объясняется, какие значения нормальны.