Диагностика сети
Что показывает traceroute? Как читать результаты?
Traceroute показывает отвечающие узлы сети и измерения времени туда и обратно от источника до каждого узла. Узнайте, как читать результат, не принимая отсутствие ответа за сбой.
Автор Винешваран Виджаякумар, разработчик и издатель | | Проверено в соответствии с редакционной политикой ClockTools
Оглавление
Traceroute выглядит убедительнее, чем есть на самом деле. Аккуратные пронумерованные строки — результаты серии пробных пакетов, а не идеальная карта интернета.
Traceroute показывает отвечающие узлы уровня 3 между источником и назначением, а также измерения времени от источника до каждого узла и обратно. Он не гарантирует, что виден каждый маршрутизатор, не измеряет задержку между соседними узлами и не доказывает потерю пакетов. Отсутствие ответа может означать лишь то, что устройство решило не отвечать на пробный пакет.
Что на самом деле показывает трассировка
Классическая трассировка выявляет путь по отдельным ответам. Для каждого видимого узла она может показать номер перехода, IP-адрес, необязательное имя хоста и одно или несколько измерений времени туда и обратно. Модель измерения traceroute IETF перечисляет их как общие поля результата.
Здесь важно слово отвечающие. Строка представляет интерфейс, ответивший на пробный пакет, а не обязательно весь физический маршрутизатор и тем более не каждое устройство, передающее трафик. Два адреса с одним номером перехода могут быть альтернативными отвечающими узлами при балансировке нагрузки. Узел без ответа все равно может исправно пересылать пакеты.
Поэтому traceroute лучше считать наблюдением пути из одного источника в один момент времени одним способом проверки. Позже, через VPN или из другой сети результат может измениться. Это нормальное поведение маршрутизации, а не обязательный признак сбоя.
Как TTL позволяет обнаружить каждый узел
Механизм прост и изобретателен. В IPv4 у каждого пересылаемого пакета есть значение времени жизни, которое обычно используют как предел числа переходов. Маршрутизатор уменьшает его перед пересылкой. Когда значение исчерпано, он может вернуть сообщение ICMP Time Exceeded вместо дальнейшей передачи.
Сначала traceroute отправляет один или несколько пробных пакетов с TTL 1. Значение исчерпывается на первом маршрутизируемом переходе. Следующая серия использует TTL 2 и может пройти на один узел дальше. Так продолжается до ответа цели или достижения заданного максимума. В IPv6 используется поле с названием Hop Limit, но принцип обнаружения тот же. Подробности протокола описаны в RFC 5388 и Спецификация IPv6.
Ответ назначения зависит от реализации. Традиционная трассировка на основе UDP часто завершается, когда пункт назначения сообщает, что выбранный порт недоступен. Окна tracert использует зонды ICMP Echo и завершается, когда пункт назначения отвечает. Также существуют варианты на основе TCP. Вот почему две программы трассировки могут совершать один и тот же базовый путь, отправляя разные типы зондов.
Как прочитать одну строку вывода
Рассмотрим обычную строку Windows с номером перехода, тремя значениями времени и адресом. Столбцы легко читать, если не приписывать им лишнего.
| Поле | Что это значит | Что это не доказывает |
|---|---|---|
| Номер перехода | Шаг TTL или Hop Limit, используемый для этой строки | Физическое расстояние или принадлежность маршрутизатора |
| Три значения RTT | Три отдельных измерения от источника до отвечающего узла и обратно | Минимум, среднее и максимум; задержку между соседними узлами |
| Имя хоста | Имя обратного DNS при успешном разрешении | Точная роль, компания или местоположение устройства. |
| IP-адрес | Адрес отвечающего интерфейса | Каждый интерфейс маршрутизатора или обратный путь |
| Звездочка | Ответ на этот запрос не поступил до истечения времени ожидания. | Что маршрутизатор отбросил пересылаемый трафик |
Три значения в середине заслуживают внимания. Это три отдельные попытки. Microsoft описывает их как время от вашего устройства до узла и обратно в официальной документации tracert. Это не три этапа одного путешествия пакета и не готовые сводные данные о минимальном, среднем и максимальном значениях.
RTT также включает путь ответа и время обработки на отвечающем устройстве. Интернет-маршрутизация может быть асимметричной, поэтому ответ может вернуться по другому пути. RFC 9198 объясняет, почему такое измерение ICMP не дает воспроизводимой оценки задержки приложения. Рассматривайте число как сквозное измерение между источником и отвечающим узлом, а не как секундомер на одном кабеле между двумя маршрутизаторами.
Звездочки — молчание, а не приговор
Звездочка означает, что пробный пакет не получил ответа до истечения времени ожидания. Сама по себе она означает только это. Маршрутизатор может фильтровать этот тип пакетов, ограничивать частоту ответов ICMP, снижать приоритет ответов управляющей плоскости или отправлять ответ, потерявшийся на обратном пути.
Одна звездочка среди двух значений времени означает, что один из трех запросов остался без ответа. Три звездочки или «Request timed out» означают, что ни один запрос строки не получил своевременного ответа. Если последующие узлы, включая цель, отвечают, трассировка проходит дальше этого TTL, поэтому молчащая строка не доказывает сбой пересылки. При многопутевой маршрутизации более поздние пакеты могли идти через другую последовательность узлов. В примере Microsoft за строками с тайм-аутом следует успешный ответ цели.
Это распространенный плохой диагноз при чтении трассировки: каждый молчащий переход рассматривается как потеря пакетов. Пересылка трафика и ответ на диагностические запросы — это разные задачи. Маршрутизатор может выполнить первое, отклонив второе.
Для проверки реальных потерь нужны повторные измерения. В Windows PathPing сочетает обнаружение пути с длительной серией пробных пакетов и рассчитывает статистику. Даже тогда потери, сообщаемые до промежуточного маршрутизатора, нужно сравнить с последующими узлами, прежде чем заключать, что страдает пересылаемый трафик.
Как не обвинить не тот роутер
Полезный вопрос — не «В какой строке самое большое число?», а «Где начинаются изменения и сохраняются ли они до цели?»
| Картина в повторных тестах | Осторожная интерпретация | Полезная следующая проверка |
|---|---|---|
| RTT увеличивается на одном узле и остается высоким до самой цели | Изменения могут начаться недалеко от этой точки, но путь возвращения по-прежнему имеет значение. | Повторите в другое время и сравните с другой сетью. |
| Один переход медленный, последующие переходы нормальные. | Этот ответчик может медленно отвечать на запросы, а не пересылать трафик. | Не называйте это узким местом только по этой трассировке. |
| Появляются звездочки, но следующие узлы отвечают | Узел без ответа может фильтровать ответы или ограничивать их частоту | Проверьте результат для цели и повторите тест |
| Разные адреса появляются на одном и том же номере перехода. | Возможны балансировка нагрузки или изменение маршрута | Сравните несколько трассировок вместо объединения адресов в один путь. |
| Только пункт назначения остается стабильно медленным. | Пункт назначения, его сеть или обратный путь заслуживают более пристального внимания. | Сравните время отклика приложения и доступность сервиса |
На RTT могут влиять расстояние, перегрузка, Wi-Fi, маршрут VPN, очереди и поведение отвечающего узла. Одно высокое значение — повод проверить, а не доказательство вины. Ищите повторяющуюся закономерность, которая сохраняется на следующих узлах и соответствует реальному симптому.
Traceroute также не измеряет скорость загрузки или отправки. Если жалоба звучит как «соединение везде медленное», тест скорости интернета более непосредственно проверяет пропускную способность, задержку и джиттер. Эти два инструмента отвечают на разные вопросы.
Что трассировка не может достоверно показать
Traceroute дает краткий снимок пути. Правильно читать его — значит понимать, что в этот снимок не входит.
- Он может не раскрывать каждый переход уровня 3; некоторые устройства никогда не отвечают на запросы.
- Обычно он не показывает прозрачные коммутаторы уровня 2. Они пересылают кадры, не появляясь как IP-переходы.
- Он наблюдает за прямым маршрутом зондирования, в то время как каждый ответ может иметь другой обратный путь.
- Он может выбрать один из нескольких маршрутов с равной стоимостью, а не каждый возможный путь.
- Он не устанавливает стабильный процент потери пакетов по нескольким зондам.
- Он не доказывает, по какому маршруту пойдет каждый поток приложения, особенно при разных протоколах пробных пакетов.
- IP-адрес или имя хоста не являются точными показателями физического местоположения.
Выберите дополнительный тест, отвечающий на оставшийся вопрос. Если сайт отвечает, а определенный сервис — нет, целевая проверка портов может проверить выбранные публичные TCP-порты со стороны пограничного узла ClockTools. Если частные диапазоны или границы CIDR мешают понять трассировку, Калькулятор IP-подсети помогает разделить части сети и хоста.
Tracert, traceroute и типы пробных пакетов
Windows называет команду tracert. macOS, Linux, BSD и многие сетевые устройства обычно используют traceroute. The output feels familiar across platforms, but the default probes can differ.
Окна tracert отправляет запросы ICMP Echo с увеличением значений TTL. Традиционный Unix-подобный маршрут трассировки обычно начинается с UDP, хотя реализации и опции также могут использовать ICMP или TCP. Избегайте общего правила, согласно которому «traceroute всегда использует UDP» или «traceroute всегда использует ICMP». Решает программа и выбранный ею метод.
Для быстрой трассировки Windows без поиска имени хоста используйте tracert /d example.com. В типичной системе macOS или Linux начните с traceroute example.com и прочтите руководство к этой системе, чтобы узнать параметры протокола и тайм-аута. /d Флаг может ускорить трассировку Windows, пропуская разрешение имен обратного DNS, но он не скрывает IP-адреса в выходных данных.
Срок tracepath обычно относится к родственной Unix-подобной утилите с другим интерфейсом и моделью привилегий. MTR и WinMTR повторяют проверки с течением времени. PathPing добавляет повторную статистику после обнаружения маршрута. Выбирайте один из них в зависимости от того, нужен ли вам быстрый снимок пути или продолжительное измерение.
Какую роль играет ClockTools
Обычная браузерная страница не может отправлять те же низкоуровневые пробные пакеты ICMP, UDP или TCP, что и команда локального терминала. Ограничения браузера и среды Cloudflare Worker в ClockTools не дают нужного управления TTL пакетов, поэтому ClockTools не создает таблицу узлов маршрута.
Диагностика маршрута ClockTools работает в этих пределах. Протокол HTTP и клиентский RTT описывают участок от браузера до ClockTools. Отдельный публичный запрос HTTP или HTTPS идет от пограничного узла ClockTools к цели и сообщает доступность, статус, время отклика, тип содержимого и перенаправления. Это удобно для быстрой проверки сайта извне, но не является локальной таблицей узлов вашего ноутбука.
На снимке экрана выноска 1 отмечает уведомление об ограничении; выноска 2 отмечает целевые данные ответа. В примере используется example.com, общедоступный домен документации, а не частный хост, и обобщает пограничный код для конкретного запроса.
Используйте публичный URL, который принадлежит вам, находится под вашим управлением или разрешен для проверки. Если цель быстро отвечает пограничному узлу, но медленно — устройству, стоит проверить локальный Wi-Fi, путь провайдера, VPN, нагрузку устройства или поведение браузера. Но тесты выполняются с разных точек и могут идти разными маршрутами. Если оба завершаются сбоем, вероятнее проблемы DNS, хостинга, брандмауэра или доступности цели.
Практическая последовательность устранения неполадок
Начните с симптома, а не с набора инструментов.
- Доступен ли веб-сайт за пределами вашего соединения? Запустите диагностику маршрута ClockTools и обратите внимание на состояние, перенаправления и время ответа.
- У вас все соединение медленное? Сравните пропускную способность, пинг и джиттер с помощью теста скорости Интернета.
- Нужно увидеть локальный маршрут по узлам? Запустить
tracertилиtracerouteна затронутом устройстве и в сети. - Сбой одной службы, пока хост отвечает? Проверяйте только соответствующий авторизованный общедоступный TCP-порт со стороны ClockTools.
- Один раз появилось высокое RTT или таймаут? Повторите трассировку. Устойчивое поведение следующих узлов важнее одной впечатляющей строки.
- Вы сравниваете публичные и частные адреса? Какой у меня IP определяет видимый публичный адрес, а калькулятор подсети помогает разобраться с частными диапазонами.
Такой порядок предотвращает распространенную ошибку: использование одной диагностики для ответа на каждый сетевой вопрос. Достижимость, наблюдение за маршрутом, устойчивые потери, пропускная способность и доступность услуг взаимосвязаны, но не являются взаимозаменяемыми.
Безопасно делитесь результатами трассировки
Трассировка может раскрыть публичные и частные IP-адреса, внутренние имена хостов, имена провайдеров, особенности задержек и части структуры сети. Перед публикацией на форуме, в обращении, статье или на скриншоте удалите ненужные получателю сведения.
Скройте имена внутренних устройств, имена пользователей в именах хостов, частные адреса, если топология не важна, и публичные адреса, если не хотите связывать их с публикацией. Оставьте достаточно структуры для понимания проблемы: часто хватит числа переходов, наличия тайм-аутов и характерных значений времени.
Не предполагайте tracert /d анонимизирует след. Он пропускает разрешение имен; он по-прежнему отображает отвечающие IP-адреса. Также помните, что предположение о геолокации IP не является точным физическим местоположением, но может выявить провайдера или широкий регион.
Правильная интерпретация трассировки сдержанна: какие пробные пакеты получили ответ, сколько занял путь туда и обратно и где начинается закономерность. Эти данные становятся полезными при сопоставлении с повторными тестами и симптомом, который вы пытаетесь объяснить.
Часто задаваемые вопросы
Traceroute — это ICMP или UDP?
Зависит от реализации и параметров. Windows tracert использует пробные пакеты ICMP Echo. Традиционный traceroute Unix-подобных систем обычно использует UDP, но существуют и варианты ICMP и TCP.
В чем разница между tracert и traceroute?
Tracert — название команды Windows; traceroute обычно используется в macOS, Linux, BSD и сетевых системах. Принцип увеличения предела переходов один, но протоколы пробных пакетов по умолчанию и параметры могут различаться.
Что означает * * * в трассировке?
Ни один пробный пакет этого перехода не получил ответа до истечения времени ожидания. Устройство все равно может пересылать трафик, особенно если отвечают последующие узлы или цель.
Почему для каждого узла указаны три значения времени?
Многие реализации отправляют три пробных пакета для каждого предела переходов. Это три отдельных измерения от источника до отвечающего узла и обратно, а не минимум, среднее и максимум.
Traceroute показывает каждый маршрутизатор?
Нет. Некоторые маршрутизаторы не возвращают ожидаемый диагностический ответ, а балансировка нагрузки может показывать разные отвечающие узлы. Рассматривайте результат как наблюдаемый пробными пакетами путь, а не полную опись физических устройств.
Показывает ли трассировка сетевые коммутаторы?
Обычная IP-трассировка обычно не показывает прозрачные коммутаторы уровня 2. Она показывает отвечающие интерфейсы уровня 3, обнаруженные при исчерпании TTL или Hop Limit.
Может ли трассировка доказать потерю пакетов?
Не по одной короткой трассировке. Отсутствие ответа может отражать фильтрацию или ограничение частоты ответов, а не потерю пересылаемого трафика. Используйте повторные измерения и сравнивайте следующие узлы и цель.
Показывает ли трассировка мое физическое местоположение?
В трассировке не закодировано точное физическое местоположение. IP-адреса и имена хостов по-прежнему могут указывать на провайдера, организацию или регион, поэтому отредактируйте данные, которые вы не хотите публиковать.
Почему маршрут может меняться между двумя тестами?
Обновления маршрутизации, балансировка нагрузки, использование VPN, изменения в исходной сети и другие решения по организации трафика могут направить последующие зонды по другому пути. Трассировка — это привязанное ко времени наблюдение.

