Tracert команда cmd linux
Командой tracert мы инициируем отправку пакетов данных тому получателю, который указали – это может быть адрес сайта, имя компьютера в сети или IP-адрес. При этом пакеты проходят через все промежуточные системы (обычно это специальные сетевые устройства – машрутизаторы) между нашим компьютером и получателем. Таким образом, мы устанавливаем маршрут до пункта назначения и, что гораздо более важно – определяем время отклика (значение в миллисекундах) каждого промежуточного узла.
Таким образом можно установить, в каком месте цепочки находится проблема. Если пакеты не доходят до самого пункта назначения – значит, проблема в нем. Если цепочка обрывается на середине – проблема в каком-то из промежуточных маршрутизаторов. При этом с другого компьютера или по другому маршруту (если такой существует) наш отвалившийся сайт может быть доступен. Если пакеты не выходят за пределы сети нашего провайдера – стало быть, там и проблема.
Трассировка в Linux
В linux за трассировку отвечает пакет traceroute. Первое что сделаем это поставим пакет.
Для CentOS и RedHat
yum install -y traceroute
Для Debian и Ubuntu
apt-get install traceroute -y
Как сделать трассировку в Ubuntu-Debian-CentOS с помощью traceroute-01
Сделаем трассировку до Яндекса. traceroute ya.ru. Видим пошло построение маршрута.
Как сделать трассировку в Ubuntu-Debian-CentOS с помощью traceroute-02
Как видите команда очень похожа на команду из операционной системы Windows. Данная команда очень сильно вам поможет в решении сетевых проблем, так что трассировка вам в помощь.
Источник
Мониторинг сети в Linux (ping, traceroute, mtr)
Существует несколько хороших утилит, позволяющих искать неисправности в сети на уровне TCP/IP. Большинство из них выдает низкоуровневую информацию, поэтому для того чтобы пользоваться ими, нужно хорошо понимать принципы работы протоколов TCP/IP и маршрутизации. В этой статье мы рассмотрим основные инструменты поиска неисправностей в сети: утилитами ping, traceroute и mtr.
Утилита ping
Проверка доступности компьютера
Утилита ping предназначена для того, чтобы при помощи отправки ICMP пакетов убедиться в работоспособности хоста. Команда ping посылает запрос (ICMP ECHO_REQUEST) конкретному компьютеру и фиксирует поступающие ответы (ICMP ECHO_RESPONSE). Её можно применять для работоспособности отдельных компьютеров и сегментов сети. В обработке ее запроса участвуют таблицы маршрутизации, физические компоненты сетей и сетевые шлюзы, поэтому для достижения успешного результата сеть должна быть в более или менее рабочем состоянии. Если команда не работает, можно быть совершенно уверенным в том, что более сложные средства тем более не функционируют. Однако это правило неприменимо в сетях, где брандмауэры блокируют эхо-запросы ICMP. Убедитесь в том, что брандмауэр не препятствует работе команды ping, прежде чем подозревать, что зондируемый компьютер игнорирует эту команду. В конце концов, отключите на короткое время брандмауэр для проверки работоспособности сети.
Если не задан аргумент «число пакетов», команда ping работает в бесконечном цикле. Чтобы прервать работу команды, нужно нажать специальную клавиатурную комбинацию .
Например, пропингуем neoserver.ru (это имя хоста):
Информация о компьютере neoserver.ru включает его IP-адрес, порядковый номер ответного ICMP-пакета и полное время прохождения пакета. Полученные результаты свидетельствуют о том, что компьютер neoserer.ru работает и подключен к сети.
Min — минимальное время ответа хоста, кторому был отправлен запрос.
Avg — среднее время ответа хоста, кторому был отправлен запрос
Max — максимальное время ответа хоста, кторому был отправлен запрос.
Ещё вы увидите TTL — определяет максимальное количество хопов (то есть прыжок, участок между маршрутизаторами), которые пакет может пройти. Наличие этого параметра не позволяет пакету бесконечно ходить по сети.
В ОС Linux, как уже было сказано выше, команда ping без дополнительных параметров будет пинговать заданный хост бесконечно. Чтобы отправить, например, 10 запросов, необходимо добавить ключ -с:
В итоге, мы видим, что было отпралено 10 запросов и выведен результат.
Другие примеры задействования разын ключей:
Не резолвить имена адресов, выводить только ip-адреса
Завершение работы ping по заданному времени (тут 5 секунд)
Установить размер отправляемых пакетов в 1000 байт
Увеличить интервал времени пинга на 3 секунды
Утилита traceroute
Каждый пакет проходит на своем пути определенное количество узлов, пока достигнет своей цели. И, как мы уже знаем, каждый пакет имеет свое время жизни. Это количество узлов, которые может пройти пакет перед тем, как он будет уничтожен. Этот параметр записывается в заголовке TTL, каждый маршрутизатор, через который будет проходить пакет уменьшает его на единицу. При TTL=0 пакет уничтожается, а отправителю отсылается сообщение Time Exceeded.
Команда traceroute linux использует UDP пакеты. Она отправляет пакет с TTL=1 и смотрит адрес ответившего узла, дальше TTL=2, TTL=3 и так пока не достигнет цели. Каждый раз отправляется по три пакета и для каждого из них измеряется время прохождения. Пакет отправляется на случайный порт, который, скорее всего, не занят. Когда утилита traceroute получает сообщение от целевого узла о том, что порт недоступен трассировка считается завершенной.
Синтаксис утилиты не сложный:
Адресом узла может служить как IP адрес, так и доменное имя. Основные опции:
Для примера, выпоним трасировку к ресурсу yandex.ru:
В итоге, пакет прошел через 6 узлов перед тем, как дойти до указанного хоста. На каждый узел отправлялось по три пакета и для каждого из них было засечено время прохождения. И если на одном из узлов возникнет проблема, теперь вы будете знать на каком.
Иногда, вместо одного узла вы можете видеть звездочки. Это значит, что шлюзы либо не высылают нам ICMP с сообщением «time exceeded», либо у их сообщений слишком маленький TTL и оно нас не достигает. В точности нельзя сказать, что происходит на самом деле, но ясно, что по какой-то причине хост не захотел нам отвечать:
Бывает, что трассировка с помощью UDP не работает, это может произойти потому, что фаервол блокирует все лишние пакеты. Можно воспользоваться ICMP с помощью опции -I:
Рассмотреных выше простых примеров, вполне достаточно для первичной диагностики сети как для обычныз пользователей, так и для начинающих администраторов.
Утилита MTR
MTR – это альтернатива программе traceroute. Объединяя функции ping и traceroute, mtr позволяет постоянно опрашивать удаленный сервер и отслеживать изменения задержки и производительности с течением времени.
Синтаксис утилиты также несложный:
Вывод похож на traceroute, но mtr имеет существенное преимущество – ее вывод постоянно обновляется. Это позволяет собирать средние показатели, а также отслеживать тенденции и изменения производительности сети. Как и с утилитой ping, mtr будет работать бесконечно. Чтобы прервать работу команды, нужно нажать специальную клавиатурную комбинацию .
Источник
Traceroute, как использовать в Linux
Команда traceroute используется в Linux для отображения пути прохождения пакета информации от его источника к месту назначения. Одним из способов использования traceroute является обнаружение случаев потери данных по всей сети, что может указывать на то, что узел не работает.
Поскольку каждый переход в записи отражает новый сервер или маршрутизатор между исходным ПК и предполагаемой целью, анализ результатов сканирования трассировки также позволяет выявлять медленные точки, которые могут отрицательно повлиять на сетевой трафик.
Синтаксис traceroute и другая информация, описанная ниже, применима только к машинам Linux.
Как работает Traceroute
Оценка конкретного маршрута, по которому следует сетевой трафик (или нахождение неверного шлюза, отбрасывающего ваши пакеты), представляет несколько проблем с устранением неполадок. Traceroute использует поле протокола IP, времени жизни для запроса ответа ICMP TIME_EXCEEDED от каждого шлюза по пути к хосту назначения.
Единственный параметр, который необходимо указать при выполнении команды traceroute, — это имя хоста или IP-адрес места назначения.
Синтаксис traceroute и ключи
traceroute [ -dFInrvx ] [ -f first_ttl ] [ -g gateway ] [ -i iface ] [ -m max_ttl ] [ -p port ] [ -q nqueries ] [ -s src_addr ] [ -t tos ] [ -w waittime ] [ -z pausemsecs ] host [ packetlen ]
Хотя вышеизложенное показывает, как команда traceroute должна быть записана для работы в командной строке, производительность или выходные данные команды можно изменить, указав один или несколько необязательных ключей.
Ключ | Описание |
-f | Установить начальное время жизни, используемое в первом исходящем тестовом пакете. |
-F | Установить бит «не фрагментировать». |
-d | Включить отладку на уровне сокетов. |
-g | Указать свободный исходный шлюз маршрута (максимум 8). |
-i | Указать сетевой интерфейс для получения исходного IP-адреса для исходящих тестовых пакетов. Обычно это полезно только на многосетевом хосте. (Смотрите ключ -s для другого способа сделать это.) |
-l | Использовать ICMP ECHO вместо UDP . |
-m | Установить максимальное время жизни (максимальное количество прыжков), используемое в исходящих тестовых пакетах. По умолчанию используется 30 переходов (то же самое, что используется по умолчанию для соединений TCP). |
-n | Выводить адреса переходов численно, а не символически и численно (сохраняет поиск адреса к имени сервера имен для каждого шлюза, найденного на пути). |
-p | Установить базовый номер порта UDP (по умолчанию 33434). Traceroute надеется, что на базе портов UDP ничего не прослушивается base + nhops — 1 на хосте назначения (поэтому будет возвращено сообщение ICMP PORT_UNREACHABLE для завершения трассировки маршрута). Если что-то прослушивает порт в диапазоне по умолчанию, этот параметр можно использовать для выбора неиспользуемого диапазона портов. |
-r | Обходить обычные таблицы маршрутизации и отправка напрямую на хост в подключенной сети. Если хост не находится в сети с прямым подключением, возвращается ошибка. Эта опция может использоваться для проверки связи с локальным хостом через интерфейс, у которого нет маршрута через него (например, после того, как интерфейс был сброшен маршрутизируемым (8C)). |
-s | Использовать следующий IP-адрес (который обычно задается как IP, а не имя хоста) в качестве адреса источника в исходящих тестовых пакетах. На многосетевых хостах (с несколькими IP адресами) этот параметр можно использовать, чтобы заставить исходный адрес отличаться от IP-адреса интерфейса, на который отправляется тестовый пакет. Если IP-адрес не является одним из адресов интерфейса данного хоста, возвращается ошибка и ничего не отправляется. (Смотрите ключ -i для другого способа сделать это.) |
-t | Установить для type-of-service в тестовых пакетах следующее значение (по умолчанию ноль). Значение должно быть десятичным целым числом в диапазоне от 0 до 255. Этот параметр можно использовать, чтобы увидеть, приводят ли разные типы обслуживания к разным путям. Не все значения TOS являются законными или значимыми. Полезные значения, вероятно, «-t 16» (низкая задержка) и «-t 8» (высокая пропускная способность). |
-v | Подробный вывод. Полученные ICMP-пакеты, кроме TIME_EXCEEDED и UNREACHABLE. |
-w | Установить время (в секундах) ожидания ответа на нод (по-умолчанию 5 секунд). |
-x | Переключить контрольные суммы IP . Обычно это не позволяет traceroute вычислять контрольные суммы IP. В некоторых случаях операционная система может перезаписывать части исходящего пакета, но не пересчитывать контрольную сумму; таким образом, в некоторых случаях по умолчанию не вычисляются контрольные суммы, а использование -x приводит к их вычислению. Обратите внимание, что контрольные суммы обычно требуются для последнего прыжка при использовании ICMP ECHO ( -I ), поэтому они всегда рассчитываются при использовании ICMP. |
-z | Установить время (в миллисекундах) для паузы между прыжками (по умолчанию 0). Некоторые системы, такие как Solaris и маршрутизаторы от Cisco, ограничивают скорость передачи сообщений icmp. Хорошее значение для использования это 500 (например, 1/2 секунды). |
Интерпретация результатов
Traceroute обрисовывает путь, по которому IP-пакет следует к хосту, запуская тестовые пакеты UDP с небольшим TTL (время жизни), а затем прослушивая ICMP-ответ «превышено время» от шлюза. Мы запускаем наши тесты с TTL, равным единице, и увеличиваем его на единицу, пока не получим ICMP «порт недоступен» (что означает, что пакет прибыл в пункт назначения) или не достигнем максимального значения попыток, которое по умолчанию составляет 30 прыжков и может быть изменено с помощью ключа -m .
Когда traceroute выполняется, он отправляет три сигнала с каждой настройкой TTL, а затем выводит на консоль строку, показывающую TTL, адрес шлюза и время прохождения сигнала в обоих направлениях. Если ответы зондирования поступают из разных шлюзов, печатается адрес каждой отвечающей системы. Если в течение пятисекундного интервала ожидания ответа нет (изменяется с помощью ключа -w ), для этого сигнала печатается звездочка.
Чтобы предотвратить перегрузку хоста назначения при обработке зондирующего пакета UDP, для порта назначения установлено значение, которое вряд ли будет использоваться этим устройством. Если сеть или служба в пункте назначения использует этот порт, измените значение с помощью ключа -p .
Пример использования и вывода результатов:
Traceroute предназначен для использования в тестировании, измерении и управлении сетью. Его следует использовать главным образом для ручной локализации неисправностей. Из-за нагрузки, которая может быть наложена на сеть, неразумно использовать traceroute во время обычных операций или из автоматических сценариев.
Источник