Часто какой-нибудь сегмент сети не работает должным образом. Как ни странно, при проверке часто обнаруживается, что используемое оборудование подключено и исправно. Трудно определить, что не работает, на каком участке проблема. На это есть своё объяснение. Это означает, что одно из устройств в локальной сети попросту не отвечает, что приводит к потере некоторых данных.
Необходимо разобраться, какой из узлов дал сбой. Это легко проверить при помощи специальной утилиты под названием traceroute в Линукс. В данной статье рассматривается использование проверенного инструмента только для компьютеров Linux. В других системах эти инструкции не работают.
Принцип работы трассировки
Данные в сети передаются в виде пакетов. Об этом знает даже новичок. Поток информации нуждается в разбивке, что обеспечивают специальные программы, установленные на компьютере. Далее эти пакеты отправляются на целевой узел через Интернет, после чего поток информации заново собирается.
How to Fix DTLS Connecting on Discord
Каждая «порция» данных имеет ограниченный срок жизни и переходит от узла к узлу, достигая конечной цели. По умолчанию утилита traceroute использует пакеты формата UDP, но данный параметр поддается коррективам. Вскоре вы сами в этом убедитесь.
команда traceroute не найдена
Обычно по умолчание утилита traceroute не входит в комплект дистрибутивов Линукс и поэтому при использовании трассировки можно получить ошибку «команда не найдена», в английском варианте «command not found». Установка в Убунту, Debian: # apt update
# apt install traceroute В Centos 7 # yum install traceroute В Centos 8 # dnt install traceroute
Синтаксис
Рассмотрим синтаксис команды.
traceroute опции адрес_узла
В той части команды, где будет указан адрес узла, необходимо прописать доменное имя или IP-адрес.
Дополнительные опции
Чтобы изменить тип пакетов, необходимо воспользоваться соответствующими опциями. Для пакетов ICMP – опция -I. Для пакетов TCP – опция -T. Вследствие чего формат UDP больше не будет использован программой. Если нужно указать размер пакета, задайте опцию —mtu. В таблице маршрутизации будет указано конкретное устройство. Чтобы поменять его, и задать другой роутер, задайте опцию -r.
Для установки максимально допустимого времени жизни пакета задайте опцию -m. Чтобы задать длительность паузы между прыжками, задайте опцию -z. Вышеперечисленные ключи не являются обязательными для использования traceroute в командной строке устройства Линукс. Вы всегда можете запустить утилиту без добавления вспомогательных опций.
Примеры трассировки в Linux
how to run a traceroute
Рассмотрим на примере выполнение трассировки сети до определенного сервера. Он будет указан в завершении: traceroute vseprolinux.ru Как видно из скриншота, пакет дошел до сайта всего за два хоста Система отправляла по 3 пакета на каждый из этих узлов, засекая при этом точное время их прохождения. Имея подобную информацию на руках, очень просто понять, на каком узле возникла проблема, если сеть дала сбой. Следует учитывать тот факт, что сервисная задержка может отнять немало времени. Это связано с приоритетностью маршрутизатора. Приходящие пакеты всегда находятся в фаворе. Если в появившемся окне вместо узла указаны звёздочки утилиты, не стоит делать поспешных выводов о его поломке. Скорее всего, узел просто не ответил на этот раз. Если трассировка сети не осуществляется с помощью пакетов UDP, их формат нужно поменять. В ином случае фаервол продолжил блокировку лишних пакетов. О том, как осуществить замену на практике, говорилось выше. Например, если вы хотите отдать предпочтение пакетам ICMP, то нужно подобрать соответствующую опцию, указанную в статье. В данном случае это опция -I. Для начала пробуем без изменений: # traceroute history.pl Если не получается, измените формат пакетов: # taceroute -I history.pl Обрыв цепочки – не единственное, что может выявить трассировка сети Linux. Её также можно применить для исследования сети. К примеру, пользователю нужно выяснить, какие подсети используются поставщиком Интернет-услуг. Для этого необходимо отправить 3 запроса с указанием разных адресов. Вот так это выглядит на практике: Первый адрес: # traceroute vseprolinux.ru Второй адрес: # traceroute mail.ru Третий адрес: # taceroute habrahabr.ru Чтобы разобраться с полученными данными и сделать правильное умозаключение, следует провести сравнение 3 выводов заданных команд. Вы увидите, к какой локальной сети подключен ваш маршрутизатор, и какие сети использует провайдер. Подводя итог, следует резюмировать основные функции команды traceroute:
- Тестирование сети
- Управление сетью
- Измерение сети.
Заключение
Утилита treaceroute – весьма популярный и надежный инструмент для проверки обрыва цепочки, используемый не только системными администраторами, но и обычными пользователями дистрибутива Linux. Эта команда может пригодиться при различных неисправностях. Её рекомендуется использовать исключительно для ручной локализации проблем. Использование traceroute во время стандартных операций и автоматических сценариев может оказать мощную нагрузку на сеть, что не является целесообразным решением.
Источник: www.vseprolinux.ru
Traceroute и Tracert — утилиты-близнецы? Что такое трассировка сети
Для большинства поставщиков управляемых услуг (MSP), системных администраторов и технических специалистов, команды Traceroute и Tracert являются первыми сигналами для устранения неполадок, связанных с задержкой сети или проблемами с подключением. Но что это?
Что такое Traceroute и Tracert
Traceroute или Tracert – это утилита, служащая для диагностики сети. Она отслеживает пути, по которым пакеты данных проходят от источника к хосту назначения, что позволяет администраторам оперативно решить проблемы с подключением.
В Windows эта команда называется Tracert, а в Linux и MacOS – Traceroute.
Traceroute и Tracert в основном работают одинаково – они предоставляют информацию о пути пакета данных из одной точки сети на конкретный IP-сервер. Когда данные передаются между двумя точками, они должны проходить через несколько устройств (например, маршрутизаторы).
Traceroute сопоставляет каждый переход, предоставляет подробную информацию и время приёма-передачи (RTT), а также, по возможности, сообщает имя устройства и IP-адрес.
В то время как команда Ping может сообщить, есть ли проблема, Traceroute поможет вам точно определить, где именно она образовалась.
Представьте, что вы посещаете веб-сайт, и его страницы долго загружаются. В этом случае вы можете использовать Traceroute, чтобы определить, где происходят самые длительные задержки, чтобы добраться до источника самого сбоя.
Как работает Traceroute и Tracert?
- По протоколу UDP (User Datagram Protocol – «протокол пользовательских датаграмм») Traceroute отправляет последовательность IP-пакетов. Всего таких пакетов по умолчанию может быть 3.
- Первый пакет имеет время жизни (также известное как TTL (Time To Live) или лимит переходов), равное 1, второй пакет имеет TTL=2 и так далее.
- Каждый раз, когда пакет передается новому маршрутизатору, TTL уменьшается на 1. Это сделано для предотвращения проблем с зацикливанием между серверами. Если бы не было TTL, пакет мог бы бесконечно долго перебрасываться между серверами.
Когда время жизни достигает 0, пакет отбрасывается, а маршрутизатор возвращает сообщение об ошибке. Отправляя пакеты таким образом, Traceroute гарантирует, что каждый маршрутизатор на пути отклонит пакет и отправит ответ.
Всё о трассировке
Что такое трассировка?
Трассировка или точнее распределённая трассировка – это возможность отслеживать запросы по мере их прохождения через распределённые системы путём сбора данных о том, как они передаются от одной службы к другой.
Данные трассировки помогают понять поток запросов и определить, где в системе возникают сбои или проблемы с производительностью и почему.
Например, запрос может пройти через несколько служб и пройти туда и обратно через различные микрослужбы, чтобы достичь завершения.
Хотя трассировки существуют уже давно, тенденция к распределённым архитектурам, микросервисам и контейнеризации сделала их важной частью большой системы наблюдения. Ведь наличие механизма, позволяющего понять поток данных, необходимо для обслуживания серверов и устранения неполадок.
Трассировка, наряду с журналами и метриками, занимает важное место в системе. В то время как журналы предоставляют сведения о конкретных событиях, таких как обращение к базе данных и запись в файл или сообщение об ошибке, трассировка соединяет цепочку связанных событий.
Одна трассировка маршрута даёт представление о:
- каждом шаге, через который прошёл запрос;
- количестве времени, затраченном на каждое действие;
- общем времени, которое понадобилось на его обработку.
В то время, как журналы предоставляют подробные сведения об активности, выполняемой каждой службой в процессе, ведение журнала трассировки обеспечивает полную запись цепочки событий, инициированных первоначальным запросом.
Эта информация бесценна для отладки сложных проблем и оптимизации вашей системы.
Как работает трассировка?
Прежде чем перейти к трассировке, важно узнать, что приложения могут быть монолитными или микросервисными.
Монолитное приложение разрабатывается как единый функциональный модуль, в то время как приложение с микросервисной архитектурой разбивается на модульные службы, каждая из которых выполняет основную функцию приложения и часто управляется специальной командой.
Микросервисы используются для создания многих современных приложений, поскольку они упрощают тестирование и развёртывание быстрых обновлений, а также предотвращают возникновение единой точки отказа.
Но устранение неполадок с микрослужбами может оказаться сложной задачей, поскольку они часто работают на базе сложной серверной архитектуры, а запросы могут включать в себя последовательности вызовов нескольких служб.
Используя трассировку, разработчики могут визуализировать весь путь запроса – от интерфейса к серверу – и точно определить любые сбои производительности, которые возникают на этом пути.
Платформы трассировки начинают собирать данные в момент подачи запроса. Например, когда пользователь отправляет форму на веб-сайте. Это создаёт уникальный идентификатор трассировки.
Этот процесс позволяет идентифицировать каждый запрос, вызов и процесс и соответствующим образом расставлять приоритеты в своих усилиях по устранению неполадок.
Для получения результатов трассировки в том числе используются команды Traceroute и Tracert.
Разница между Traceroute и Tracert
Принцип работы у Traceroute и Tracert один, однако разница между ними состоит не только в операционных системах.
Напоминаем, что команда Tracert обслуживает Windows, а Traceroute работает на Linux и MacOS.
Tracert
- Tracert, в отличие от своего Linux-двойника, реализован на основе протокола ICMP, а не UDP.
- Tracert отправляет эхо-запрос ICMP (ICMP Echo Request) с TTL=1.
- Первый маршрутизатор проверяет адрес назначения, чтобы выяснить был ли отправлен запрос именно ему.
- Узнав, что цель пакета – другой хост, маршрутизатор отбрасывает его, и TTL становится равным 0.
- Затем маршрутизатор 1 отправляет ICMP-сообщение с указанием информации о себе и причине проблемы источнику пакета: «Time-To-Live Exceeded» или «Time Exceeded in transit».
- Благодаря этому сообщению Tracert записывает маршрутизатор 1 как первый транзитный участок или, как его ещё называют, «хоп, прыжок».
Процесс передачи пакета между промежуточными маршрутизаторами продолжится, пока переменная (TTL ICMP-запроса), не станет равна количеству «прыжков» между узлом-отправителем и узлом-получателем, и пакет не будет получен хостом назначения или количество сетевых переходов не превысит максимальное значение для Tracert – 30.
- Когда целевой хост проверит IP-адрес назначения и узнает, что запрос был направлен именно ему, он отправит эхо-ответ ICMP (ICMP Echo Request), что даст утилите понять, что процесс передачи завершён.
Traceroute
В чём ещё отличие Traceroute от Tracert? В Traceroute схема схожая, практически идентичная.
Целевому хосту направляется фрагментированный UDP-запрос. Таким образом, отправляется сразу несколько пакетов с TTL: TTL=1, TTL=2 и TTL=3.
Вот только раз эта утилита не отправляет эхо-запрос ICMP, как она понимает, что трассировка подошла к концу?
Всё просто: в каждом пакете содержатся данные о порте отправителя (Source) и порте получателя (Destination). Destination порт по умолчанию закрытый (34434), поэтому утилита Traceroute сразу понимает, что процесс передачи данных завершён, когда получает ответ с сообщением о недоступности порта «Destination port unreachable» (Хост/Порт недостижим). Иными словами, запрос достиг целевого хоста.
Как использовать Traceroute и Tracert?
В основном пользователи могут использовать команду Traceroute или Tracert через обычную командную строку. Однако точный метод его запуска зависит от операционной системы компьютера.
Давайте посмотрим, как запустить команду Traceroute или Tracert в Windows, Linux и macOS.
- Перейдите в меню Пуск.
- Выберите Выполнить.
- Введите cmd и нажмите ОК. Это откроет командную строку.
- Введите команду tracert и затем впишите имя хоста или IP-адрес назначения. Пример: tracert www.nic.ru
- Нажмите Enter.
- Откройте приложение Терминал. Это можно сделать при помощи сочетания клавиш CTRL + Shift + T.
- Впишите команду traceroute вместе с именем хоста или IP-адресом. Пример: traceroute www.nic.ru
- Нажмите Enter.
Раньше это действие можно было выполнить через встроенное приложение Сетевая утилита, но на данный момент она не поддерживается компанией Apple. Поэтому:
- Запустите приложение Терминал.
- Введите команду traceroute и имя хоста или IP-адрес назначения. Пример: traceroute www.nic.ru
- Нажмите Enter.
Также можно добавить дополнительные параметры в команду Traceroute или Tracert, чтобы сделать ваши результаты более точными. Вот некоторые расширенные параметры трассировки:
Команда | Описание |
-d | Команда Traceroute в Linux по умолчанию отправляет пробные пакеты UDP. Вы можете использовать эту опцию, чтобы преобразовать их в пакеты ICMP. |
-h maximum_hops | Укажите максимальное количество переходов, включённых в процесс Tracert. Если вы не измените значение, оно будет соответствовать максимальному значению по умолчанию, равному 30 хопам. |
-n | Поможет исключить доменные имена из результатов Traceroute. |
-q number of packets | По умолчанию Traceroute отправляет три пакета. Вы можете изменить это число с помощью этой опции, за которой следует указать нужное количество пакетов. |
-m max_ttl | Укажите максимальное количество переходов для процесса трассировки. Значение по умолчанию равно 30. |
-w wait_time | Установите максимальное время ожидания для каждого ответа. |
-p | Установите порт назначения для запроса. |
-f | Укажите с какого TTL начать. По умолчанию значение равно 1. |
-4 | Задействование протокола IPv4. |
-6 | Задействование протокола IPv6. |
Как читать результаты Tracert
После выполнения команды Tracert или Traceroute система представит результаты в виде множества строк. Отчёт может несколько отличаться в зависимости от вашей операционной системы, но обычно он содержит одну и ту же информацию.
Стандартные результаты Tracert или Traceroute включают в себя несколько строк, описывающих каждый переход, который проходит пакет для достижения хоста назначения. Каждая строка разделена на столбцы с различной информацией.
Давайте рассмотрим каждый столбец и его детали.
Число хопов | Имя хоста/IP-адрес | RTT 1 | RTT 2 | RTT 3 |
5 | 83.169.204.90 | 182.729 ms | 174.127 ms | 165.767 ms |
8 | 192.168.43.1 | 5.735 ms | 8.287 ms | 6.694 ms |
9 | 198.18.8.1 | 24.408 m | 33.209 ms | 26.241 ms |
Число хопов – первый столбец количество сделанных “прыжков”.
IP-адрес или имя хоста – этот столбец раскрывает IP-адрес или имя хоста устройства на этом конкретном переходе.
RTT – это круговая задержка или время приёма-передачи, которое показывает, сколько времени требуется каждому пакету, чтобы достичь определенного IP-адреса и вернуться на ваш компьютер. Существует три разных столбца RTT, так как Traceroute по умолчанию отправляет три UDP-пакета.
Если время трассировки истекает на определенном узле, это может означать, что в данном месте возникла проблема или что маршрут неверен, что не позволяет пакету достичь пункта назначения. В результатах это представлено как:
Число хопа | Имя хоста/IP-адрес | RTT 1 | RTT 2 | RTT 3 |
13 | (Request timed out.) | * | * | * |
Заключение
Команда Traceroute и Tracert – это полезный и простой в использовании инструмент диагностики сети. Как правило, это ещё и первый способ устранения неполадок с подключением.
В этой статье вы узнали, чем эта утилита может отличаться в зависимости от вашей операционной системы, как использовать команду и читать полученные результаты.
Источник: www.nic.ru
Как мне запустить traceroute для discord
Иногда нужно понять, на каком узле происходит блокировка трафика определенного протокола. Но когда ICMP полностью открыт, просто traceroute не помогает.
Поэтому можно использовать ключи, которые могут определить протокол и порт. Например, если мы хотим сделать трассировку по порту 22 (SSH), укажем -p 22. А чтобы указать, что это TCP – пишем ключ -T или –tcp
# traceroute -T -p 22 192.168.100.101
Соответственно для UDP пишем -U или –udp
# traceroute -U -p 53 192.168.100.101
Источник: unlix.ru