Tutorial on Tracert (Traceroute) – Command-Line Tool to Diagnose Network Routing Issues [Examples]

Are there alternatives to the traceroute command?

Yes, there are various alternatives to the traceroute commands like MTR command, Dig command, Open Visual Traceroute, Nmap.

MTR command (Linux and macOS)

Example of traceroute (tracert on windows)

The name of Traceroute on Windows is Tracert. It works very similar to the version on the other operating systems.
Traceroute

And this is how the Traceroute command looks on Linux and macOS:

High latency in the middle that remains consistent

If you see a hop jump but remain consistent throughout the rest of the report, this does not indicate an issue.

1  <1 ms     <1 ms       <1 ms 173.247.246.116
2  30 ms      7 ms       11 ms 10.10.0.2
3  93 ms     95 ms       92 ms 4.71.136.1
4  95 ms     99 ms      101 ms ip10-167-150-2.at.at.cox.net [70.167.150.2]
5  99 ms    100 ms       98 ms 100ge7-1.core1.nyc4.he.net [184.105.223.166]
6  95 ms     95 ms       95 ms 10g1-3.core1.lax2.he.net [72.52.92.122]
7  95 ms     96 ms       94 ms 205.134.225.38]

How to open command prompt

To use this utility, you will need to launch the Command Prompt window. The three common ways to launch the Command Prompt window are:

  1. Search for cmd using the built-in Windows search tool.
  2. Right-click on the Start icon and select Command Prompt.

    Tutorial on Tracert (Traceroute) - Command-Line Tool to Diagnose Network Routing Issues [Examples]

  3. Press the keyboard combination WinKey R, then type cmd at the Run window that appears.

    Run cmd

 Back to Top

How to run a traceroute on windows 10

In this tutorial, we let you know how to run a Traceroute on Windows 10, Windows 8, Windows 7 or Vista/XP using Command prompt.

What is Traceroute?

It is a tool to check the route (Path) and measure the transit delay packets across Internet Protocol (IP) network. In general language, traceroute tool allows the user to trace the routing of the data packets triggers from your PC to destination pc or device.

You can use the traceroute command on Windows system easily using the command prompt and on Unix-like systems such as FreeBSD, macOS, and Linux it is available as a command line tool too. Sometimes for Internet Protocol Version 6 (IPv6)  traceroute called as traceroute6 or tracert6.

 So, let’s see how to run traceroute command in Windows 10,8, & 7 using the command prompt.

  1. To Run traceroute first go to Windows 10 system.
  2. Open the Command prompt either by start button or type the CMD in the search box of the Windows 10
  3. Another method to open the command prompt is using the Run box. Press Win R and type CMD and then press the Enter button.
  4. When the CMD opens type tracert along with the IP or Host you want to trace.
  5. The Traceroute will take maximum around 30 hops.

Tutorial with screenshots:

Step 1: Go to the search box of your Windows 10/8/7 operating system and type CMD. Click on the Command prompt when it appears.

commadn prompt trace route

You can also use the run box to access the Windows command prompt. Just press the Windows key R from your keyboard, type CMD and hit the enter button.

run trace route command

Step 2: Running the Traceroute tool on Windows is a piece of cake. You just need to type the tracert followed by the hostname or IP address. For more info please refer the below-given screenshot.

run traceroute windows 10

The traceroute command on Windows can be used with further parameters to get more out of it. 

ParameterUsageDescription
-dtracert -dThis traceroute parameter used to not resolve addresses to hostnames.
-htracert -h maximum_hopsLimit or specify maximum number of hops
-jtracert -j  host-listLoose source route along host-list (IPv4-only).
-wtracert -w timeout target_hostNumber of milliseconds wait for each reply.
-rtracert -rTrace round-trip path (IPv6-only).
-stracert -sSource address to use (IPv6-only).
-4tracert -4Force using IPv4.
-6tracert -6Force using IPv6.

Traceroute options for macos

While the Traceroute command on macOS is very similar to its Linux version, there are small differences in their options.

Tracert -d – skip reverse lookup to speed up tracert

By default, tracert will perform a reverse IP lookup to identify the hostname for each hop. If there is no hostname available, tracert will have to wait for a timeout before it continues to the next hop. Waiting for the timeout can account for the majority of time it take tracert to complete a trace.

Tracert parameters

 Back to Top

Tracert syntax

tracert [-d] [-h <MaximumHops>] [-j <Hostlist>] [-w <timeout>] [-R] [-S <Srcaddr>] [-4][-6] <TargetName>

 Back to Top

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

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

:/>  Ключи 2016 бесплатные, для версии профессиональный плюс

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

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

В данном случаем мы видим путь прохождения IP-пакета от моего ПК до сервера Яндекс, чтобы указать утилите tracert удаленный узел, мы воспользовались IP-адресом. Но эта команда может работать и с доменными именами, давайте посмотрим, сделав трассировку маршрута до сервера 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 не стоит паниковать в тех ситуациях, когда вы видите звездочки вместо времени ответа удаленного узла, дело в том, что ICMP-протокол иногда используется для сетевых атак (например, DDoS) и некоторые сетевые инженеры и системные администраторы предпочитают настраивать свои устройства таким образом, чтобы они не отвечали на ICMP-запросы.

:/>  Как отключить уведомления Windows 10 | remontka.pro

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

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

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

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

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

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

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

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

Example tracert result of a failed hop

The following is an example of a tracert result.showing a failed hop.Starting with hop 9, we see all hops from that point forward are not responding. This indicates hop 9 is faulty or mis-configured and not forwarding traffic to the next hop. Hop 9 is where you want to start your troubleshooting.

1    13 ms    22 ms    25 ms  52.93.114.64
1    <1 ms    <1 ms     1 ms  54.239.108.177
2    <1 ms    <1 ms    <1 ms  64.125.12.29
3     2 ms     2 ms     2 ms  64.125.31.41
4     65 ms    65 ms    65 ms  64.125.30.248
5     65 ms    66 ms    65 ms  64.125.29.45
6     65 ms    65 ms    65 ms  64.125.28.103
7     82 ms    65 ms    65 ms  64.125.26.183
8     65 ms    65 ms    65 ms  64.125.31.49
9     *        *        *      Request timed out
10    *        *        *      Request timed out
11    *        *        *      Request timed out
12    *        *        *      Request timed out
13    *        *        *      Request timed out

 Back to Top

Example tracert result of a routing loop problem

The following is an example of a tracert result showing a routing problem. Starting with hop 8 and hop 9, our packet is bouncing back and forth between these two routers (routing loop). The packet will continued to be passed between 64.125.31.49 and 216.200.159.

1    13 ms    22 ms    25 ms  52.93.114.64
1    <1 ms    <1 ms     1 ms  54.239.108.177
2    <1 ms    <1 ms    <1 ms  64.125.12.29
3     2 ms     2 ms     2 ms  64.125.31.41
4     65 ms    65 ms    65 ms  64.125.30.248
5     65 ms    66 ms    65 ms  64.125.29.45
6     65 ms    65 ms    65 ms  64.125.28.103
7     82 ms    65 ms    65 ms  64.125.26.183
8     65 ms    65 ms    65 ms  64.125.31.49
9     65 ms    65 ms    72 ms  216.200.159.42
10    64 ms    65 ms    64 ms  64.125.31.49
11    66 ms    66 ms    66 ms  216.200.159.42
…
…
…
29    64 ms    65 ms    66 ms  216.200.159.42
30    64 ms    64 ms    64 ms  64.125.31.49

 Back to Top

Example of a good tracert result

The following is an example of a good tracert result. On hop 9, the device did not respond, as indicated with the asterisks.. However, because hop 10 responded, we know hop 9 was able to handle the packet to move to forward to the next hop. In this scenario, the router on hop 9 is likely configured to not response to ICMP packets, but it is functioning properly to in routing data packets. A tracert result with no asterisks is also a good result.

1    13 ms    22 ms    25 ms  52.93.114.64
1    <1 ms    <1 ms     1 ms  54.239.108.177
2    <1 ms    <1 ms    <1 ms  64.125.12.29
3     2 ms     2 ms     2 ms  64.125.31.41
4     65 ms    65 ms    65 ms  64.125.30.248
5     65 ms    66 ms    65 ms  64.125.29.45
6     65 ms    65 ms    65 ms  64.125.28.103
7     82 ms    65 ms    65 ms  64.125.26.183
8     65 ms    65 ms    65 ms  64.125.31.49
9     *        *        *      216.200.159.42
10    64 ms    65 ms    64 ms  64.93.85.25
11    66 ms    66 ms    66 ms  64.93.75.18
12    65 ms    65 ms    65 ms  72.10.63.118
13    64 ms    64 ms    64 ms  72.47.244.140

 Back to Top

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

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

:/>  windows - For loop and delims in batch files - Stack Overflow

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

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

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

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

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

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

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

Conclusion

By using the newly collected data, you can see if there is any problem on the route (not responsive server or very slow one) and later focus your attention to fix it. If you want to see few more tools you can check one of our previous article Тools – DNS trace, Ping, Traceroute, Nslookup, Reverse lookup.

(Visited 68,872 times, 51 visits today)

Tags:

Last modified: June 25, 2021

Выводы

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

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

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

Adblock
detector