Command-Line Tool to Diagnose Network Routing Issues [Examples]

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

Traceroute — это утилита, которая позволяет проследить маршрут следования данных до удалённого адресата в сетях TCP/IP. В Linux используется команда Traceroute, а в Windows — Tracert. При помощи этих команд можно увидеть путь пакета данных от вашего компьютера до целевого сервера или сайта.

The tracert (which is short for trace route) is a Windows network command-line utility used to help diagnose network routing issues. If you are familiar with Linux, this tool is similar to traceroute. With tracert, you can learn details about each router (hop) that make up your network connection pathway to a remote device. It can help to determine why your connections may be poor and can help you identify where exactly the problem is.

These commands shown here are tested on a computer with Windows 10 but most will work in other versions of Windows as well.

Само понятие трассировки разнится. Кто-то утверждает, что это полученные данные, в то время, как traceroute – это программа, помогающая определить следование (маршрутизацию) данных в сетях IP/TCP.

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

The Traceroute command is one of the easiest yet most effective ways of troubleshooting network issues. It is great software for checking the route from a computer to a hostname or an IP address. Almost every operating system includes it, so you can use Traceroute regardless of the kind of computer you are using.

Overview

The tracert utility is a Windows command-line tool used to diagnose network issues. It is used to report pathway between one network device to another. By using tracert, we can identify the route your connection takes to reach the remote device. The network pathway typically requires traversing multiple routers (refer to as hops) to reach the remote device. This makes troubleshooting network connectivity issues a bit more involved as there are many devices that can contribute to the problem. With the tracert tool, you’ll be able to check on connection problems with ease as it can help you identify the specific device that is causing problems. It will trace the pathway your connection takes to the destination by providing information on each device (typically a router) and on its progress.

It is important to be aware that tracert result is a single snapshot of the network at the time it was performed. You should perform tracert multiple times to ensure you have a fair sampling of data to use in your troubleshooting efforts.

Что такое Traceroute и Tracert

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

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

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

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

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

Знакомая многим ситуация: компьютер включен, доступ в Интернет есть, но не открывается какой-то определенный сайт или сервер в сети. Например: не доступен игровой сервер или игра сильно тормозит при подключении к нему. Что делать? Ответ прост – проверка на пинг и трассировка! Другими словами можно проверить доступность сетевых ресурсов с помощью диагностических методов, самые распространённые из которых — утилиты Ping, Tracert/Traceroute и MTR/WinMTR. Давайте рассмотрим подробно каждую из данных утилит.

  • Утилита Ping
  • Трассировка маршрута в сети: команды tracert и traceroute
  • Использование утилит MTR и WinMTR для диагностики сети

Сетевая утилита Ping — это самый простой способ проверить доступность любого сетевого ресурса. При условии, что у этого ресурса открыты «пинги» из вне, то есть разрешено использование протокола ICMP.

Как это работает? Команда Ping отправляет небольшие пакеты с данными на сервер, который надо проверить. В ОС Windows по умолчанию посылается серия из 4-х таких пакетов. В ОС Linux пакеты посылаются непрерывно, пока пользователь не прервёт операцию. Спустя некоторое время от сервера приходит ответ — в виде тех же пакетов, какие и были отправлены. Если число отправленных и полученных пакетов совпадает — это значит сервер «живой» и никаких проблем с его доступностью не наблюдается.

Как пропинговать сайт или сервер в Windows?

Нажимаем правой кнопкой мыши на кнопку «Пуск» чтобы открылось дополнительное меню. Там надо выбрать вариант «Терминал»( в Windows 10 это «Командная строка»):

Command-Line Tool to Diagnose Network Routing Issues [Examples]

Command-Line Tool to Diagnose Network Routing Issues [Examples]

Смотрим результат: отправлено было 4 пакета размером по 32 байта. Время прохождения каждого пакета составило в среднем 22 мс. Все отправленные пакеты дошли до сервера и вернулись обратно.

Command-Line Tool to Diagnose Network Routing Issues [Examples]

По умолчанию команда Ping в ОС Windows отправляет всего 4 пакета данных.

Чтобы отправить больше пакетов, можно задать их количество с помощью параметра –n. Пример для отправки 10 тестовых пакетов:

ping –n 10 yandex.ru

Результат будет таким:

Command-Line Tool to Diagnose Network Routing Issues [Examples]

Как вариант, можно использовать команда ping с параметром «-t», чтобы пинговать сервер бесконечно, до принудительного прекращения задачи, как в Linux. Команда будет выглядеть так:

ping ya.ru -t

Пример выполнения команды пинг:

Command-Line Tool to Diagnose Network Routing Issues [Examples]

Вот так выглядит результат выполнения команды Ping на недоступный сетевой ресурс или хост, на который закрыты ICMP-пакеты.

Command-Line Tool to Diagnose Network Routing Issues [Examples]

Как проверить пинг до сервера в Linux?

Command-Line Tool to Diagnose Network Routing Issues [Examples]

В отличие от систем семейства Windows, по умолчанию проверка пинга в Linux идет непрерывно, пока пользователь не прервёт этот процесс с помощью комбинаций клавиш Ctrl + C.

В Linux так же можно задавать нужные параметры с помощью аргументов, но они могут отличаться от аргументов в ОС Windows, которые я показывал выше. Например в Линуксе количество тестовых пакетов задаётся через агрумент «-c», а не через «-n». Для того, чтобы увидеть все доступные агрументы команды Пинг — введите вот такую команду:

Command-Line Tool to Diagnose Network Routing Issues [Examples]

Как видите, аргументов очень много, что позволяет провести очень тщательную сетевую диагностику доступности удалённого узла сети

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:

  • Search for cmd using the built-in Windows search tool.
  • Right-click on the Start icon and select Command Prompt.
  • Press the keyboard combination WinKey + R, then type cmd at the Run window that appears.

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

Если у вас кириллический домен

Кириллические домены необходимо вводить в формате Punycode. Для перевода домена в Punycode воспользуйтесь сервисом.

Выполним команду Traceroute в Linux на примере Ubuntu 20.04:

  • Откройте терминал при помощи комбинации клавиш CTRL + Shift + T или введите в поиске слово «Терминал».
  • Введите команду traceroute domain.name. Вместо domain.name укажите домен:

Command-Line Tool to Diagnose Network Routing Issues [Examples]

Вывод команды будет содержать:

  • порядковый номер маршрутизатора (узла),
  • имя узла,
  • круговую задержку (время, потраченное на отправку запроса и получение ответа).

Команда Traceroute в Windows 10 отсутствует, поэтому следует воспользоваться Tracert:

  • Нажмите комбинацию клавиш Win + R.
  • Введите cmd и нажмите Enter.

Вывод команды tracert будет выглядеть следующим образом:

  • порядковый номер маршрутизатора (узла),
  • круговая задержка (время, потраченное на отправку запроса и получение ответа),
  • имя узла,
  • порядковый номер узла,
  • имя узла,
  • круговую задержку (время, потраченное на отправку запроса и получение ответа).

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

Traceroute options for Linux

rDNS explained in detail

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

  • Первый пакет имеет время жизни (также известное как TTL (Time To Live) или лимит переходов), равное 1, второй пакет имеет TTL=2 и так далее.
  • Каждый раз, когда пакет передается новому маршрутизатору, TTL уменьшается на 1. Это сделано для предотвращения проблем с зацикливанием между серверами. Если бы не было TTL, пакет мог бы бесконечно долго перебрасываться между серверами.

Command-Line Tool to Diagnose Network Routing Issues [Examples]

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

How does it work?

When you run a traceroute, you send an IP packet containing the source and destination addresses and the time to live (TTL) for each hop. TTL in packets decreases with each hop. This is to avoid server looping issues. Furthermore, when the TTL is reached, the packet expires and is discarded. When this occurs, Traceroute returns to the sender ICMP Time Exceeded messages (RFC 792). Because small TTL settings cause packets to expire quickly, traceroute forces all routers in a packet’s path to produce the messages that identify the router.

Command-Line Tool to Diagnose Network Routing Issues [Examples]

Tracert – Trace Route to a Specific IP Address

It can take a few minutes for the trace to complete. If you wish to abort a trace, press CTRL+C on your keyboard.

As the illustration below shows, each time the data packet reaches a router (a hop) along its way to the destination, tracert will report back information about that router. This information include the IP address and hostname, if available, of the router, and the time it took between each hop.

:/>  Что за папка Windows.old, и зачем она нужна?

Command-Line Tool to Diagnose Network Routing Issues [Examples]

Distinction between Ping and Traceroute

and Traceroute are tools for analyzing networks. However, the Traceroute is a little more advanced. For example, ping will check the connectivity between two hosts but does not reveal the route between them. On the opposite, the Traceroute shows every stop between the source and the final destination. This can be helpful when connectivity is patchy, such as when only 50% of ping attempts between two places are thriving.

So, to sum up, the Traceroute command can be used to identify connectivity issues, while ping is a quick approach to determine whether a host is reachable over a network. Both of these commands are beneficial to be aware of because knowing how they operate and what their output denotes can be very valuable when analyzing network connectivity issues.

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

И UDP и ICMP-протоколы используются командой Traceroute. UDP используется по умолчанию. Чтобы воспользоваться ICMP, добавьте в команду ключ -I:

traceroute -I domain.name

Для чего это нужно? Оборудование может быть настроено на то, чтобы не отвечать на подобные запросы. Если вы увидите в выводе символы * * *, это может значить, что маршрутизатор отклонил пакет и не отправил ответ. Звёздочки в выводе не означают, что у узла проблемы. Соединения может фильтровать Firewall, который стоит перед узлом. Это делается специально, чтобы снизить нагрузку. Пример такого вывода команды:

Command-Line Tool to Diagnose Network Routing Issues [Examples]

В этом случае попробуйте воспользоваться ключом -I:

Command-Line Tool to Diagnose Network Routing Issues [Examples]

Ключ -I требует root-привилегий. Если команда не выполняется, добавьте в начало sudo:

sudo traceroute -I domain.name

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

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. If knowing the hostname is not important for your troubleshooting efforts, you can use the -d switch to skip this lookup.

Command-Line Tool to Diagnose Network Routing Issues [Examples]

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

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

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

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

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

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

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

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

When will you need it?

Here are several scenarios where using a traceroute to diagnose a problem you are having can be necessary.

Run a traceroute from your computer to your website if you find it is operating slowly. With it, you will check for networking issues between your location and the server.

What is the Traceroute command?

There are a variety of switches (sub commands) available with the tracert utility that allows your to configure how it behaves

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

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

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

  • Tracert, в отличие от своего Linux-двойника, реализован на основе протокола ICMP, а не UDP.
  • Первый маршрутизатор проверяет адрес назначения, чтобы выяснить был ли отправлен запрос именно ему.
  • Затем маршрутизатор 1 отправляет ICMP-сообщение с указанием информации о себе и причине проблемы источнику пакета: «Time-To-Live Exceeded» или «Time Exceeded in transit».
  • Благодаря этому сообщению Tracert записывает маршрутизатор 1 как первый транзитный участок или, как его ещё называют, «хоп, прыжок».

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

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

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

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

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

Other Usages and Getting Help

Command-Line Tool to Diagnose Network Routing Issues [Examples]

Why use the Traceroute or the Tracert command?

The benefits of using the traceroute command or its alternative for Windows called tracert command are:

  • Complete route list. You will see all the routers on the way, with their IP addresses and the time it took. You can better understand the network.
  • Route timing. See how much time does it take to finish the query. Is it ok for you? What can you do to speed it up? You can have a starting point for improvements.
  • It is built-in. You don’t need to install additional software, and its use is free.
  • Check if you can reach a target. See if there is a connection between your device and the hostname or IP address you put in the command.
  • See problematic slow router. You can see how much time it took in each hop. So you can see a spot that significantly slows your network. You can fix the problem or add more presence in the area.

The TTL and Traceroute

Each packet that you send contains a TTL (time to live). It is not a time but a limit of hops it can do before getting the result.

Starting at 30, on the next hop, it will drop to 29 and so on. If it can’t find the domain or IP that you wanted it will display a message where did it fail, so you will know where the problem is.

Summary

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

Tracert – Trace Route to a Specific Website

Command-Line Tool to Diagnose Network Routing Issues [Examples]

Tracert -h – Set the Maximum Number of Hops to Trace

By default, tracert will trace the complete pathway from your computer to the remote host. However, sometimes you only need to trace up to a specific router or a specific number of hops. Limiting a trace to just a specific number of hops will help you use tracert more efficiently. By using the -h switch, you can specify the maximum number of hops tracert will go through.

Command-Line Tool to Diagnose Network Routing Issues [Examples]

Использование утилит MTR и WinMTR для диагностики сети

Хочу рассказать о ещё одной очень полезной для диагностики сетевых проблем утилите – MTR(My traceroute). Она доступна во всех дистрибутивах Linux и сочетает в себе функционал двух перечисленных выше команд: Ping и Traceroute. Как Traceroute она выводит полную трассировку маршрута, который проходят сетевые пакеты до нужного узла. Кроме этого, в режиме реального времени, ведётся пинг до каждого из промежуточных узлов для определения время отклика информации о потерях пакетов на каждом шаге.
Запускается утилита MTR всё так же из терминала командой mtr. Пример:

Результат получился такой:

Command-Line Tool to Diagnose Network Routing Issues [Examples]

Отправка тестовых пакетов будет идти бесконечно. Чтобы остановить диагностику — нажмите комбинацию клавиш Ctrl+C.

В моём примере результат показывает, что несмотря на наличие технического узла, который не отзывается, конечный сервер доступен, а все отправленные пакеты (см. колонку Snt) проходят до конечного узла. При этом процент потерь пакетов (см. колонку Loss) равен нулю. Всё отлично!

Используя аргумент -r при вводе команды MTR, Вы  получите результат диагностики виде отчета. Информация будет выведена в консоль Linux.

Command-Line Tool to Diagnose Network Routing Issues [Examples]

Нажимаем кнопку «Start» и запускаем диагностику. Спустя пару минут смотрим результат.

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

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)

The MTR command is an improved traceroute command that can give more statistics and data for lost packets (percentage).

Dig command (Linux and macOS)

:/>  Установка драйвера через командную строку – 4apple.org

dig +trace domain.com

If you already use the Dig command, you can use it for tracing the route too.

Open Visual Traceroute (Linux, macOS, and Windows)

This one is for people who want a visual interface. It is heavier, but it can show you, in a graphical way, the route of the queries and also get Gantt graphs.

Nmap (Linux, macOS, Windows, BSD, and more)

nmap –traceroute domain.com

The results are very similar to the traceroute command.

Как выполнить Traceroute по порту

По умолчанию первый UDP-пакет отправляется на порт 34434 и на каждом узле увеличивается на 1: 34434 на первом, 34435 на втором и так далее. При помощи ключа -p порт можно указать вручную. Команда будет выглядеть следующим образом:

В Windows трассировку с указанием порта стандартными средствами выполнить нельзя, так как Traceroute в cmd отсутствует, а Tracert не умеет работать с портами.

Команды tracert и traceroute

Трассировка — еще один хороший метод диагностики связности с удалённым сервером. Смысл тут в том, что во время трассировки тоже выполняется отправка пакетов тестовых данных до сервера. Главное отличие от пинга заключается в том, что трассировка дает возможность увидеть все промежуточные узлы, через которые проходят пакеты от Вашего ПК и до конечного хоста.

Трассировка маршрута в Windows 11

В операционной системе Windows 11, а так же практически всех предыдущих версиях – Windows 10 и старше — трассировка маршрута до сетевого ресурса выполняется с помощью интегрированной в командную оболочку утилиты tracert.

Чтобы ей воспользоваться, снова открываем командную строку и пишем команду:

Так мы запустим трассировку от нашего ПК до сервера Яндекс. Пример:

Command-Line Tool to Diagnose Network Routing Issues [Examples]

Теперь смотрим в полученный результат трассировки  — он показывает весь маршрут, через который прошел запрос до сайта.

Каждая строка в трассировке — это промежуточный узел ( как правило, маршрутизатор). Эти узлы принято называть прыжками или «хопами».

В моём случае от домашнего компьютера до сайта yandex.ru совершено 7 хопов, пройдя через 5 промежуточных узлов. На каждом из прыжков указывается время, за которое тестовый пакет дошёл до этого узла и вернулся обратно.

Теперь сделаем ещё одну трассировку — google.com. И вот тут в результатах у нас появится очень интересный момент:

Command-Line Tool to Diagnose Network Routing Issues [Examples]

А именно строчка со «звёздочками». Что они означают? Многие новички этого пугаются и считают что это сетевая проблема. Это не совсем так! «Звёздочки» говорят о том, что на данном хопе ответ от сервера не получен. Проблема ли это? В этом случае — нет. Это технический узел и на пользовательские запросы он не отвечает.

Проблема была бы в том случае, если после какого-то из хопов все последующие хопы заканчивались бы звёздочками, а сама трассировка закончилась бы ничем. Вот в этом случае надо искать причину. Чаще всего она на том узле, который ответил последним. Но это не точно)))!

Как сделать трассировку в Linux

В операционных система семейства Linux тоже можно сделать трассировку. Правда там команда несколько отличается: это уже не tracert — трассировку выполняет утилита traceroute. Запускается она точно так же, как и пинг — из консоли.

В некоторых дистрибутивах утилита traceroute по умолчанию не установлена. Потому надо её установить. В Ubuntu b Debian это делается командой:
$ sudo apt install traceroute
В RHEL и CentOS — командой:
$ yum install traceroute -y

В остальном, использование данной утилиты ничем особо не отличается от того, как мы это делали в Windows 11. Для примера сделаем трассировку до Яндекса. Команда:

Command-Line Tool to Diagnose Network Routing Issues [Examples]

Как можно заметить, результат трассировки маршрута выдаётся так же по хопам. Если какой-то узел не ответил — помечается «звёздочками».

Как работают Tracert и Traceroute

Когда вы пытаетесь открыть сайт, браузер отправляет сообщение (запрос) серверу, на котором этот сайт находится. Сообщение на своём пути проходит через маршрутизаторы. Они решают, куда дальше передать сообщение, чтобы гарантированно его доставить адресату. В трассировке маршрутизаторы ещё называют хопами (хоп — прыжок) или узлами. Количество узлов, через которые на своём пути пройдёт запрос, можно узнать при помощи утилит Tracert и Traceroute. Узлы, которые не являются целевыми для запроса, называют транзитными.

Утилита Traceroute формирует UDP-датаграмму (сообщение, которое нужно доставить целевому серверу), упаковывает её в IP-пакет и передаёт первому транзитному узлу. В заголовке такого IP-пакета есть поле TTL (Time To Live) — время жизни пакета. Оно определяет количество хопов, через которые пакет может пройти. На каждом узле TTL уменьшается на единицу. Если на пути к удалённому адресату время жизни пакета станет равно 0, маршрутизатор отбросит пакет и отправит источнику ICMP-сообщение об ошибке «Time Exceeded» (время истекло).

Этот принцип лежит в основе работы утилит Tracert и Traceroute, однако между ними есть отличия. Рассмотрим каждую утилиту отдельно.

Утилита Traceroute вместо ICMP-запроса отправляет 3 UDP-пакета на определенный порт целевого хоста и ожидает ответа о недоступности этого порта. Первый пакет отправляется с TTL=1, второй с TTL=2 и так далее, пока запрос не попадёт адресату. Отличие от Tracert в том, как Traceroute понимает, что трассировка завершена. Так как вместо ICMP-запроса он отправляет UDP-запрос, в каждом запросе есть порт отправителя (Sourсe) и порт получателя (Destination). По умолчанию запрос отправляется на закрытый порт 34434. Когда запрос попадёт на хост назначения, этот хост отправит ответ о недоступности порта «Destination port unreachable» (порт назначения недоступен). Это значит, что адресат получил запрос. Traceroute воспримет этот ответ как завершение трассировки.

Traceroute’s Restrictions

  • It establishes the route at the interface level rather than at the router level.
  • The Traceroute may not respond after crossing the maximum number of hops if there are firewalls between the source and destination routers that prevent the probe packets from being sent. Furthermore, despite the hops IP address, the router will display * (asterisk) if no response is received. Therefore, using a traceroute under these circumstances is not suggested.
  • Based on the IP headers, load balancing routers can route the traffic via a number of different paths. Therefore, if we execute a traceroute in this case, it will give us an incorrect path between the origin and the goal. Accordingly, it is not advisable to employ traceroutes in this circumstance either.

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

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

Command-Line Tool to Diagnose Network Routing Issues [Examples]

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

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

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

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

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

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

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

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

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

Tracert Syntax

  • If pinging a host fails, try using the tracert utility to identify where the data packet is failing along its route.
  • RTT of over 150ms, within the United States, is considered high. If your remote host is on another continent, RTT of over 150ms may be normal.
  • Use the -d switch to skip reverse IP lookup to speed up tracert.

Example of a Good Tracert 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

Example Tracert Result of a Failed Hop

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

Example Tracert Result of a Routing Loop Problem

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

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

Функция tracert – показывает полный сетевой маршрут до указанного места. Выглядит это так (в качестве примера был взял wikipedia.org):

Command-Line Tool to Diagnose Network Routing Issues [Examples]

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

CMD Windows – ищем и проверяем

Необходимо выполнить следующие действия, независимо от вашей версии ПО:

  • Пуск — Все программы — Стандартные — Командная строка;
  • В окне поиска — вводите тоже самое;
  • Открываете панель управления — выполнить — и вводим команду cmd.
:/>  Жесткие диски, какими вы их не знали. Часть 2

Любой из этих способов откроет черное окно, которое выглядит так:

Command-Line Tool to Diagnose Network Routing Issues [Examples]

После того, как вы узнали свой IP (достаточно в строке ввести ipconfig), также вам доступна команда PING.Делаем всё, как на скриншотах.

Command-Line Tool to Diagnose Network Routing Issues [Examples]

Командная строка всегда выдает по 4 пакета. Мы видим, что каждый пакет передает информацию в 32 бита за 3 миллисекунды каждый.Все указано на скриншоте ниже.

Command-Line Tool to Diagnose Network Routing Issues [Examples]

Также вы можете изменить количество бит, и тогда ваша команда будет выглядеть так: ping -l (количество байт) 22.11.33.444 (к примеру)

В отличие от Windows, на Linux ручная проверка айпи не прекращается до тех пор, пока вы сами не остановите этот процесс. В Виндовс такую операцию сделать также можно с помощью команды добавочной команды «-T», и выглядит это так: ping -t какой-нибудь IP (к примеру)

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

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

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

Tracert – Windows

  • Перейдите в меню Пуск.
  • Выберите Выполнить.
  • Введите cmd и нажмите ОК. Это откроет командную строку.
  • Нажмите Enter.

Traceroute – Linux

  • Откройте приложение Терминал. Это можно сделать при помощи сочетания клавиш CTRL + Shift + T.
  • Нажмите Enter.

Traceroute – MacOS

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

  • Запустите приложение Терминал.
  • Нажмите Enter.

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

Как установить Traceroute на Linux

В Unix-подобных системах программа может быть не установлена. Ниже мы покажем, как установить Traceroute на некоторых операционных системах.

Как установить Traceroute в Debian/Ubuntu

  • Запустите терминал и введите команду sudo apt-get update для обновления данных о репозиториях.
  • Введите команду sudo apt-get install traceroute.
  • Запустите терминал и введите команду sudo yum update для обновления данных о репозиториях.
  • Введите команду sudo yum install traceroute.

Traceroute command vs Tracert command

Apart from the small difference between typing traceroute and the Tracert, the fact that the first works on Linux and macOS, and the second on Windows, the other significant differences are the syntax and the options.

Syntax of the traceroute and Tracert commands

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

Command-Line Tool to Diagnose Network Routing Issues [Examples]

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

Command-Line Tool to Diagnose Network Routing Issues [Examples]

How to use the Traceroute command?

Use the Traceroute command by writing the command “traceroute + domain.com / IP address” or, in the Terminal on Linux and macOS or “tracert + domain.com / IP address” in the Command Prompt on Windows.

Traceroute (Linux and macOS)

traceroute domian.com or traceroute 12.23.34.45

tracert domian.com or tracert 12.23.34.45

On macOS, you can also use the Traceroute utility. Press the command button + space. Then write Network Utility. Inside it, navigate to Traceroute. Write the hostname or IP address and press enter. It will show you the result.

*You can change the domain.com with another domain you want to probe, and the same goes for the IP address.

Some differences between the Traceroute command, and the Tracert exist. Check the options below.

Analyzing Tracert Results

  • RTT (latency) is the main thing you want to focus on in your tracert report. For these values, the lower the number, the better. You also want to see fairly consistent times for each hop.
  • RTT above 150ms within the United States is considered to be long, but may be normal if the remote device is in the opposite side of the world.
  • If an asterisk (*) appears for RTT instead of a time, this indicates that the packet was not received back within the expected time frame. For Windows tracert, the default is 4,000 milliseconds (or 4 seconds). This parameter can be increased by using the -w switch if necessary. Seeing one or two asterisks does not necessarily indicate a problem. Routers can be configured to limit the number of ping or tracert packets it responses to as a way to prevent them from being affected by denial-of-service attacks.
  • If this appears at the beginning of a tracert report, it can be ignored as it is often due to the device configured to not respond to ping and tracert packets.
  • Problem with Return Path – As mentioned, RTT measures the round trip time a packet traverse from your computer to the router and back. The pathway to the hop is often not going to be same for the return trip.
  • Problem with Remote Device – The remote device is not configured correctly or has system problems affecting your connection.
  • A progressively increase in latency to the remote device can indicate an issue starting with the hop where the sudden increase began.
  • A high latency in the middle of your tracert report does not necessarily indicate a problem as the associated router may have be configured to respond to ping and tracert packets with low priority.
  • A high latency at the beginning of a tracert report (the first two hops) may indicate issues with your local network or Internet Service Provider (ISP). To resolve, contact the I.T. department of your organization or your ISP.

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

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

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

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

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

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

Reading Tracert Results

The information in a tracert reports can look overwhelming. This section will help you better understand what it means.

Command-Line Tool to Diagnose Network Routing Issues [Examples]

Area 1 – This is the tracert command that was typed

Area 2 – This shows what tracert is performing. In the example illustration, it is performing a trace to the destination IP of 72.47.244.140, which a reverse lookup identifies this with a hostname of agaaacgeks.gs11.gridserver.com.

Area 3 – This is the maximum number of hops that will be used to trace the route. For Windows tracert, the default is 30 hops. This means, tracert will only trace to the first 30 routers. This parameter can be increased by using the -h switch if necessary.

Area 4 – This portion of the tracert output shows information on each hop that handled your data packet to help it along to the destination. There are five columns of data shown in this report.

  • Hop Number – This is the first column and is simple the number of the hop in the network pathway from your computer to the remote device. The highest this will go to will be no more than the Windows tracert of 30, or what you define using the -h switch.
  • Round Trip Times (RTT) – Expressed in milliseconds (ms), these three columns report the time it took for a data packet to go from your computer to the hop and back to your computer (sometimes refer to as latency). By default, Windows tracert sends three packets to each hop. Thus, each hop line in the report will show three round trip times. In the illustration below, these are highlighted as RTT1, RTT2, and RTT3.
  • Host Name / IP – This last column shows the hostname and the IP address of the hop.

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 108,796 times, 51 visits today)

I hope you enjoy my articles and the excellent services of ClouDNS!

Recommended Reading

Improve confidence and job performance

Improve productivity and efficiency

Заключение

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

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

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