Утилиты traceroute и tracert

Open Visual Traceroute

Open Visual Traceroute is another little-known free Traceroute implementation that you should try out. This tool has a GUI front-end and it installs on Windows 7, 8, and 10, Mac OS, and Ubuntu and OpenSUSE Linux.

The front-end features some great route representations that are overlaid on real-world maps. This gives a very sophisticated display, which would look great in presentations to the boardroom or clients. While the 3D maps look really good, they can use up a lot of processing power, so the Open Visual Traceroute package also includes a series of 2D map views for lighter processing. The software is open source, so you can read through the code to check its security features and even adjust the code to suit your implementation.

The traceroute data is listed in one panel of the dashboard, while another panel shows how each link contributes to the total round trip time of the connection.

Other tools in this package include a packet sniffer and a Whois function that will give you ownership details for the hosts that you encounter during your Traceroute sessions.

This is a great tool that is well worth investigating and one of the few network utilities around that can run on Macs.

Синтаксис команды Tracert

ЬгасегЬ -d -час MaxHops -w TimeOut -4 -6 цель /?

Совет: См. «Как прочитать командный синтаксис», если вам трудно понять синтаксис tracert, описанный выше или в приведенной ниже таблице.

-d Эта опция запрещает трассировать от разрешения IP-адресов на имена хостов, что часто приводит к гораздо более быстрым результатам.
-час MaxHops Этот параметр tracert указывает максимальное количество переходов в поиске цель , Если вы не указали MaxHops , и цель не был найден 30 прыжками, tracert перестанет смотреть.
-w TimeOut Вы можете указать время в миллисекундах, чтобы разрешить каждый ответ до таймаута, используя этот параметр tracert.
-4 Этот параметр заставляет tracert использовать только IPv4.
-6 Этот параметр заставляет tracert использовать только IPv6.
цель Это назначение, либо IP-адрес, либо имя хоста.
/? Используйте переключатель справки с помощью команды tracert, чтобы показать подробную справку о нескольких параметрах команды.

Другие менее часто используемые параметры для команды tracert также существуют, в том числе -j Список_адресов , -Р, а также -S Адрес источника . Для получения дополнительной информации об этих параметрах используйте ключ справки с помощью команды tracert.

Совет: Сохраните длинные результаты команды tracert в файл с помощью оператора перенаправления. Посмотрите, как перенаправить вывод команды в файл или получить подсказки командной строки для этого и других полезных советов.

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

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

Каждый пакет проходит на своем пути определенное количество узлов, пока достигнет своей цели. Причем, каждый пакет имеет свое время жизни. Это количество узлов, которые может пройти пакет перед тем, как он будет уничтожен. Этот параметр записывается в заголовке TTL, каждый маршрутизатор, через который будет проходить пакет уменьшает его на единицу. При TTL=0 пакет уничтожается, а отправителю отсылается сообщение Time Exceeded.

Команда traceroute linux использует UDP пакеты. Она отправляет пакет с TTL=1 и смотрит адрес ответившего узла, дальше TTL=2, TTL=3 и так пока не достигнет цели. Каждый раз отправляется по три пакета и для каждого из них измеряется время прохождения. Пакет отправляется на случайный порт, который, скорее всего, не занят. Когда утилита traceroute получает сообщение от целевого узла о том, что порт недоступен трассировка считается завершенной.

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

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

1. Запустите команду cmd: Win+R >
пропишите cmd > ОК
.

tracert Х.Х.Х.Х
(где Х.Х.Х.Х – это IP-адрес сервера или домен) и нажмите Enter
.

В примере мы сделали трассировку для google.com.

tracert google.com

Получилось так:

1 2 1 ms 1 ms 1 ms 193.151.89.254
3 5 ms 4 5 1 ms 6 1 ms 7 1 ms 3 ms 1 ms bearline-ic-324086-ffm-b4.c.telia.net
8 1 ms 1 ms 1 ms 108.170.251.129
9 13 ms 13 ms 15 ms 66.249.94.135
10 13 ms 13 ms 13 ms fra15s12-in-f46.1e100.net

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

* * * Превышен интервал ожидания для запроса.

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

PingPlotter

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

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

Кроме того, в нем есть графики, которые упрощают визуализацию и понимание проблем более простым и интуитивно понятным способом. У нас есть 14-дневная пробная версия. Затем мы можем выбрать стандартную версию, предназначенную для небольших компаний и домашних пользователей, и другую профессиональную версию, предназначенную для крупных компаний. Его можно загрузить для операционной системы Windows с сайта здесь .

Примеры команд Tracert

tracert 192.168.1.1

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

В этом примере вы можете увидеть, что tracert обнаружил сетевое устройство, использующее IP-адрес 192.168.1.254 , скажем, сетевой коммутатор, за которым следует пункт назначения, 192.168.1.1 , маршрутизатор.

tracert www.google.com

Используя команду tracert, как показано выше, мы просим tracert показать нам путь от локального компьютера до сетевого устройства с именем хоста www.google.com .

В этом примере мы видим, что tracert идентифицировал пятнадцать сетевых устройств, включая наш маршрутизатор, на 10.1.0.1 и вплоть до цель из www.google.com , который мы теперь знаем, использует общедоступный IP-адрес 209.85.225.104 , который просто один из многих IP-адресов Google.

Замечания: Хлопсы с 4 по 12 были исключены выше, чтобы просто привести пример. Если вы выполняете реальный трассер, все результаты будут отображаться на экране.

tracert -d www.yahoo.com

В этом последнем примере команды tracert мы снова запрашиваем путь к веб-сайту, на этот раз www.yahoo.com , но теперь я предотвращаю tracert от разрешения имен хостов, используя -d вариант.

В этом примере мы видим, что tracert снова идентифицировал пятнадцать сетевых устройств, включая наш маршрутизатор, на 10.1.0.1 и вплоть до цель из www.yahoo.com , который мы можем предположить, использует общедоступный IP-адрес 209.191.122.70 .

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

RemarksRemarks

  • Это средство диагностики определяет путь, полученный к назначению, отправляя сообщения эхо-запросов ICMP с различными значениями срока жизни (TTL) назначения.This diagnostic tool determines the path taken to a destination by sending ICMP echo Request messages with varying time to Live (TTL) values to the destination. Каждый маршрутизатор по пути должен уменьшить срок жизни в пакете IP по меньшей мере до 1 перед его пересылкой.Each router along the path is required to decrement the TTL in an IP packet by at least 1 before forwarding it. Фактически, TTL является максимальным счетчиком ссылок.Effectively, the TTL is a maximum link counter. Если срок жизни пакета достигнет значения 0, то ожидается, что маршрутизатор вернет сообщение об истечении времени ICMP на исходный компьютер.When the TTL on a packet reaches 0, the router is expected to return an ICMP time Exceeded message to the source computer. Трассировка определяет путь путем отправки первого сообщения эхо-запроса с TTL 1 и приращением TTL на 1 для каждой последующей передачи до тех пор, пока целевой объект не ответит или не будет достигнуто максимальное число прыжков.tracert determines the path by sending the first echo Request message with a TTL of 1 and incrementing the TTL by 1 on each subsequent transmission until the target responds or the maximum number of hops is reached. Максимальное число прыжков равно 30 по умолчанию и может быть указано с помощью параметра /h .The maximum number of hops is 30 by default and can be specified using the /h parameter. Путь определяется путем проверки превышения времени ICMP сообщений, возвращенных промежуточными маршрутизаторами, и сообщения эхо-ответа, возвращаемого назначением.The path is determined by examining the ICMP time Exceeded messages returned by intermediate routers and the echo Reply message returned by the destination. Однако некоторые маршрутизаторы не возвращают сообщения о превышении времени для пакетов с истекшими значениями TTL и невидимы для команды tracert.However, some routers do not return time Exceeded messages for packets with expired TTL values and are invisible to the tracert command. В этом случае для этого прыжка отображается строка звездочек (*).In this case, a row of asterisks (*) is displayed for that hop.
  • Для трассировки пути и обеспечения сетевой задержки и потери пакетов для каждого маршрутизатора и ссылки в пути используется команда pathping .To trace a path and provide network latency and packet loss for each router and link in the path, use the pathping command.
  • Эта команда доступна, только если протокол Internet Protocol (TCP/IP) установлен в качестве компонента в свойствах сетевого адаптера в окне Сетевые подключения.This command is available only if the Internet Protocol (TCP/IP) protocol is installed as a component in the properties of a network adapter in Network Connections.

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

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

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

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

Tracert отправляет на хост назначения ICPM-запрос «Echo Request» с TTL=1. Первый маршрутизатор, который получит запрос, проверяет, кому он предназначен. Если маршрутизатор не является целевым хостом, он уменьшает TTL на 1, отбрасывает пакет и отправляет ICMP-сообщение источнику, так как время жизни теперь равно 0. В этом сообщении маршрутизатор указывает информацию о себе и причину дропа пакета. Получив сообщение, Tracert запоминает этот маршрутизатор как первый хоп (прыжок) и отправляет следующий пакет, но уже с TTL=2. Первый хоп успешно обрабатывает новый пакет, уменьшает время его жизни на 1 и передаёт дальше. Следующий маршрутизатор тоже выполняет проверку хоста назначения и, если пакет предназначен не ему, уменьшает TTL, отбрасывает пакет и отправляет ICMP-сообщение источнику. Tracert запоминает второй хоп, снова увеличивает TTL на 1 и отправляет следующий пакет. Эти действия будут повторяться до тех пор, пока пакет не достигнет целевого хоста. Когда запрос попадёт к целевому хосту, этот хост в ответ направит ICMP «Echo Reply». Источник воспримет это как завершение трассировки.

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

Если Tracert работает по протоколу ICMP, то какой протокол используется командой Traceroute? По умолчанию используется протокол UDP, но traceroute может отправить и ICMP-запрос «Echo Request», как Tracert. Такой способ пригодится, если хоп не отвечает на UDP-пакет.

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

Использование утилиты «Tracert».

Рассмотрим пример работы программы в операционной системе Windоws. Программа tracert выполняет отправку данных указанному узлу сети, при этом отображая сведения о всех промежуточных маршрутизаторах, через которые прошли данные на пути к целевому узлу. В случае проблем при доставке данных до какого-либо узла программа позволяет определить, на каком именно участке сети возникли неполадки. Здесь хочется отметить, что программа работает только в направлении от источника пакетов и является весьма грубым инструментом для выявления неполадок в сети. В силу особенностей работы протоколов маршрутизации в сети Интернет, обратные маршруты часто не совпадают с прямыми, причем это справедливо для всех промежуточных узлов в трейсе. Поэтому ICMP ответ от каждого промежуточного узла может идти своим собственным маршрутом, затеряться или прийти с большой задержкой, хотя в реальности с пакетами, которые адресованы конечному узлу, этого не происходит. Кроме того, на промежуточных маршрутизаторах часто стоит ограничение числа ответов ICMP в единицу времени, что приводит к появлению ложных потерь.
Запуск программы производится из командной строки. Для этого вы должны войти в неё. Для операционных систем семейства Windows существует несколько способов запуска командной строки:

1. Пуск — Выполнить — В графе «Открыть» написать «cmd» и нажать Ок.

2. Сочетание клавиш Win (кнопка с логотипом Windows) + R (должны быть нажаты одновременно) — В графе «Открыть» написать «cmd» и нажать Ок.

3. Пуск — Все программы (или просто «Программы», зависит от версии операционной системы) — Стандартные — Командная строка.

Далее вам необходимо произвести трассировку до заданного ip адреса или доменного имени.

Использование утилиты «Pathping

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

Запуск программы производится из командной строки. Для этого вы должны войти в неё. Для операционных систем семейства Windows существует несколько способов запуска командной строки:

1. Пуск — Выполнить — В графе «Открыть» написать «cmd» и нажать Ок.

2. Сочетание клавиш Win (кнопка с логотипом Windows) + R (должны быть нажаты одновременно) — В графе «Открыть» написать «cmd» и нажать Ок.

3. Пуск — Все программы (или просто «Программы», зависит от версии операционной системы) — Стандартные — Командная

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

Копирование текста из командной строки.

Чтобы скопировать текст к кликаем правой кнопкой мышки по командной строке и вызываем контекстное меню. В открывшемся меню выбираем пункт «Пометить». После этого текст в командной строке можно выделить обычным движением мышкой и скопировать с помощь комбинации клавиш Ctrl+C.

Далее результаты необходимо будет переслать на электронный адрес почты 911@profintel.ru, с указанием вашего id номера и кратким описанием вашей проблемы.

Открыть Visual Traceroute

Open Visual Traceroute — это бесплатное приложение с открытым исходным кодом, его исходный код также доступен для загрузки с его веб-сайта. Его функция Traceroute позволит нам видеть на карте мира в 3D, чтобы указать, по какому маршруту данные идут от нашего ПК к целевому серверу.

Он также имеет трекер сетевых пакетов, который позволит нам видеть, какие данные отправляются и принимаются из локальной системы в Интернет. Кроме того, у него есть служба Whois для просмотра общедоступной информации о домене. Компьютеры с меньшими ресурсами или с проблемами с драйверами OpenGL смогут выбрать 2D-дисплей. Вы можете скачать программу с ее веб-сайт Честного ЗНАКа .

Traceroute Command Syntax and Options (for Linux)

The traceroute command syntax for Linux can be written as:

traceroute      
      host 

Below is a brief description with each traceroute option in Linux systems.

Option Description
–help Used to Display a help message, and exit.
-4, -6 Explicitly force IPv4 or IPv6 tracerouting.
-f Sets the initial TTL on the first outgoing packet.
-F Sets the “don’t fragment” bit.
-d Enables debugging.
-g Specifies a loose source route gateway (8 maximum).
-i Set a network interface to obtain the source IP address.
-I Use ICMP ECHO.
-m Set the maximum TTL used in outgoing packets. The default is set at 30 hops.
-n Print hop addresses numerically.
-p For UDP tracing, it specifies the destination port base. This option can be used to find unsued ports.
-r Avoid the normal routing tables and send directly to a host on a specific network.
-s Chooses an alternative source address. Note that you must select the address of one of the interfaces.
-t Type of service. The value must be a decimal integer in the range from 0 to 255. You can use it to check if different type-of-service results in different paths.
-v The verbose output.
-w Sets the time to wait for a response. The default is 5 seconds.
-z Set the time in milliseconds to pause between tests.

How Does Traceroute Works?

Each IP packet sent on the Internet has a field known as Time-To-Live (TTL). But this field is not explicitly related to the time measured by the number of hops. It is instead, the maximum number of hops that a packet can travel across the Internet before it gets discarded.

The TTL field in an IP packet is so essential because if there wasn’t one, the packet would keep flowing from one router to another forever searching for its destination, in a never-ending loop.

The TTL value helps in route poisoning, and most importantly, it can help Distance Vector protocols to avoid routing loops.

Traceroute depends on TTL to measure the distance between source and destination and to find the hops in between.

In a traceroute, the source re-defines the TTL value every time it gets a response and sends the packet with TTL= +1 until it reaches its destination.

When a packet reaches its maximum TTL, the last hop in line will send back an “ICMP TTL Exceeded” packet back to the source.

This communication is what traceroute is looking for. The “ICMP TTL Exceeded” contains valuable information, such as the time it took to reach that particular hop and the name of the server that is replying.

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

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

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

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

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

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

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

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

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector