Что показывает команда traceroute? Для чего она?
Команда traceroute - это базовый инструмент, который используется для мониторинга состояния сети. traceroute используется в системах с Linux для отображения маршрута от Вашего сервера через узлы к месту назначения (домена или ІР), а также выводит задержку. Эта команда применяется, когда нужно узнать о маршруте и обо всех прыжках, которые выполняет пакет. И если на одном из узлов возникнет проблема, можно определит на каком именно. Анализ результатов также может быть использован для понимания задержки, потери данных или диагностики сетевых проблем.
С помощью traceroute предоставляется возможность увидеть, сколько времени потребуется для того, чтобы ваши пакеты достигли места назначения, и тем самым понять, почему некоторые веб-сайты загружаются дольше, чем другие, исходя из объема трафика, который проходит в пути.
Перед началом работы нужно убедиться, что traceroute установлена на сервере, если нет, это можно сделать через менеджер пакетов своего дистрибутива Linux. Использовать команду очень легко, просто в консоле после самой утилитой указываем адрес узла, им может служить домен или же IP. Дополнительно совместно с командой можно применять ключи, к ним еще вернемся.
После ввода на исполнение команды, в первой строке содержится информация с именем хоста и IP (указано нами в команде), которые будут достигнуты в результате, дальше идет максимальное количество прыжков к указанному хосту, что будет пытаться выполнить traceroute, и размер пакетов в байтах, которые должны быть переданы.
Коротко разберем сам алгоритм осуществления команды traceroute. traceroute использует набор протоколов TCP/IP, для выполнения делает отправку тестовых UDP пакетов с небольшим временем жизни, а затем пытается вызвать ICMP ответ “TIME_EXCEEDED” от каждого шлюза по пути к указанному хосту.
Пакет отправляется от своего источника к месту назначения через маршрутизатор. Каждая строка содержит и выводит на екран подробности взаимодействия с каждым встреченным маршрутизатором. Где заголовок содержит поле времени жизни (TTL), что представляет собой счетчик отсчета переходов. И за это параметр на скриншоте отвечает первый столбец, в нем идет последовательная нумерация прыжков. При исполнении traceroute увеличивает TTL на 1 и пытается снова выполнить отправку пакетов. Этот процесс повторяется до тех пор, пока не будет достигнут указанный в команде пункт назначения или не будет проверено максимальное количество прыжков (по умолчанию их 30). Когда пакет достигает своего максимального значения TTL, последний переход в строке отправит обратно пакет «ICMP TTL Exceeded» обратно к источнику. Этот ответ - то, что ищет traceroute. Сообщение «ICMP TTL Exceeded» содержит важную информацию, такую как время, необходимое для достижения этого перехода, и название маршрутизатора или его IP, который делает этот ответ.
Второй столбец представляет адрес узла для каждого перехода, затем идет три разделенных пробелами времени в миллисекундах. Так как команда traceroute по умолчанию отправляет три пакета на переход, и каждое указанное на выводе время относится к времени, которое требуется этому пакету для достижения перехода. В результате выводится строка, показывающая TTL, имя хоста, затем ip этого хоста, и время прохождения которое требуется пакету, чтобы добраться до хоста и вернуться к серверу. Адрес может сопровождаться дополнительной информацией по запросу. Если ответы поступают от разных шлюзов, тогда отдельно будет напечатан адрес каждой отвечающей системы. У traceroute также по умолчанию установлено время ожидания ответов от маршрутизаторов в пять секунд. Если за это время не предоставляется ответ, попытка прекращается и для этого пакета будет выводиться в консоль знак * (см.скриншот внизу), это может означать, что маршрутизатор попросту не предоставил ответ или же очень медленный.
Ключи в traceroute несут разные функции, и могут быть полезны, при настройке и замене стандартных параметров выполнение команды и характеристик пакетов, для удобного вывода данных.
Рассмотрим часто использование опции команды и их применение на примерах:
-n - используется, если нужно получить вывод только IP адресов маршрутизаторов без их имен.
-w - с помощью этой опции можно изменить стандартное время ожидание ответа от маршрутизатора, задается в секундах. Например, мы установили значение в 0.3 секунды.
-q - для указания нового значения для количества пакетов на один переход, по-умолчанию их 3, изменим его на 5.
-m - изменяет стандартные времени жизни (TTL), по-умолчанию идет 30, откорректируем на примере на 20.
Просмотреть все доступные для команды ключи, можно например через --help, где на экране будет представлен список ключей с кратким описанием их назначения.
Команда traceroute является базовой и используется в рутине при администрировании для понимания проблем в сети. Мы команда ГиперХост предлагаем администрирование серверов 24/7, что гарантирует бесперебойную работу ваших проектов.