Команда tracert поможет в диагностике проблем со связью

Что такое traceroute или tracert и для чего они нужны

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

В этом случае очень важно иметь возможность измерять время между переходами в вашей сети. Tracert включен Windows или Traceroute в Unix / Linux — это инструмент командной строки, который позволяет нам измерять путь, пройденный вашими пакетами в сети, а также показывает время, необходимое для каждого перехода, что идеально подходит для обнаружения возможных проблем между узлами

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

List Of Available Methods

In general, a particular traceroute method may have to be chosen by -M name, but most of the methods have their simple cmdline switches (you can see
them after the method name, if present).

default

The traditional, ancient method of tracerouting. Used by default.

Probe packets are udp datagrams with so-called «unlikely» destination ports. The «unlikely» port of the first probe is 33434, then for each next probe it is
incremented by one. Since the ports are expected to be unused, the destination host normally returns «icmp unreach port» as a final response. (Nobody knows
what happens when some application listens for such ports, though).

This method is allowed for unprivileged users.

icmp -I

Most usual method for now, which uses icmp echo packets for probes.
If you can ping(8) the destination host, icmp tracerouting is applicable as well.

tcp -T

Well-known modern method, intended to bypass firewalls.
Uses the constant destination port (default is 80, http).

If some filters are present in the network path, then most probably any «unlikely» udp ports (as for default method) or even icmp echoes (as for
icmp) are filtered, and whole tracerouting will just stop at such a firewall. To bypass a network filter, we have to use only allowed protocol/port
combinations. If we trace for some, say, mailserver, then more likely -T -p 25 can reach it, even when -I can not.

This method uses well-known «half-open technique», which prevents applications on the destination host from seeing our probes at all. Normally, a tcp syn is
sent. For non-listened ports we receive tcp reset, and all is done. For active listening ports we receive tcp syn+ack, but answer by tcp reset (instead of
expected tcp ack), this way the remote tcp session is dropped even without the application ever taking notice.

There is a couple of options for tcp method:

syn,ack,fin,rst,psh,urg,ece,cwr

Sets specified tcp flags for probe packet, in any combination.

flags=num

Sets the flags field in the tcp header exactly to num.

ecn

Send syn packet with tcp flags ECE and CWR (for Explicit Congestion Notification, rfc3168)

sack,timestamps,window_scaling

Use the corresponding tcp header option in the outgoing probe packet.

sysctl

Use current sysctl (/proc/sys/net/*) setting for the tcp header options above and ecn. Always set by default, if nothing else
specified.

mss=num

Use value of num for maxseg tcp header option (when syn).

Default options is syn,sysctl.

tcpconn

An initial implementation of tcp method, simple using connect(2) call, which does full tcp session opening. Not recommended for normal use, because a
destination application is always affected (and can be confused).

udp -U

Use udp datagram with constant destination port (default 53, dns).
Intended to bypass firewall as well.

Note, that unlike in tcp method, the correspond application on the destination host always receive our probes (with random data), and most can
easily be confused by them. Most cases it will not respond to our packets though, so we will never see the final hop in the trace. (Fortunately, it seems that
at least dns servers replies with something angry).

This method is allowed for unprivileged users.

udplite -UL

Use udplite datagram for probes (with constant destination port, default 53).

This method is allowed for unprivileged users.
Options:

coverage=num

Set udplite send coverage to num.

raw -P proto

Send raw packet of protocol proto.
No protocol-specific headers are used, just IP header only.
Implies -N 1.
Options:
protocol=proto
Use IP protocol proto (default 253).

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

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

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 каждого из них, а значит, можем перейти к пингу.

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

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

Приведем краткое описание параметров, которые поддерживает команда tracert:

  • -h задает максимальное количество переходов, которое может быть выполнено при поиске конечного узла.
  • -d запрещает команде производить попытки превратить IP-адрес промежуточного шлюза в имя.
  • -j позволяет утилите производить свободный поиск маршрута по списку узлов. Максимум можно указать 9 маршрутизаторов.
  • -w служит для указания времени ожидания ответа на запрос от узла. Если ответ не получен, то будет выведена звездочка. Указывается в миллисекундах.

По умолчанию максимальное число прыжков ограничено 30-ю, а время ожидания — 4-мя секундами.

Пример в Linux

В UNIX/Linux системах существуют режимы, в которых запуск программы возможен только от имени суперпользователя root (администратора). К числу этих режимов относится важный режим трассировки с помощью ICMP (ключ ).

Во всех остальных случаях, traceroute может работать от имени обычного рядового пользователя.
При этом, параметры по умолчанию различаются от дистрибутива к дистрибутиву, хотя в справке традиционно пишется ключ (UDP) в качестве такового. В отдельных RedHat-based дистрибутивах фактически в качестве умолчания используется , поэтому в случае, если команда из следующего примера выдаст сообщение о недостатке прав, попробуйте явно указать ключ .

  $ traceroute www.ru
  traceroute to www.ru (194.87.0.50), 30 hops max, 38 byte packets 
   1    mygateway.ar7                       (192.168.1.1)       0.777 ms    0.664 ms   0.506 ms
   2    L0.ghsdr04                          (213.227.224.91)   15.661 ms   15.867 ms  31.426 ms
   3    213.227.224.1                       (213.227.224.1)    16.797 ms   18.221 ms  16.756 ms
   4    dg                                  (213.186.216.161)  53.068 ms   39.163 ms  38.283 ms
   5    br13                                (213.186.193.43)   40.156 ms   39.768 ms  42.803 ms
   6    aggr                                (62.221.40.169)    37.884 ms   38.712 ms  37.207 ms
   7    edge-3GE-216dot1q.kiev.ucomline.net (213.130.30.182)   39.723 ms   38.039 ms  41.261 ms
   8    ae0-202.RT771-001.kiv.retn.net      (81.222.15.1)      40.029 ms   37.088 ms  40.039 ms
   9    ae0-3.RT502-001.msk.retn.net        (81.222.15.1)     128.932 ms  122.043 ms 121.612 ms
  10    GW-Demos.retn.net                   (81.222.8.46)     120.023 ms  121.135 ms 119.493 ms
  11    iki-1-vl10.demos.net                (194.87.0.83)     119.074 ms  119.784 ms 123.607 ms
  12    www.ru                              (194.87.0.50)     120.358 ms  122.545 ms 119.399 ms

Синтаксис

Рассмотрим синтаксис команды.

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

Дополнительные опции

Чтобы изменить тип пакетов, необходимо воспользоваться соответствующими опциями. Для пакетов ICMP – опция -I. Для пакетов TCP – опция -T. Вследствие чего формат UDP больше не будет использован программой.

Если нужно указать размер пакета, задайте опцию —mtu. В таблице маршрутизации будет указано конкретное устройство. Чтобы поменять его, и задать другой роутер, задайте опцию -r. Для установки максимально допустимого времени жизни пакета задайте опцию -m. Чтобы задать длительность паузы между прыжками, задайте опцию -z.

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

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

Рассмотрим на примере выполнение трассировки сети до определенного сервера. Он будет указан в завершении:

Как видно из скриншота, пакет дошел до сайта всего за два хоста

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

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

Если в появившемся окне вместо узла указаны звёздочки утилиты, не стоит делать поспешных выводов о его поломке. Скорее всего, узел просто не ответил на этот раз.

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

Для начала пробуем без изменений:

Если не получается, измените формат пакетов:

Обрыв цепочки – не единственное, что может выявить трассировка сети Linux. Её также можно применить для исследования сети. К примеру, пользователю нужно выяснить, какие подсети используются поставщиком Интернет-услуг. Для этого необходимо отправить 3 запроса с указанием разных адресов. Вот так это выглядит на практике:

Первый адрес:

Второй адрес:

Третий адрес:

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

Подводя итог, следует резюмировать основные функции команды traceroute:

  1. Тестирование сети
  2. Управление сетью
  3. Измерение сети.

Заключение

Утилита treaceroute – весьма популярный и надежный инструмент для проверки обрыва цепочки, используемый не только системными администраторами, но и обычными пользователями дистрибутива Linux. Эта команда может пригодиться при различных неисправностях. Её рекомендуется использовать исключительно для ручной локализации проблем. Использование traceroute во время стандартных операций и автоматических сценариев может оказать мощную нагрузку на сеть, что не является целесообразным решением.

Обзор бесплатных программ трассировки маршрута

Программа трассировки маршрута 3D Traceroute отличный пример качественного продукта

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

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

VisualRoute Lite отличное решение для диагностики сети и трассировки маршрута

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

VisualRoute — это инструмент с достаточно большой историей. Программа написана на Java, так что вам нужно будет установить Java машину себе на компьютер. Если вы не хотите устанавливать программу себе на компьютер, то вы можете использовать онлайн сервис, который в основном делает то же самое.

К сожалению, красивая карта мира отключена в версии Lite. А так же отключена возможность отображения маршрута в виде списка, что очень странно, но в каком-то смысле ожидаемо. Тем не менее, Lite версия это хорошее соотношение бесплатного и полезного. И она стоит того, чтобы вы попробовали ее в деле.

Программа Alien IP простой и симпатичный инструмент для трассировки маршрута

 это простой инструмент трассировки, который умеет отображать на карте местоположение конечного пункта маршрута. Программа сравнима по возможностям с 3D Traceroute. Имеет простой и понятный интерфейс. Просто введите IP или Url адрес, и Alien IP тут же покажет на карте его месторасположение. Alien IP может так же определить дополнительную информацию хоста, обработать список IP, сохранить в текстовый файл вывод трассировки. Она включает редкий, но очень удобный инструмент — калькулятор IP адресов.

Quick How-To

Less is more. Insert the complete (sub.)domain, IPv4 or v6 to which you want to perform a visual traceroute test and press ‘TRACE’.

The traceroute tool will then send from 1 to 30 IP packets to the target, incrementing the (TTL) for each probe ping, starting from TTL 1. In this networking context, the TTL defines the maximum number of hops a packet can be relayed through during its travel over the Internet. Thus, each probe will incrementally reach one relay further than the previous ping. When a packet reaches a network node and gets its TTL credit down to 0, it will stop there and elicit a TIME_EXCEEDED response to be sent back to the ping’s origin (G Suite.Tools). That’s how our tool can measure the response time of each node within the path of an IP packet.

How to Run a Traceroute on a Windows 10 Computer

To run a traceroute on a Windows 10 computer, open the Windows search box and type CMD into the search bar. Then open the Command Prompt app and type in tracert followed by a space and then the destination URL or IP address. Finally, hit Enter.

  1. Open the Windows search box. You can do this by clicking the magnifying glass icon in the bottom-left corner of your screen.
  2. Then type CMD in the search bar and click Open.
  3. Next, type tracert followed by a space and then an IP address or URL. If you just want to test your internet connection, it is a good idea to run a traceroute to 8.8.8.8 (Google’s DNS server). You can also run a traceroute to the URL of any website or IP address. Just make sure you leave a space after tracert and before the URL or IP address. For example, to run a traceroute to HelloTech.com, you would type tracert hellotech.com into the Command Prompt app.
  4. Finally, press Enter on your keyboard and wait for the traceroute to finish. You will see the words Trace complete when the process is finished. You can also stop a traceroute at any time by pressing the Control + C keys on your keyboard at the same time.

To copy the traceroute results, left-click and drag your mouse to select the traceroute results. Then press Enter on your keyboard. Next, open a document or text file and paste the traceroute results there.

Логирование… inspired by Java

  • runtime-id и process-id – идентификаторы текущего потока и процесса, внутри которых может обслуживаться несколько request-id,
  • user-id — так как в приложениях есть авторизация, этот идентификатор должен быть везде,
  • имя канала — канал можно использовать как бэкап для пользователя, если отвалилась база данных и что-то не записалось.
  • id контейнера, id сервиса, id задачи и прочее — все возможные мета-данные о Docker-контейнере. Зачем? У нас был момент, когда приложение было раскатано на 3 контейнера, а взял и сглючил один конкретный, — потому что он был развернут на глючном воркере.
  • Цепочки исключений — на уровне базы, сервиса, всегда создаем исключения более высокого уровня, потому что часто именно в последнем исключении и кроется «А что было-то?».
  • имя приложения — в процессе оказалось, что многие команды ориентируются на имя репозитория, а приложение внутри не знает, как его зовут: пришлось дособирать эту информацию и дописывать upname в yaml-файл.
  • плюс служебные команды и переменные окружения.

Настройка трассировки сетиConfigure network tracing

Чтобы настроить трассировку сети, добавьте следующие строки в соответствующий файл конфигурации.To configure network tracing, add the following lines to the appropriate configuration file. Значения этих параметров описаны в приведенных ниже таблицах.The values and options for these settings are described in the tables below.

Выходные данные трассировки из методовTrace output from methods

При добавлении имени в блок результаты трассировки будут содержать сведения из определенных методов, связанных с указанным именем.When you add a name to the block, the trace output includes information from some methods related to the name. Результат описан в следующей таблице:The following table describes the output:

nameName Источник результатаOutput from
Некоторые открытые методы классов Socket, TcpListener, TcpClient и Dns.Some public methods of the Socket, TcpListener, TcpClient, and Dns classes.
Некоторые открытые методы классов HttpWebRequest, HttpWebResponse, FtpWebRequest и FtpWebResponse, а также отладочные данные SSL (недопустимые сертификаты, отсутствующие издатели и ошибки сертификатов клиентов).Some public methods of the HttpWebRequest, HttpWebResponse, FtpWebRequest, and FtpWebResponse classes, and SSL debug information (invalid certificates, missing issuers list, and client certificate errors).
Некоторые открытые методы классов HttpListener, HttpListenerRequest и HttpListenerResponse.Some public methods of the HttpListener, HttpListenerRequest, and HttpListenerResponse classes.
Некоторые открытые и закрытые методы в .Some private and internal methods in .
Некоторые открытые методы классов HttpClient, DelegatingHandler, HttpClientHandler, HttpMessageHandler, MessageProcessingHandler и WebRequestHandler.Some public methods of the HttpClient, DelegatingHandler, HttpClientHandler, HttpMessageHandler, MessageProcessingHandler, and WebRequestHandler classes.
Некоторые открытые методы классов ClientWebSocket и WebSocket.Some public methods of the ClientWebSocket and WebSocket classes.

Атрибуты выходных данных трассировкиTrace output attributes

Атрибуты, указанные в следующей таблице, задают выходные данные трассировки:The attributes listed in the following table configure trace output:

Имя атрибутаAttribute name Значение атрибутаAttribute value
Обязательный атрибут элемента String.Required String attribute. Задает уровень детализации результатов.Sets the verbosity of the output. Допустимые значения: , , , и .Legitimate values are , , , , and .Этот атрибут следует задавать в элементе add элемента switches.This attribute must be set on the add element of the switches element. Исключение возникает, если этот атрибут задан для элемента source.An exception is thrown if this attribute is set on the source element.Пример: Example:
Необязательный атрибут элемента Int32.Optional Int32 attribute. Задает максимальное число байтов сетевых данных, включенных в трассировку каждой линии.Sets the maximum number of bytes of network data included in each line trace. Значение по умолчанию — 1024.The default value is 1024.Этот атрибут следует задавать в элементе source.This attribute must be set on the source element. Исключение возникает, если этот атрибут задан для элемента в элементе switches.An exception is thrown if this attribute is set on an element under the switches element.Пример: Example:
Необязательный атрибут элемента String.Optional String attribute. Задается , чтобы трассировка протоколов отображалась в шестнадцатеричном или текстовом формате.Set to to show protocol traces in hexadecimal and text format. Установите значение , чтобы отображался только текст.Set to to show only text. Значение по умолчанию — .The default value is .Этот атрибут следует задавать в элементе source.This attribute must be set on the source element. Исключение возникает, если этот атрибут задан для элемента в элементе switches.An exception is thrown if this attribute is set on an element under the switches element.Пример: Example:

Тогда мы придумали инструмент, чтобы маркировать трафик

  • Мы берем любой HTTP-запрос, а прежде чем прокинуть дальше, добавляем заголовок request-id от NGINX, у которого возможность генерации вшита прямо в модуле.
  • В случае с cron, сами генерируем request-id внутри нашего бандла.
  • Автоматически добавляем в Guzzle-клиент для продолжения передачи request-id через HTTP при синхронных запросах к нашим сервисам.
  • Автоматически добавляем request-id ко всем AMQP-продюсерам для асинхронных запросов к нашим сервисам.
  • Также во всех местах, куда мы вклиниваемся для отправки, прикручен Jaeger opentracing — это поможет построить всё дерево/карту запросов. Таким образом наш внутренний request-id в качестве атрибута уходит в трейсы opentracing.

СинтаксисSyntax

ПараметрыParameters

ПараметрParameter ОписаниеDescription
/d/d Останавливает попытки разрешения IP-адресов промежуточных маршрутизаторов в имена.Stops attempts to resolve the IP addresses of intermediate routers to their names. Это может ускорить возврат результатов.This can speed up the return of results.
/h /h Указывает максимальное число прыжков в пути для поиска целевого объекта (назначение).Specifies the maximum number of hops in the path to search for the target (destination). Значение по умолчанию — 30 прыжков.The default is 30 hops.
/j /j Указывает, что сообщения эхо-запроса используют параметр свободного исходного маршрута в заголовке IP с набором промежуточных назначений, указанных в .Specifies that echo Request messages use the Loose Source Route option in the IP header with the set of intermediate destinations specified in . При свободной маршрутизации последовательные промежуточные назначения могут быть разделены одним или несколькими маршрутизаторами.With loose source routing, successive intermediate destinations can be separated by one or multiple routers. Максимальное число адресов или имен в списке — 9.The maximum number of addresses or names in the list is 9. Представляет собой последовательность IP-адресов (в точечно-десятичной нотации), разделенных пробелами.The is a series of IP addresses (in dotted decimal notation) separated by spaces. Используйте этот параметр только при трассировке IPv4-адресов.Use this parameter only when tracing IPv4 addresses.
/w /w Указывает время в миллисекундах, в течение которого должно ожидаться получение сообщения о превышении времени ICMP или эхо-ответа, соответствующего заданному сообщению запроса эха.Specifies the amount of time in milliseconds to wait for the ICMP time Exceeded or echo Reply message corresponding to a given echo Request message to be received. Если оно не получено в течение времени ожидания, отображается звездочка ( ).If not received within the time-out, an asterisk () is displayed. Время ожидания по умолчанию — 4000 (4 секунды).The default time-out is 4000 (4 seconds).
/R/R Указывает, что заголовок расширения маршрутизации IPv6 используется для отправки сообщения эхо-запроса на локальный узел с использованием назначения в качестве промежуточного назначения и проверки обратного маршрута.Specifies that the IPv6 Routing extension header be used to send an echo Request message to the local host, using the destination as an intermediate destination and testing the reverse route.
Ключ /S Указывает исходный адрес, используемый в сообщениях эхо-запроса.Specifies the source address to use in the echo Request messages. Используйте этот параметр только при трассировке IPv6-адресов.Use this parameter only when tracing IPv6 addresses.
/4/4 Указывает, что для этой трассировки tracert.exe может использовать только IPv4.Specifies that tracert.exe can use only IPv4 for this trace.
/6/6 Указывает, что для этой трассировки tracert.exe может использовать только IPv6.Specifies that tracert.exe can use only IPv6 for this trace.
Указывает назначение, определенное IP-адресом или именем узла.Specifies the destination, identified either by IP address or host name.
/?/? Отображение справки в командной строке.Displays help at the command prompt.

Принцип работы traceroute

Для определения промежуточных маршрутизаторов traceroute отправляет целевому узлу серию ICMP-пакетов (по умолчанию 3 пакета), с каждым шагом увеличивая значение поля TTL («время жизни») на 1. Это поле обычно указывает максимальное количество маршрутизаторов, которое может быть пройдено пакетом. Первая серия пакетов отправляется с TTL, равным 1, и поэтому первый же маршрутизатор возвращает обратно ICMP-сообщение «time exceeded in transit», указывающее на невозможность доставки данных. Traceroute фиксирует адрес маршрутизатора, а также время между отправкой пакета и получением ответа (эти сведения выводятся на монитор компьютера). Затем traceroute повторяет отправку серии пакетов, но уже с TTL, равным 2, что заставляет первый маршрутизатор уменьшить TTL пакетов на единицу и направить их ко второму маршрутизатору. Второй маршрутизатор, получив пакеты с TTL=1, так же возвращает «time exceeded in transit».

Процесс повторяется до тех пор, пока пакет не достигнет целевого узла. При получении ответа от этого узла процесс трассировки считается завершённым.

На оконечном хосте IP-датаграмма с TTL = 1 не отбрасывается и не вызывает ICMP-сообщения типа срок истёк, а должна быть отдана приложению. Достижение пункта назначения определяется следующим образом: отсылаемые traceroute датаграммы содержат UDP-пакет с заведомо неиспользуемым номером порта на адресуемом хосте. Номер порта будет равен 33434 + (максимальное количество транзитных участков до узла) — 1. В пункте назначения UDP-модуль, получая подобные датаграммы, возвращает ICMP-сообщения об ошибке «порт недоступен». Таким образом, чтобы узнать о завершении работы, программе traceroute достаточно обнаружить, что поступило ICMP-сообщение об ошибке этого типа.

Results

When getting the traceroute results, feel welcome to enlarge the Google Maps by clicking the fullscreen icon in the top-right corner of the tool.

You’re now able to deep dive in Google Maps the path of a IP packet from our server to any Internet-connected device.

The table under the map gives you synthetic results over each hop of the tested route. The maximum hops number is limited to 30. Whenever it’s possible, we determine the hostname related to each hop we discover. The blue-colored value confirms the IP of each relaying node. We colored in green their return-trip response time (in ms).

Regularly, it’s possible that a node is actually configured not to send any TIME_EXCEEDED packet back to the origin. In those case, those node can only relay the packet but won’t answer any information related to their network identity. For those hops, we fill in the table line by symbolic asterisks ‘*’ and the map cannot be completed at 100% by lack of information. This is totally expected in most cases if it happens in the middle of the route.

However, if you notice delays or time outs at the very end of the traceroute, there’s a chance that something’s wrong with one of your infrastructure nodes as those hops are the last one before reaching your target. In that case, I advise you to check if:

  • Your local network’s firewall is blocking ICMP packets. If it’s already accepting HTTP (TCP/UDP) packets, it may not be a real issue, depending on your needs.
  • Your local network is correctly connected to Internet. Double check any faulty cable, network card or software on the way.
  • There is no declared route back to G Suite.Tools’ server. The remote host should get its default gateway and routing tables updated if needed.
  • The return-trip takes more than 2 s to reach back our server. The path may be congested and you may upgrade your connection after analyzing it precisly.

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

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

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

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

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

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

Adblock
detector