Команда tracert в командной строке windows

Microsoft Windows 2000 версия этой статьи 162326см.

Аннотация

В данной статье описывается TRACERT (Trace Route), служебная программа командной строки, который можно использовать для трассировки путь, который принимает пакет Internet Protocol (IP) до места назначения. В данной статье рассматриваются следующие вопросы:

  • Использование служебной программы TRACERT

  • Использование команды TRACERT для устранения неполадок

  • Сведения о параметрах команды TRACERT

Дополнительная информация

Использование служебной программы TRACERT

Диагностические программы TRACERT определяет маршрут к месту назначения, посылая эхо-сообщений протокола ICMP (Internet Control) пакетов в место назначения. В этих пакетов TRACERT использует разные значения IP Time To Live (TTL). Поскольку каждый маршрутизатор на пути обязан уменьшить значение поля TTL пакета, по крайней мере на 1 перед дальнейшей пересылкой пакета, значение TTL по сути является эффективным счетчиком переходов. Когда срок ЖИЗНИ пакетов достигает нуля (0), маршрутизатор посылает ICMP «Time Exceeded» сообщений на исходном компьютере. TRACERT отправляет первого эхо-пакета с TTL равным 1 и увеличивает значение TTL на 1 для каждого последующего отправляемого пока назначение не ответит или пока не будет достигнуто максимальное значение поля TTL. Сообщений ICMP «Time Exceeded», который промежуточные маршрутизаторы отправить назад отображается маршрут. Однако обратите внимание, что некоторые маршрутизаторы просто отбрасывать пакеты с истекшим сроком TTLs, и эти пакеты не видны для команды TRACERT. Команда TRACERT выводит упорядоченный список промежуточных маршрутизаторов, которые возвращают ICMP «Time Exceeded» сообщения. Параметр -d с помощью команды tracert программа TRACERT не требуется выполнять поиск в DNS для каждого IP-адреса, так, что команда TRACERT отображает IP-адрес ближних интерфейсов маршрутизаторов. В следующем примере команда tracert и ее результаты пакет проходит через два маршрутизатора (157.54.48.1 и 11.1.0.67), чтобы достигнуть узла 11.1.0.1. В этом примере основной шлюз — 157.54.48.1 и IP-адрес маршрутизатора в 11.1.0.0 сети находится в 11.1.0.67.The команды:

C:\>tracert 11.1.0.1В результате выполнения команды: Tracing route to 11.1.0.1 over a maximum of 30 hops ————————————————— 1 2 ms 3 ms 2 ms 157.54.48.1 2 75 ms 83 ms 88 ms 11.1.0.67 3 73 ms 79 ms 93 ms 11.1.0.1 Trace complete.

Использование команды TRACERT для устранения неполадок

TRACERT можно использовать, чтобы узнать в каком месте сети останавливаются пакеты. В следующем примере основной шлюз обнаружил, что существует не правильный путь для размещения на 22.110.0.1. Вероятно, либо маршрутизатор имеет проблемы конфигурации или 22.110.0.0 сети не существует, отражая неправильный IP-адрес. Команда:

C:\ > tracert 22.110.0.1В результате выполнения команды: Tracing route to 22.110.0.1 over a maximum of 30 hops —————————————————— 1 157.54.48.1 reports: Destination net unreachable. Trace complete. TRACERT полезна для устранения неполадок в больших сетях, где несколько путей может привести к той же точке или где задействовано множество промежуточных компонентов (мосты или маршрутизаторы).

Сведения о параметрах команды TRACERT

Существует несколько параметров командной строки, которые можно использовать с помощью команды TRACERT, несмотря на то, что параметры не являются обычно требуются для стандартных неполадок. В следующем примере синтаксис команды показывает все возможные варианты:

Tracert -d -h максЧисло -j списокУзлов — w Таймаут target_hostЧто делают параметры: -d Specifies to not resolve addresses to host names -h maximum_hops Specifies the maximum number of hops to search for the target -j host-list Specifies loose source route along the host-list -w timeout Waits the number of milliseconds specified by timeout for each reply target_host Specifies the name or IP address of the target host

Нужна дополнительная помощь?

Нужны дополнительные параметры?

Изучите преимущества подписки, просмотрите учебные курсы, узнайте, как защитить свое устройство и т. д.

В сообществах можно задавать вопросы и отвечать на них, отправлять отзывы и консультироваться с экспертами разных профилей.

Привет, посетитель сайта ZametkiNaPolyah.ru! Продолжим разбираться с полезными командами и утилитами командной строки Windows, на этот раз давайте разберемся с сетевой утилитой tracert, мы поговорим зачем нужна команда tracert и как ею пользоваться для диагностики компьютерной сети и устранению неполадок. Как мы увидим, утилиту tracert используют сетевые инженеры и системные администраторы для определения маршрута прохождения IP-пакета по сети, вы убедитесь, что этой утилитой довольно легко пользоваться, но не все умеют правильно оценивать результаты работы этой команды, о некоторых сложностях, которые могут  возникнуть при интерпретации трассировка маршрута мы поговорим в самом конце этой публикации.

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

Назначение команды tracert или как определить маршрут прохождения пакета до узла

Содержание статьи:

  • Назначение команды tracert или как определить маршрут прохождения пакета до узла
  • Параметры команды tracert в Windows
  • Примеры использования утилиты tracert для устранения проблем в сети
  • Несколько советов о том, как читать и интерпретировать выводы результатов работы команды tracert
  • Выводы

Tracert – это небольшая системная утилита вашей операционной системы, которая позволяет сделать трассировку маршрута до заданного узла в локальной сети или сети Интернет. В операционных системах Windows tracert – это стандартная утилита, которая устанавливается вместе с операционной системой, то есть вам не нужно ничего устанавливать, чтобы воспользоваться командной tracert. Исполняемый файл tracert.exe в Windows 10 находится по следующему пути: C:\Windows\System32.

Команда tracert – это один из самых часто используемых инструментов для траблшутинга и сетевой диагностики, эта утилита дает нам возможность определить маршрут, по которому проходит пакет до заданного узла. Tracert может работать как с доменными имена или именами хостов, так и с IP-адресами (как с IPv4, так и с IPv6). Кроме того что tracert показывает маршрут от вашего компьютера до удаленного узла в сети, она еще и отображает время прохождения пакетов как до конечного узла, так и до транзитных или промежуточных узлов (время является одной из самых важных единиц измерения в компьютерных сетях). Давайте лучше посмотрим, как работает утилита tracert на простом примере без дополнительных параметров.

Трассировка маршрута при помощи команды Tracert до IP-адреса Яндекс

Трассировка маршрута при помощи команды Tracert до IP-адреса Яндекс

В данном случаем мы видим путь прохождения IP-пакета от моего ПК до сервера Яндекс, чтобы указать утилите tracert удаленный узел, мы воспользовались IP-адресом. Но эта команда может работать и с доменными именами, давайте посмотрим, сделав трассировку маршрута до сервера Google.

Трассировка маршрута при помощи утилиты tracert до сервера Google по доменному имени

Трассировка маршрута при помощи утилиты tracert до сервера Google по доменному имени

Стоит сказать пару слов о выводе, который мы получили. Каждая строка вывода команды tracert пронумерована, каждая такая строка называется шагом, хопом или прыжком. По умолчанию tracert в Windows отправляет три запроса на каждый хоп и получает от этого хопа ответы, если ответ не получен, то в первых трех столбцах мы видим символ «*», если ответ получен, то в первых трех столбцах указывается время прохождения пакета, а в четвертом столбце Windows дает нам подсказку о причинах, по которым удаленный узел нам не ответил или его адрес, если узел ответил.

Хопы, которые мы видим в трассировке – это маршрутизаторы, серверы или L3 коммутаторы, на интерфейсах которых прописан IP-адрес (то есть устройства, которые определяют путь, по которому пойдет IP-пакет, другими словами – это устройства сетевого уровня моделей OSI 7 и TCP/IP), это важное уточнение для интернет-пользователей, всё дело в том, что витая пара или другой тип кабеля (про минусы использования коаксиального кабеля в Ethernet сетях можете почитать здесь), который приходит к вам в квартиру, подключен в L2 коммутатор, который никак не влияет на маршрут прохождения пакета, на нем нет IP-адресов (вернее есть один адрес, который использует тех. поддержка провайдера для управления этим коммутатором) и он не принимает решений по маршрутизации пакетов, таких коммутаторов между хопами может быть несколько десятков и мы их никак не увидим, так как для утилиты tracert они представляют собой что-то вроде кабеля, собственно как и для других утилит сетевой диагностики.

Для диагностики сетевых ресурсов утилита tracert использует специальный протокол, который называется ICMP (Internet Control Message Protocol — протокол межсетевых управляющих сообщений), есть еще команда traceroute (эта утилита обычно входит в стандартные дистрибутивы Linux, например, эта утилита присутствует в Linux Mint), которая по умолчанию использует протокол UDP, для ее использвания вам точно также потребуется эмулятор терминала. ICMP-сообщение, которое посылает наш компьютер, запаковывается в IP-пакет (здесь вы можете прочитать более подробно про инкапсуляцию данных в компьютерных сетях), у которого есть специальное значение TTL (time to live или время жизни), для понимания работы tracert это важно, поскольку эта команда при каждой отправке пакета увеличивает TTL на единицу, а первый отправленный пакет в сеть имеет значение, равное единице, при этом по умолчанию tracert отправляет три пакета с одним и тем же TTL, то есть в ответ мы должны получить три пакета от удаленного узла (самые основы взаимодействия двух узлов в компьютерной сети описаны здесь, для реализации схемы использовалась Cisco Packet Tracer).

Вернемся к примеру с трассировкой Яндекса, чтобы это лучше понять. Когда мы написали tracert 77.88.55.88, tracert сформировала IP-пакет, в котором в качестве узла назначения указала IP-адрес Яндекса и отправила его в сеть, а в качестве TTL этот пакет получил значение равное единице, далее tracert, не изменяя TTL отправила еще два пакета и получила три ответа от узла 192.168.0.1. После значение TTL было увеличено на единицу (значение стало равным двойке) и в сеть было отправлено еще три пакета (IP-адрес в этих пакетах не изменялся), следующий хоп отказался отвечать на ICMP-запросы и мы увидели три звездочки, после этого TTL был снова увеличен и мы увидели третий хоп, таким образом tracert будет увеличивать TTL до тех пор, пока не доберется до сервера Яндекс. С Гуглом ситуация аналогичная, только там мы использовали доменное имя, поэтому tracert пришлось выполнять дополнительные операции по выяснению IP-адреса, на котором этот домен висит.

При использовании утилиты tracert не стоит паниковать в тех ситуациях, когда вы видите звездочки вместо времени ответа удаленного узла, дело в том, что ICMP-протокол иногда используется для сетевых атак (например, DDoS) и некоторые сетевые инженеры и системные администраторы предпочитают настраивать свои устройства таким образом, чтобы они не отвечали на ICMP-запросы. Иногда бывает так, что конечный узел не отвечает на ICMP-запросы, но на самом деле он корректно работает и выполняет свои функции, для проверки доступности таких узлов вам не поможет команда Ping, так как она тоже использует ICMP, но может помочь команда traceroute или онлайн сервисы по проверки доступно сайтов и серверов в Интернете.

В качестве примера давайте сделаем трассировку до сайта microsoft.com, сервера этой компании не отвечают на ICMP-запросы. Трассировка показана на рисунке ниже.

Трассировка до сервера Microsoft, который не отвечает на ICMP-запросы

Трассировка до сервера Microsoft, который не отвечает на ICMP-запросы

На момент проверки этого ресурса он был доступен, но результаты работы tracert нас немного обманывают, по ним видно, что мы якобы не можем добраться до сервера Майкрософт, поэтому для корректной диагностики удаленных ресурсов нужно иметь целый арсенал сетевых утилит, ну или как минимум браузер и умение гуглить. Еще по трассировки видно, что tracert в Windows по умолчанию использует максимальное значение TTL равное 30, протокол IPv4 позволяет задавать максимальное значение TTL 255, но на самом деле это очень много, чтобы остановить выполнение команды tracert воспользуйтесь сочетание клавиш ctrl+c.

Параметры команды tracert в Windows

Любая команда в командной строке Windows имеет небольшой справочник (команда help — справочник командной строки Windows), в котором указаны допустимые параметры, в том числе и команда tracert, чтобы увидеть эти параметры, в командной строке нужно написать: tracert /? или tracert /h.

PS C:\WINDOWS\system32> tracert /?

Использование: tracert [d] [h максЧисло] [j списокУзлов] [w таймаут]

[R] [S адресИсточника] [4] [6] конечноеИмя

Параметры:

d Без разрешения в имена узлов.

h максЧисло Максимальное число прыжков при поиске узла.

j списокУзлов Свободный выбор маршрута по списку узлов (только IPv4).

w таймаут Таймаут каждого ответа в миллисекундах.

R Трассировка пути (только IPv6).

S адресИсточника Используемый адрес источника (только IPv6).

4 Принудительное использование IPv4.

6 Принудительное использование IPv6.

Справка Windows дает подробные пояснения к параметрам команды, думаю, добавлять ничего не нужно, всё станет еще более очевидно, когда мы посмотрим примеры использования утилиты tracert с параметрами.

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

Как я уже говорил, утилита tracert может принимать несколько параметров, один из них мы уже рассмотрели – адрес удаленного узла в сети, этот параметр обязательный, давайте разберемся с другими параметрами этой утилиты и посмотрим, как их комбинировать и что можно в результате получить. Для начала посмотрим на параметр –d, на мой взгляд он самый непонятный, что означает это – без разрешения в имена узлов. Всё будет ясно, когда мы посмотрим на вывод команды tracert с параметром –d.

Как работает утилита tracert с параметром -d в Windows

Как работает утилита tracert с параметром -d в Windows

Всё очевидно: «без разрешения в имена узлов» означает, что в выводе будут отсутствовать имена хостов, через которые проходит IP-пакет, это бывает удобно, некоторые провайдеры и дата-центры любят задавать длинные имена и вывод становится неудобно читать.

Мы уже делали трассировку до сервера Майкрософт, давайте теперь повторим ее, но ограничим количество хопов до 10 и не будем выводить имена хостов, для этого нужно будет скомбинировать параметры –d и –h. Для команды tracert в Windows последовательность параметров в данном случае не имеет значение.

Как ограничить количество хопов для tracert в Windows или параметр –h

Как ограничить количество хопов для tracert в Windows или параметр –h

Результата работы параметра –j, который дает возможность свободного выбора маршрута, я, к сожалению, вам не покажу, чтобы узнать больше о том, что дает параметр –j для команды tracert почитайте про опцию LSRR (Loose Source and Record Route), в противоположность есть опция строгой маршрутизации от источника (Strict Source and Record Route – SSRR). Команда tracert с параметром –j работает примерно так: tracert -j 10.10.10.1 20.20.20.20 30.31.44.1 google.com. После параметра –j идет список транзитных узлов, которых должно быть не больше 9 (меньше можно), а в конце адрес узла в сети, до которого вы хотите получить трассировку.

Еще одни полезным параметром утилиты tracert является параметр –w, он позволяет задать команде tracert максимальное время ожидания ICMP-ответа от удаленного узла, значение этому параметру задается в миллисекундах, по умолчанию в Windows это значение равно 4000 мс, это означает, что команда будет ждать ответа от удаленного узла не больше 4 секунд. Пример использование tracert с параметром –w: tracert –w 1000 8.8.8.8. В данном случае мы сказали команде, что не стоит ждать ответ дольше одной секунды.

К сожалению, у меня нет возможности продемонстрировать работу команды tracert с параметрами для протокола IPv6, сюда входят такие параметры как: -R для трассировки пути, -S для указания IPv6 адреса источника. Параметры -6 и -4 будут полезны, если в своей сети вы используете два протокола: IPv6 и IPv4. Но чтобы уж совсем не оставаться без примеров, обратите внимание на листинг ниже.

C:\Users\example>tracert 6 ipv6.google.com

Tracing route to ipv6.l.google.com [2a00:1450:8003::93]

over a maximum of 30 hops:

1 1 ms 1 ms <1 ms ipv6.myhome.example.org [2001:db8:100::1]

2 18 ms 18 ms 17 ms gw392.dus01.de.provider.net [2001:db8:200:187::1]

3 22 ms 17 ms 16 ms provider.gateway.example.com [2001:db8:200::1]

4 27 ms 26 ms 30 ms 2001:7f8:8::3b41:0:1

5 34 ms 30 ms 31 ms 2001:4860::1:0:60d

6 33 ms 33 ms 35 ms 2001:4860::1:0:fdd

7 42 ms 41 ms 39 ms 2001:4860::1:0:12

8 40 ms 40 ms 40 ms 2001:4860::2:0:66f

9 41 ms 50 ms 50 ms 2001:4860:0:1::2d

10 45 ms 40 ms 40 ms 2a00:1450:8003::93

Здесь используется параметр -6 при трассировке узла ipv6.google.com. В общем-то с примерами использования утилиты tracert можно завершить, как видите, здесь нет ничего сложного. Гораздо сложнее интерпретировать и анализировать выводы этой команды.

Несколько советов о том, как читать и интерпретировать выводы результатов работы команды tracert

Во-первых, отмечу, что пользоваться командой tracert очень легко, на самом деле очень легко пользоваться любыми сетевыми утилитами, легко писать команды на сетевых устройствах, но понимать, как это всё работает, задача гораздо более сложная. Понимать выводы команды tracert тоже непросто, иногда даже невозможно их правильно интерпретировать.

Вы наверняка думает, что tracecrt позволяет вам правильно оценить задержку прохождения пакетов по сети, ведь так? Всё вроде бы очевидно, три раза отправили, три раза получили, взяли среднее арифметическое и получили среднее время, так? Нет, не так. У пакетов есть время распространения по сети, а у сетевых устройств есть такие факторы как сериализация и буферизация, они довольно сложные.

Когда вы используете tracert или traceroute не забывайте, что маршрутизатор, который будет отвечать на ваши запросы, обрабатывает эти запросы несколько иначе, чем полезный сетевой трафик, который проходит через него транзитом. Мы с вами делали трассировки до узлов Яндекса, Гугла и Майкрософта, мы получали определенные задержки на хопах, но при трассировке мы видим только маршрут «туда», обратный маршрут с вероятностью 90% будет отличаться, но у вас нет возможности сделать трассировку до себя с указанных серверов. То есть получается, что мы видим маршрут «туда», но получаем усредненное время, которое получается путем сложения времени, которое будет затрачено на то, чтобы добраться туда с временем, которое будет затрачено на то, чтобы добраться обратно другим маршрутом (еще раз повторю, что маршрут «обратно» не обязательно должен совпадать и очень часто не совпадет с маршрутом «обратно»), несовпадение маршрутов главным образом связано с коммерческой и юридической сферой взаимодействия провайдеров и других крупных игроков интернета.

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

Команда tracert только на первый взгляд кажется простой, на самом деле это не так, я сейчас даже не говорю про простых пользователей, многие админы умеют пользоваться tracert на уровне обезьяны и не хотят это исправлять, иначе не объяснишь их восприятие звездочек в выводе («это потери, ужас, мрак, хостер, провайдер, дата-центр, за что я плачу тебе 100 рублей?» обычно именно такие ребята поднимают поросячий визг из-за своей некомпетентности в вопросе, потому что те кто может платить больше, позволяют себе нанимать более компетентных людей, хотя это и не всегда так), например, вот так:

1 * <1 мс <1 мс 192.168.0.1

Если вы посчитали первый ответ потерей, то вам нужно изучать принцип работы tracert, а также помнить, что сетевое оборудование можно настраивать, в том числе и на работу с ICMP, а может это не потери, а роутер настроен таким образом, чтобы игнорировать часть запросов?

Tracert прекрасно справляется со своей задачей – она отображает путь, по которому проходит IP-пакет, а также время ответа транзитных роутеров/маршрутизаторов, но при помощи данной утилиты невозможно точно оценить потери и нельзя с уверенностью сказать – на каком участке сети потери происходят, чтобы оценить потери в компьютерной сети (здесь можно почитать про основные характеристики компьютерной сети), лучше воспользоваться стандартной утилитой Windows, которая называется pathping, либо более удобной программой WinMTR или mtr в операционных системах семейства Linux.

Выводы

Итак, мы разобрались с использованием команды tracert в Windows и ее параметрами, посмотрели примеры трассировок, которые нам выводила утилита tracert, но главное нужно сделать вывод о том, что утилита tracert не такая простая, как кажется на первый взгляд, и чтобы ее правильно использовать, нужно иметь представление о том, как вообще работают компьютерные сети.
К сожалению, об этом многие забывают, если вас это не убедило, то представьте, что вы пришли к доктору на обследование, который в совершенстве умеет пользоваться своими докторскими инструментами: он знает, что стетоскоп нужно вставлять в уши, прикладывать другой его конец к груди и спине пациента, говорит дышите, не дышите, но этот доктор совершенно не знает ничего о том, как работает человеческое тело, он не понимает, что он слышит в своём стетоскопе и в конце концов поставит неверный диагноз. Аналогичная ситуация и с командой tracert, которой проще пользоваться, чем стетоскопом.

Для большинства поставщиков управляемых услуг (MSP), системных администраторов и технических специалистов, команды Traceroute и Tracert являются первыми сигналами для устранения неполадок, связанных с задержкой ​​сети или проблемами с подключением. Но что это?

Что такое Traceroute и Tracert

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

В Windows эта команда называется Tracert, а в Linux и MacOS – Traceroute.

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

Traceroute сопоставляет каждый переход, предоставляет подробную информацию и время приёма-передачи (RTT), а также, по возможности, сообщает имя устройства и IP-адрес.

В то время как команда Ping может сообщить, есть ли проблема, Traceroute поможет вам точно определить, где именно она образовалась.

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

Как работает Traceroute и Tracert?

  1. По протоколу UDP (User Datagram Protocol – «протокол пользовательских датаграмм») Traceroute отправляет последовательность IP-пакетов. Всего таких пакетов по умолчанию может быть 3.
  2. Первый пакет имеет время жизни (также известное как TTL (Time To Live) или лимит переходов), равное 1, второй пакет имеет TTL=2 и так далее.
  3. Каждый раз, когда пакет передается новому маршрутизатору, TTL уменьшается на 1. Это сделано для предотвращения проблем с зацикливанием между серверами. Если бы не было TTL, пакет мог бы бесконечно долго перебрасываться между серверами.

Когда время жизни достигает 0, пакет отбрасывается, а маршрутизатор возвращает сообщение об ошибке. Отправляя пакеты таким образом, Traceroute гарантирует, что каждый маршрутизатор на пути отклонит пакет и отправит ответ.

Всё о трассировке

Что такое трассировка?

Трассировка или точнее распределённая трассировка – это возможность отслеживать запросы по мере их прохождения через распределённые системы путём сбора данных о том, как они передаются от одной службы к другой.

Данные трассировки помогают понять поток запросов и определить, где в системе возникают сбои или проблемы с производительностью и почему.

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

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

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

Одна трассировка маршрута даёт представление о:

  • каждом шаге, через который прошёл запрос;
  • количестве времени, затраченном на каждое действие;
  • общем времени, которое понадобилось на его обработку.

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

Эта информация бесценна для отладки сложных проблем и оптимизации вашей системы.

Как работает трассировка?

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

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

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

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

Используя трассировку, разработчики могут визуализировать весь путь запроса – от интерфейса к серверу – и точно определить любые сбои производительности, которые возникают на этом пути.

Платформы трассировки начинают собирать данные в момент подачи запроса. Например, когда пользователь отправляет форму на веб-сайте. Это создаёт уникальный идентификатор трассировки.

Этот процесс позволяет идентифицировать каждый запрос, вызов и процесс и соответствующим образом расставлять приоритеты в своих усилиях по устранению неполадок.

Для получения результатов трассировки в том числе используются команды Traceroute и Tracert.

Разница между Traceroute и Tracert

Принцип работы у Traceroute и Tracert один, однако разница между ними состоит не только в операционных системах.

Напоминаем, что команда Tracert обслуживает Windows, а Traceroute работает на Linux и MacOS.

Tracert

  1. Tracert, в отличие от своего Linux-двойника, реализован на основе протокола ICMP, а не UDP.
  2. Tracert отправляет эхо-запрос ICMP (ICMP Echo Request) с TTL=1.
  3. Первый маршрутизатор проверяет адрес назначения, чтобы выяснить был ли отправлен запрос именно ему.
  4. Узнав, что цель пакета – другой хост, маршрутизатор отбрасывает его, и TTL становится равным 0.
  5. Затем маршрутизатор 1 отправляет ICMP-сообщение с указанием информации о себе и причине проблемы источнику пакета: «Time-To-Live Exceeded» или «Time Exceeded in transit».
  6. Благодаря этому сообщению Tracert записывает маршрутизатор 1 как первый транзитный участок или, как его ещё называют, «хоп, прыжок».

Процесс передачи пакета между промежуточными маршрутизаторами продолжится, пока переменная (TTL ICMP-запроса), не станет равна количеству «прыжков» между узлом-отправителем и узлом-получателем, и пакет не будет получен хостом назначения или количество сетевых переходов не превысит максимальное значение для Tracert – 30.

  1. Когда целевой хост проверит IP-адрес назначения и узнает, что запрос был направлен именно ему, он отправит эхо-ответ ICMP (ICMP Echo Request), что даст утилите понять, что процесс передачи завершён.

Traceroute

В чём ещё отличие Traceroute от Tracert? В Traceroute схема схожая, практически идентичная.

Целевому хосту направляется фрагментированный UDP-запрос. Таким образом, отправляется сразу несколько пакетов с TTL: TTL=1, TTL=2 и TTL=3.

Вот только раз эта утилита не отправляет эхо-запрос ICMP, как она понимает, что трассировка подошла к концу?

Всё просто: в каждом пакете содержатся данные о порте отправителя (Source) и порте получателя (Destination). Destination порт по умолчанию закрытый (34434), поэтому утилита Traceroute сразу понимает, что процесс передачи данных завершён, когда получает ответ с сообщением о недоступности порта «Destination port unreachable» (Хост/Порт недостижим). Иными словами, запрос достиг целевого хоста.

Как использовать Traceroute и Tracert?

В основном пользователи могут использовать команду Traceroute или Tracert через обычную командную строку. Однако точный метод его запуска зависит от операционной системы компьютера.

Давайте посмотрим, как запустить команду Traceroute или Tracert в Windows, Linux и macOS.

Tracert – Windows

  1. Перейдите в меню Пуск.
  2. Выберите Выполнить.
  3. Введите cmd и нажмите ОК. Это откроет командную строку.
  4. Введите команду tracert и затем впишите имя хоста или IP-адрес назначения. Пример: tracert www.nic.ru
  5. Нажмите Enter.

Traceroute – Linux

  1. Откройте приложение Терминал. Это можно сделать при помощи сочетания клавиш CTRL + Shift + T.
  2. Впишите команду traceroute вместе с именем хоста или IP-адресом. Пример: traceroute www.nic.ru
  3. Нажмите Enter.

Traceroute – MacOS

Раньше это действие можно было выполнить через встроенное приложение Сетевая утилита, но на данный момент она не поддерживается компанией Apple. Поэтому:

  1. Запустите приложение Терминал.
  2. Введите команду traceroute и имя хоста или IP-адрес назначения. Пример: traceroute www.nic.ru
  3. Нажмите Enter.

Также можно добавить дополнительные параметры в команду Traceroute или Tracert, чтобы сделать ваши результаты более точными. Вот некоторые расширенные параметры трассировки:

Команда Описание
-d Команда Traceroute в Linux по умолчанию отправляет пробные пакеты UDP. Вы можете использовать эту опцию, чтобы преобразовать их в пакеты ICMP.
-h maximum_hops Укажите максимальное количество переходов, включённых в процесс Tracert. Если вы не измените значение, оно будет соответствовать максимальному значению по умолчанию, равному 30 хопам.
-n Поможет исключить доменные имена из результатов Traceroute.
-q number of packets По умолчанию Traceroute отправляет три пакета. Вы можете изменить это число с помощью этой опции, за которой следует указать нужное количество пакетов.
-m max_ttl Укажите максимальное количество переходов для процесса трассировки. Значение по умолчанию равно 30.
-w wait_time Установите максимальное время ожидания для каждого ответа.
-p Установите порт назначения для запроса.
-f Укажите с какого TTL начать. По умолчанию значение равно 1.
-4 Задействование протокола IPv4.
-6 Задействование протокола IPv6.

Как читать результаты Tracert

После выполнения команды Tracert или Traceroute система представит результаты в виде множества строк. Отчёт может несколько отличаться в зависимости от вашей операционной системы, но обычно он содержит одну и ту же информацию.

Стандартные результаты Tracert или Traceroute включают в себя несколько строк, описывающих каждый переход, который проходит пакет для достижения хоста назначения. Каждая строка разделена на столбцы с различной информацией.

Давайте рассмотрим каждый столбец и его детали.

Число хопов Имя хоста/IP-адрес RTT 1 RTT 2 RTT 3
5 83.169.204.90 182.729 ms 174.127 ms 165.767 ms
8 192.168.43.1 5.735 ms 8.287 ms 6.694 ms
9 198.18.8.1 24.408 m 33.209 ms 26.241 ms

Число хопов – первый столбец количество сделанных “прыжков”.

IP-адрес или имя хоста – этот столбец раскрывает IP-адрес или имя хоста устройства на этом конкретном переходе.

RTT – это круговая задержка или время приёма-передачи, которое показывает, сколько времени требуется каждому пакету, чтобы достичь определенного IP-адреса и вернуться на ваш компьютер. Существует три разных столбца RTT, так как Traceroute по умолчанию отправляет три UDP-пакета.

Если время трассировки истекает на определенном узле, это может означать, что в данном месте возникла проблема или что маршрут неверен, что не позволяет пакету достичь пункта назначения. В результатах это представлено как:

Число хопа Имя хоста/IP-адрес RTT 1 RTT 2 RTT 3
13 (Request timed out.) * * *

Заключение

Команда Traceroute и Tracert – это полезный и простой в использовании инструмент диагностики сети. Как правило, это ещё и первый способ устранения неполадок с подключением.

В этой статье вы узнали, чем эта утилита может отличаться в зависимости от вашей операционной системы, как использовать команду и читать полученные результаты.

Если с вашим каналом связи постоянно возникают проблемы, при этом сотрудники службы поддержки провайдера часто пожимают плачами, говоря, что на своей стороне они не видят проблем – выход есть! Утилита tracert может помочь разобраться – на каком узле может быть проблема.

Содержание

  1. Назначение команды
  2. Основные моменты работы и анализ
  3. Оправляемые пакеты
  4. Ключи для команды
  5. Задать вопрос автору статьи

Назначение команды

«Tracert» – это набор функций в Windows, разрешающих выполнять трассировку маршрута до указанного узла сети (локальной и глобальной). Утилита интегрирована в ОС и ее можно запустить через «CMD» или «PowerShell». Исполняемый файл «tracertpt.exe» находится в системном разделе папки System32.

Расположение утилиты в папке Windows

Команда «tracert» достаточно частый гость во время сетевой диагностики и troubleshooting. С ее помощью определяется маршрут, по которому следует пакет до выставленного узла. Преимущество программы: работа с доменными именами, IPv4 и IPv6. Кроме определения маршрута, программа выявляет и демонстрирует время прохождения пакетов до транзитных, промежуточных и конечных узлов.

С помощью команды можно узнать:

  1. На каком уровне заблокировался веб-ресурс: на уровне локальной сети (пакет не доходит до основного маршрутизатора), в сети провайдера (коммутатор L3 не пропускает пакет далее), на уровне промежуточного сервера или конечного (проблема на стороне сервера).
  2. На каком этапе пути пакеты данных сбиваются с маршрута и вместо нужного адресата вас перенаправляет на другой (например, на сайт с рекламой).
  3. Конечный сайт является точно тем, за который себя выдает.

Основные моменты работы и анализ

Чтобы провести трассировку пакетов данных от собственного ПК до сервера, введите его IP-адрес после основной команды.

Пример трассировки

Как видно на примере, введя команду, а затем IP-адрес, было определено, что это айпишник Яндекс сервера. Также были выявлены транзитные узлы, через которые приходится пройти пакету, чтобы попасть к конечному серверу «yandex.ru».

Примечательно, что команда понимает и доменные имена, выявляя их IP-адреса автоматически.

Результат трассировки

Когда вводится команда для трассировки маршрута, каждая пронумерованная строка называется шагом, прыжком (jump) или хопом.

Джампы, которые наблюдаются при работе утилиты, это роутеры, серверы или коммутаторы L3 провайдера. Важно отметить, что провайдеры могут использовать для подключения множества абонентов коммутаторы L2, которые обрабатывают и регистрирует МАС–адреса поступающих фреймов, осуществляют физическую адресацию и управляют потоком данных.

Таких коммутаторов в инфраструктуре сети провайдера могут быть десятки. Их не регистрирует «ТрасеРТ» из-за того, что L2 коммутаторы не используют IP-адреса. Пакет не задерживается на них и не фиксирует эти устройства, воспринимая их не более чем обычный кабель витой пары или оптоволокна.

СОВЕТ! Буква L обозначает уровень, на котором работает коммутирующее устройство – советую почитать про уровни модели OSI.

Делая запрос, утилита отправляет три запроса (TTL) на каждый шаг, получая от шага ответы. При отсутствии ответа, может указываться «*» в трех столбцах. В последнем столбце можно получить небольшую подсказку, с чем связано получение символа «*». Превышение интервала будет указано в случае, если ожидание превысило показатель в 4 секунды.

Звездочки не всегда значат, что порт неисправен или недоступен. Вероятно, они настроены таким образом, что не могут ответить на запрос ICMP-сообщением из-за того, такие настройки часто используются для защиты интернет ресурсов от DDoS-атак.

При получении пакета первые три столбца содержат данные RTT и знаменуют количество мс, за которые пакет прошел от узла к узлу. Четвертый столбец указывает IP-адрес (или доменное имя конечного адресата) тех узлов, что ответили.

Более подробно про механизм трассировки читаем тут.

Оправляемые пакеты

Диагностика сети происходит благодаря посылаемым пакетам. Утилита «Tracet» в Windows работает с протоколом ICMP. Еще, есть команда traceroute – она входит в дистрибутивы Linux и присутствует в качестве функций однотипных приложений, например, Linux Mint. Последняя использует UDP-протокол для посылания по узлам сети.

Также, наличие перл-библиотеки, graphviz и подтянутого скрипта разрешает после выполнения основного программного запроса вывести узлы трассировки в графическую tracemap.

При этом файл сохранится в «tracemap.png» и будет похож на карту, представленную ниже.

Карта трассировки

ICMP-сообщение запаковывается в IP-пакет перед самой отправкой. У такого сообщения есть собственное время жизни (TTL – time to live). При каждой отправке пакета TTL увеличивается на 1. Первый отправленный в сети пакет равен 1. Команда в качестве дефолтных настроек посылает 3 пакета с одинаковым TTL чтобы в качестве ответа от узла были получены также 3 пакета.

Дефолтное значение TTL, используемое трассировкой равно 30. Однако, IPv4 протокол способен на максимальный TTL в 255 единиц. Опытным путем было определено, что TTL в районе 30 шагов будет достаточно, чтобы добраться до конечных узлов определяемых веб-ресурсов.

Ключи для команды

Дополнительные параметры команды

Чтобы полноценно закрепить материал и понять – как работает трасерт, и какими значениями есть возможность оперировать, воспользуйтесь специальными ключами. Запустите .exe-файл «tracetcp» или программу через командную строку и введите tracert /? Для вывода всех ключей и их значений на экран.

Вот основные:

Ключ Назначение
-d В 4 столбце выводит только IP-адреса (ускорение трассировки)
-h Выставление количества прыжков ограничением (макс TTL – 255, по умолчанию – 30)
-w Выставление таймаута ответов в мс
-j Маршрут выбирается по представленному после ключа списку веб-узлов (доступно в IPv4)
-R Провести трассировку пути по IPv6
-S Начало трассировки с того узла, что задан после ключа
-4 Прыжки только по протоколам IPv4
-6 Прыжки только по протоколам IPv6

Иногда возникает ситуация: сайт не открывается при обращении к своему имени. Чаще всего такое происходит после регистрации домена или изменений настроек DNS для домена.

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

Для этого нам понадобится воспользоваться двумя утилитами, которые встроены в ОС Windows: ping и tracert.

Команда ping

Итак, нажмите на сочетание клавиш Win+R на клавиатуре или откройте Пуск -> Выполнить. В появившемся окне наберите cmd

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

где site.com — имя Вашего домена.

После ввода нажмите Enter и дождитесь выполнения команды.

Теперь полученный результат необходимо скопировать. Для этого щелкните правой кнопкой мыши в области консоли и в контекстном меню выберите пункт «Пометить«.

После этого мышью выделите необходимую область с текстом и нажмите Enter. Теперь результат скопирован в буфер обмена, и Вы можете вставить его, куда Вам необходимо. Например, отправить его сотруднику технической поддержки, вставив в поле ввода сообщения (Ctrl+V).

Команда tracert

Для того, чтобы сделать трассировку, Вам необходимо вместо команды ping ввести команду:

После чего надо нажать Enter, дождаться ее выполнения и таким же образом скопировать результат в буфер обмена.

Telnet и nslookup

Также желательно выполнить следующие команды для диагностики — это telnet и nslookup.

Скорее всего, если попробовать выполнить команду telnet, то возникнет следующее сообщение:

"telnet" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.

Давайте установим его. Откроем Пуск -> Панель управления:

Выбираем пункт Программы:

Нажимаем Включение или отключение компонентов Windows:

Ставим галочку напротив Клиент Telnet и нажимаем OK:

Ожидаем загрузки:

Возвращаемся к командной строке и вводим команду:

и нажимаем Enter:

Видим пустую консоль — это означает, что подключение к сайту идет успешно, нажимаем Ctrl+C

Теперь выполним команду nslookup. Вместо beget.com подставляем домен Вашего сайта:

Удачной работы! Если возникнут вопросы — напишите нам, пожалуйста, тикет из Панели управления аккаунта, раздел «Помощь и поддержка».

  • Команда trim в windows 10
  • Команда subst в windows 10
  • Команда slmgr для windows 10
  • Команда shell startup windows 10
  • Команда run в windows 10