Для чего сетевой администратор может использовать утилиту tracert: трассировка маршрута прохождения пакетов ICMP

Содержание

трассировка маршрута прохождения пакетов ICMP

TRACERT — трассировка маршрута прохождения пакетов ICMP

Команда TRACERT показывает трассировку маршрута до указанного удаленного хоста. В ходе трассировки будет показан весь маршрут прохождения пакетов. Также эта команда командной строки показывает в мс задержку пакетов от каждого узла на пути каждого маршрутизатора. Эта задержка позволяет определить, на каком промежуточном участке происходит потеря пакетов (потери обозначаются *).

TRACERT выполняет трассировку до точки назначения с помощью посылки адресату эхо-сообщений. Посылка осуществляется по протоколу Control Message Protocol (ICMP) с постоянным увеличением значений срока жизни пакетов (Time to Live, TTL).

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

Видео: TRACERT — трассировка маршрута до удаленного хоста

Параметры и ключи утилиты TRACERT

tracert [-d] [-h максимальное_число_переходов] [-j список_узлов] [-w интервал [имя_конечного_компьютера]

  • -d — Предотвращает попытки команды tracert разрешения IP-адресов промежуточных маршрутизаторов в имена. Увеличивает скорость вывода результатов команды tracert.
  • -h максимальное_число_переходов — Задает максимальное количество переходов на пути при поиске конечного объекта. Значение по умолчанию равно 30.
  • -j список_узов — Указывает для сообщений с эхо-запросом использование параметра свободной маршрутизации в заголовке IP с набором промежуточных мест назначения, указанных в списке_узлов. При свободной маршрутизации успешные промежуточные места назначения могут быть разделены одним или несколькими маршрутизаторами. Максимальное число адресов или имен в списке — 9. Список_адресов представляет набор IP-адресов (в точечно-десятичной нотации), разделенных пробелами.
  • -w интервал — Определяет в миллисекундах время ожидания для получения эхо-ответов протокола ICMP или ICMP-сообщений об истечении времени, соответствующих данному сообщению эхо-запроса. Если сообщение не получено в течение заданного времени, выводится звездочка (*). Таймаут по умолчанию 4000 (4 секунды).
  • имя_конечного_компьютера — Задает точку назначения, указанную IP-адресом или именем узла.
  • -? — Отображает справку в командной строке по утилите tracert.

Для проверки сети также можно воспользоваться командами:

  • PING — основная TCP/IP-команда, используемая для устранения неполадки в соединении, проверки возможности доступа и разрешения имен;
  • PATHPING — предоставляет информацию о латентности сети и потерях данных на промежуточных узлах.

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

  • Чтобы отобразить справку в командной строке по команде введите: tracert /?;
  • Чтобы выполнить трассировку пути к узлу, введите команду: tracert ya.ru;
  • Чтобы выполнить трассировку пути к узлу и предотвратить разрешение каждого IP-адреса в DNS имя, введите: tracert -d ya.ru;
  • Трассировка к узлу с числом прыжков с максимальным числов прыжков 10: 
    tracert -h 10 google.com;
  • Трассировка к узлу с принудительным использование ipv4: tracert -4 ya.ru;

Утилиты Traceroute и Tracert – Помощь

Traceroute — это утилита, которая позволяет проследить маршрут следования данных до удалённого адресата в сетях TCP/IP. В Linux используется команда Traceroute, а в Windows — Tracert. При помощи этих команд можно увидеть путь пакета данных от вашего компьютера до целевого сервера или сайта.

Как работают 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-пакет.

Как использовать Traceroute и Tracert

Если у вас кириллический домен

Кириллические домены необходимо вводить в формате Punycode. Для перевода домена в Punycode воспользуйтесь сервисом.

Выполним команду Traceroute в Linux на примере Ubuntu 20.04:

  1. 1.

    Откройте терминал при помощи комбинации клавиш CTRL + Shift + T или введите в поиске слово «Терминал».

  2. 2.

    Введите команду traceroute domain.name. Вместо domain.name укажите домен:

    Если нужно выполнить трассировку до IP-адреса, введите traceroute ip. Вместо ip укажите нужный адрес:

Вывод команды будет содержать:

  • порядковый номер маршрутизатора (узла),
  • имя узла,
  • IP-адрес узла,
  • круговую задержку (время, потраченное на отправку запроса и получение ответа).

Команда Traceroute в Windows 10 отсутствует, поэтому следует воспользоваться Tracert:

  1. 1.

    Нажмите комбинацию клавиш Win + R.

  2. 2.

    Введите cmd и нажмите Enter.

  3. 3.

    Введите tracert domain.name. Вместо domain.name укажите домен или IP-адрес, до которого хотите выполнить трассировку:

Вывод команды tracert будет выглядеть следующим образом:

  • порядковый номер маршрутизатора (узла),
  • круговая задержка (время, потраченное на отправку запроса и получение ответа),
  • имя узла,
  • IP-адрес узла.
  1. 1.

    Найдите в Spotlight утилиту Network Utility (Сетевая утилита) и запустите её.

  2. 2.

    Выберите вкладку Traceroute и введите имя домена или IP-адрес. Затем нажмите кнопку Trace:

Вывод содержит:

  • порядковый номер узла,
  • имя узла,
  • IP-адрес узла,
  • круговую задержку (время, потраченное на отправку запроса и получение ответа).

Если нужно отправить вывод команды в службу поддержки, сделайте скриншот или скопируйте текст.

Как установить Traceroute на Linux

В Unix-подобных системах программа может быть не установлена. Ниже мы покажем, как установить Traceroute на некоторых операционных системах.

Как установить Traceroute в Debian/Ubuntu

  1. 1.

    Запустите терминал и введите команду sudo apt-get update для обновления данных о репозиториях.

  2. 2.

    Введите команду sudo apt-get install traceroute.

Как установить Traceroute в Centos 7,8

  1. 1.

    Запустите терминал и введите команду sudo yum update для обновления данных о репозиториях.

  2. 2.

    Введите команду sudo yum install traceroute.

Как выполнить Traceroute по порту

По умолчанию первый UDP-пакет отправляется на порт 34434 и на каждом узле увеличивается на 1: 34434 на первом, 34435 на втором и так далее. При помощи ключа -p порт можно указать вручную. Команда будет выглядеть следующим образом:

traceroute -p [номер порта] domain.name

В Windows трассировку с указанием порта стандартными средствами выполнить нельзя, так как Traceroute в cmd отсутствует, а Tracert не умеет работать с портами.

Как использовать Traceroute по ICMP

И UDP и ICMP-протоколы используются командой Traceroute. UDP используется по умолчанию. Чтобы воспользоваться ICMP, добавьте в команду ключ -I:

traceroute -I domain.name

Для чего это нужно? Оборудование может быть настроено на то, чтобы не отвечать на подобные запросы. Если вы увидите в выводе символы

* * *, это может значить, что маршрутизатор отклонил пакет и не отправил ответ. Звёздочки в выводе не означают, что у узла проблемы. Соединения может фильтровать Firewall, который стоит перед узлом. Это делается специально, чтобы снизить нагрузку. Пример такого вывода команды:

В этом случае попробуйте воспользоваться ключом -I:

Ключ -I требует root-привилегий. Если команда не выполняется, добавьте в начало sudo:

sudo traceroute -I domain.name

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

TRACERT – трассировка маршрута к заданному узлу.

&nbsp &nbsp Утилита трассировки маршрута до заданного узла TRACERT.EXE является одним из наиболее часто используемых инструментов сетевой диагностики. Основное ее назначение — получить цепочку узлов, через которые проходит IP-пакет, адресованный конечному узлу, имя или IP-адрес которого задается параметром командной строки.

Формат командной строки:

tracert [-d] [-h максЧисло] [-j списокУзлов] [-w таймаут] [-R] [-S адресИсточника] [-4] [-6] конечноеИмя

Параметры командной строки:

-d — не использовать разрешение в имена узлов.

-h максЧисло — максимальное число прыжков при поиске узла.

-j списокУзлов — свободный выбор маршрута по списку узлов (только IPv4).

-w таймаут — таймаут каждого ответа в миллисекундах.

-R — трассировка пути (только IPv6).

-S адресИсточника — использовать указанный адрес источника (только IPv6).

-4 — принудительное использование IPv4.

-6 — принудительное использование IPv6.

В основе трассировки заложен метод анализа ответов при последовательной отправке ICMP-пакетов на указанный адрес с увеличивающимся на 1 полем TTL. («Время жизни» — Time To Live). На самом деле это поле не имеет отношения к времени, а является счетчиком числа возможных переходов при передаче маршрутизируемого пакета. Каждый маршрутизатор, получив пакет, вычитает из этого поля, сохраняемого в заголовке пакета, единицу и проверяет полученное значение счетчика TTL. Если значение стало равным нулю, такой пакет отбрасывается и отправителю посылается ICMP-сообщение о превышении времени жизни (сообщение «Time Exceeded», значение 0x11 в заголовке ICMP).

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

&nbsp &nbsp При выполнении команды tracert.exe сначала выполняется отправка ICMP пакета с полем TTL в заголовке равным 1 и первый в цепочке маршрутизатор (обычно это основной шлюз из настроек сетевого подключения) вычтя единицу из TTL получает его нулевое значение и сообщает о превышении времени жизни. Таким образом, утилита TRACERT.EXE получает IP-адрес первого маршрутизатора, участвующего в доставке пакетов конечному узлу. Эта последовательность повторяется трижды, поэтому в строке результата, формируемой tracert.exe, после номера перехода отображаются три значения времени отклика:
1 &nbsp &nbsp 1 ms &nbsp &nbsp 1 — номер перехода (1 — первый маршрутизатор)
1 ms 192.168.1.1 — его адрес (или имя)

&nbsp &nbsp Затем процедура повторяется, но TTL устанавливается равным 2 — первый маршрутизатор его уменьшит до 1 и отправит следующему в цепочке, который после вычитания 1 обнулит TTL и сообщит о превышении времени жизни. Утилита TRACERT.EXE получит второй IP-адрес узла, участвующего в доставке пакета получателю и его время ответа. Процесс трассировки будет продолжаться до тех пор, пока не будет достигнут конечный узел, имя или адрес которого заданы в качестве параметра командной строки, например , tracert yandex.ru , или до обнаружения неисправности, не позволяющей доставить пакет. По умолчанию, утилита TRACERT.EXE использует счетчик максимального числа переходов равный 30, что должно быть достаточно для достижения любого узла на планете. При необходимости, иное значение счетчика можно задать с помощью параметра -h

Пример результатов выполнения tracert google.com

tracert google.com — трассировка маршрута к узлу google.com

Результат:


Трассировка маршрута к google.com [74.125.45.100] с максимальным числом прыжков 30:
1 1 ms 2 498 ms 444 ms 302 ms ppp83-237-220-1.pppoe.mtu-net.ru [83.237.220.1]
3 * * * .
4 282 ms * * a197-crs-1-be1-53.msk.stream-internet.net [212.188.1.113]
5 518 ms 344 ms 382 ms ss-crs-1-be5.msk.stream-internet.net [195.34.59.105]
6 462 ms 440 ms 335 ms m9-cr01-po3.msk.stream-internet.net [195.34.53.85]
7 323 ms 389 ms 339 ms bor-cr01-po4.spb.stream-internet.net [195.34.53.126]
8 475 ms 302 ms 420 ms anc-cr01-po3.ff.stream-internet.net [195.34.53.102]
9 334 ms 408 ms 348 ms 74.125.50.57
10 451 ms 368 ms 524 ms 209.85.255.178
11 329 ms 542 ms 451 ms 209.85.250.140
12 616 ms 480 ms 645 ms 209.85.248.81
13 656 ms 549 ms 422 ms 216.239.43.192
14 378 ms 560 ms 534 ms 216.239.43.113
15 511 ms 566 ms 546 ms 209.85.251.9
16 543 ms 682 ms 523 ms 72.14.232.213
17 468 ms 557 ms 486 ms 209.85.253.141
18 593 ms 589 ms 575 ms yx-in-f100.google.com [74.125.45.100]

Трассировка завершена.

&nbsp &nbsp В результатах трассировки могут присутствовать строки, где вместо адреса узла отображается звездочка (узел номер 3 в примере). Это не обязательно является признаком неисправности маршрутизатора, и чаще всего, говорит о том, что настройки данного узла запрещают отправку ICMP-сообщений по соображениям безопасности и уменьшения нагрузки на канал при в случае некоторых разновидностей DDoS-атак . Например, подобные настройки используются в сетях Microsoft . Серверы корпорации не отвечают на ping и не позволяют выполнить трассировку маршрута к ним.

Примеры использования TRACERT

tracert google.com — выполнить трассировку маршрута к узлу google.com.

tracert 8.8.8.8 — выполнить трассировку маршрута к узлу с IP-адресом 8.8.8.8

tracert -d yandex.ru — выполнить трассировку маршрута к узла yandex.ru без разрешения IP-адресов в имена узлов. Трассировка в таком режиме выполняется быстрее.

tracert -d -6 ipv6.google.com — выполнить трассировку с использованием протокола IPv6.

Пример результатов трассировки с использованием протокола IPv6:


trace to ipv6.google.com (2a00:1450:4013:c00::71), 30 hops max, 40 byte packets
 1  2a02:348:82::1 (2a02:348:82::1)  8.087 ms  8.063 ms  8.086 ms
 2  te0-22.cr1.nkf.as49685.net (2001:4cb8:40b:1::1d01)  2.143 ms  2.129 ms  2.103 ms
 3  amsix-router.google.com (2001:7f8:1::a501:5169:1)  1.379 ms  1.415 ms  1.422 ms
 4   (2001:4860::1:0:87ab)  1.437 ms  (2001:4860::1:0:87aa)  2.157 ms  (2001:4860::1:0:87ab)  1.408 ms
 5   (2001:4860::8:0:87b0)  1.494 ms  1.469 ms  (2001:4860::8:0:87b2)  8.350 ms
 6   (2001:4860::8:0:b1b7)  5.364 ms  5.321 ms  4.748 ms
 7   (2001:4860::2:0:8651)  4.653 ms  6.994 ms  (2001:4860::2:0:8652)  13.926 ms
 8  ee-in-x71.1e100.net (2a00:1450:4013:c00::71)  4.732 ms  4.733 ms  4.783 ms

Утилита tracert или как проверить маршрут до хоста. Сетевые утилиты 2 часть

Обновлено 07.04.2017

Утилита tracert или как проверить маршрут до хоста. Сетевые утилиты 2 часть-01

Всем привет ранее я начал рассказ про сетевые утилиты системного администратора в статье Утилита ping или как проверить доступность хоста. Сетевые утилиты 1 часть, движемся дальше и разбираем еще одну утилиту tracert или как проверить маршрут до хоста. Сетевые утилиты 2 часть.

Traceroute — это служебная компьютерная программа, предназначенная для определения маршрутов следования данных в сетях TCP/IP. Traceroute может использовать разные протоколы передачи данных в зависимости от операционной системы устройства. Такими протоколами могут быть UDP, TCP, ICMP или GRE. Компьютеры с установленной операционной системой Windows используют ICMP-протокол, при этом операционные системы Linux и маршрутизаторы Cisco — протокол UDP.

Открываем командную строку Windows и вводим tracert. Перед вами откроется справка команды tracert.

Утилита tracert или как проверить маршрут до хоста. Сетевые утилиты 2 часть-02

C:\Users\sem>tracert

Использование: tracert [-d] [-h максЧисло] [-j списокУзлов] [-w таймаут]
[-R] [-S адресИсточника] [-4] [-6] конечноеИмя

Параметры:
-d Без разрешения в имена узлов.
-h максЧисло Максимальное число прыжков при поиске узла.
-j списокУзлов Свободный выбор маршрута по списку узлов (только IPv4).
-w таймаут Таймаут каждого ответа в миллисекундах.
-R Трассировка пути (только IPv6).
-S адресИсточника Используемый адрес источника (только IPv6).
-4 Принудительное использование IPv4.
-6 Принудительное использование IPv6.

Давайте посмотрим каким маршрутом мы обращаемся до яндекса. Вводим

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

Утилита tracert или как проверить маршрут до хоста. Сетевые утилиты 2 часть-03

Для ускорения получения информации из tracert можно отключить разрешение имен и получать только ip адреса, скорость увеличиться.

Утилита tracert или как проверить маршрут до хоста. Сетевые утилиты 2 часть-04

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

Утилита tracert или как проверить маршрут до хоста. Сетевые утилиты 2 часть-05

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

Материал сайта pyatilistnik.org

Tracert vs Traceroute / Хабр

В чем отличие маршрута пакета от его пути?

Стандартный механизм маршрутизации пакетов в интернете — per hop behavior — то есть каждый узел в сети принимает решение куда ему отправить пакет на основе информации, полученной от протоколов динамической маршрутизации и статически указанных администраторами маршрутов.

Маршрут — это интерфейс, в который нам надо послать пакет для достижения какого то узла назначения и адрес следующего маршрутизатора (next-hop):

R1#sh ip rou | i 40.  
	 40.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
O        40.0.0.0/31 [110/3] via 20.0.0.0, 00:01:54, FastEthernet0/0
O        40.1.1.1/32 [110/4] via 20.0.0.0, 00:00:05, FastEthernet0/0

Что такое путь? Путь — это список узлов, через которые прошел (пройдет) пакет:

 1  10.0.0.1  16.616 ms  16.270 ms  15.929 ms
 2  20.0.0.0  15.678 ms  15.157 ms  15.071 ms
 3  30.0.0.1  26.423 ms  26.081 ms  26.744 ms
 4  40.0.0.0  48.979 ms  48.674 ms  48.384 ms
 5  100.0.0.2  58.707 ms  58.773 ms  58.536 ms

Путь пакета можно посмотреть с помощью утилит tracert в OC Windows и traceroute в GNU/Linux и Unix-подобных системах. (другие команды, типа tracepath мы не рассматриваем).

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

Итак, утилита tracert.
В основе работы данной утилиты лежит протокол icmp. Рассмотрим вот такую схему:

Host отправляет по указанному в его таблице маршрутизации маршруту ICMP Echo-Request с ttl 1. Router1, получив такой пакет, проверит адрес назначения — может быть пакет ему. Так как данный пакет адресован другому хосту, то Router1 считает себя транзитным узлом, декрементирует ttl пакета и отбрасывает его, так как время жизни пакета становится равным 0. Так как пакет был дропнут, Router1 отправляет источнику пакета icmp сообщение с указанием причины дропа — Time Exceeded. Утилита tracert, получив данное icmp сообщение, указывает Router1 как первый хоп (информация об адресе указана в icmp сообщении). Далее процесс повторяется с инкрементированием ttl, пока ttl icmp запроса не будет равен количеству хопов между узлом-отправителем и узлом получателем. В данном примере Server1 является узлом назначения. Получив пакет, он проверит адрес назначения, увидит, что запрос адресован ему и отправит ICMP Echo-Reply, что и будет являться для утилиты tracert триггером к окончанию трассировки.

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

Traceroute — данная утилита работает по иному принципу, хоть и вывод команды похож на вывод предыдущей.
Traceroute основана не на ICMP Echo-Request, а на отправке udp фрагментов и получения сообщения о доступности/недостижимости порта. Вернемся к прошлой схеме. Host генерирует udp фрагмент, инкапсулирует его в IP пакет и выставляет ttl=1. Router1, являясь транзитным узлом, ответит на данный пакет icmp сообщением об окончании времени жизни пакета. Утилита traceroute, получив данное сообщение, указывает адрес источника icmp пакета (Router1) как адрес первого хопа. Далее процесс повторяется с инкрементированием ttl пакета. Всё практически так же, как и в tracert. Но ведь мы не отправляем ICMP Echo-Request, как утилита traceroute поймет, что трассировка закончена? Все просто — в udp заголовке есть поля source и destination порт. Логично, что source порт будет любым портом выше 1023. А каким указать destination порт? Как было сказано выше, работа утилиты traceroute основана на получении сообщения о недостижимости или доступности порта назначения. То есть мы отправляем udp фрагмент с порта 45000 ( к примеру) на порт 33434 (именно этот порт используется по умолчанию). Как и в предыдущем случае, Server1 является узлом назначения. Получив пакет, он распаковывает его и должен передать его протоколам высшего уровня. Но так как порт 33434 по умолочанию будет закрыт на сервере, то Server1 формирует icmp сообщение о недостижимости порта назначения (ICMP Type 3 «Destination Unreachable» Code 3 «Port Unreachable»). Получив данное сообщение, утилита traceroute считает трассировку законченной. В процессе трассировки номер порта назначения будет инкрементироваться при каждой попытке ( 33434, 33435 и т д). Может получится так, что порт назначения будет открыт. В данном случае сервер отправит на хост-инициатор например TCP ACK если для трассировки используются TCP SYN пакеты, что тоже будет являться триггером к окончанию трассировки.

Вывод:
Утилита traceroute позволяет сделать трассировку с указанием порта назначения.

Для этого разберем пример ниже:

Возьмем предыдущую схему и сделаем трассировку:

С использованием TCP SYN пакетов:

bormoglots@ubuntu-server-s1:~$ sudo traceroute -T -p 22 -w 1 -n 100.0.0.2
traceroute to 100.0.0.2 (100.0.0.2), 30 hops max, 60 byte packets
 1  10.0.0.1  16.616 ms  16.270 ms  15.929 ms
 2  20.0.0.0  15.678 ms  15.157 ms  15.071 ms
 3  30.0.0.1  26.423 ms  26.081 ms  26.744 ms
 4  40.0.0.0  48.979 ms  48.674 ms  48.384 ms
 5  100.0.0.2  58.707 ms  58.773 ms  58.536 ms

C использованием UDP пакетов:

bormoglots@ubuntu-server-s1:~$ sudo traceroute -U -p 22 -w 1 -n 100.0.0.2
traceroute to 100.0.0.2 (100.0.0.2), 30 hops max, 60 byte packets
 1  10.0.0.1  7.102 ms  6.917 ms  6.680 ms
 2  20.0.0.0  17.021 ms  16.838 ms  17.051 ms
 3  30.0.0.1  31.035 ms  30.859 ms  30.658 ms
 4  40.0.0.0  41.124 ms  40.941 ms  40.728 ms
 5  100.0.0.2  51.291 ms  51.045 ms  50.720 ms

Как видите трассировка прошла успешно. Мы видим путь до указанного хоста.

А теперь повесим на интерфейс Router4 фильтр на in (как указано на рисунке):

R4#sh run int fa0/0
Building configuration...

Current configuration : 121 bytes
!
interface FastEthernet0/0
 ip address 40.0.0.0 255.255.255.254
 ip access-group deny-to-server in
 duplex half
 !
end

R4#sh access-lists deny-to-server
Extended IP access list deny-to-server
    10 deny tcp any host 100.0.0.2 log (32 matches)
    20 deny udp any host 100.0.0.2 log (29 matches)
    30 permit ip any any (128 matches)

Снова сделаем трассировку:

bormoglots@ubuntu-server-s1:~$ sudo traceroute -T -p 22 -w 1 -n 100.0.0.2
traceroute to 100.0.0.2 (100.0.0.2), 30 hops max, 60 byte packets
 1  10.0.0.1  4.575 ms  4.490 ms  4.367 ms
 2  20.0.0.0  18.431 ms  18.359 ms  29.573 ms
 3  30.0.0.1  30.579 ms  30.690 ms  30.722 ms
 4  40.0.0.0  52.518 ms !X  62.977 ms !X  62.898 ms !X
bormoglots@ubuntu-server-s1:~$ sudo traceroute -U -p 22 -w 1 -n 100.0.0.2
traceroute to 100.0.0.2 (100.0.0.2), 30 hops max, 60 byte packets
 1  10.0.0.1  5.614 ms  5.523 ms  5.689 ms
 2  20.0.0.0  18.364 ms  18.629 ms  18.556 ms
 3  30.0.0.1  42.289 ms  42.225 ms  42.143 ms
 4  40.0.0.0  41.984 ms !X  41.898 ms !X  41.815 ms !X

Теперь трассировка закончилась на предпоследнем хопе и в выводе появились знаки! Х. Почему это произошло? Router4 получив пакет к Server1 дропает его, так как он попадает под запрещающее правило на входящем интерфейсе и отправляет хосту-инициатору сообщение о том, что пакет был зафильтрован (ICMP Type 3 «Destination Unreachable» Code 13 — «Communication Administratively Prohibited»). Это тоже сообщение о недостижимости порта назначения. Поэтому утилита traceroute получив такое сообщение, заканчивает свою работу так не добравшись до хоста назначения. В данном случае в выводе важно понять, что пакеты были именно зафильрованы, о чем нам подсказывает знак !X (в Unix) или знак !A (в Cisco):

R1#traceroute 100.0.0.2

Type escape sequence to abort.
Tracing the route to 100.0.0.2

  1 20.0.0.0 24 msec 24 msec 16 msec
  2 30.0.0.1 16 msec 36 msec 40 msec
  3 40.0.0.0 !A  !A  !A

Примечание: Возможен случай, когда пакеты будут дропаться без отправки ICMP сообщений ( отправка в Null-интерфейс в Cisco/Huawei или discard в Juniper). В данном случае трассировка будет идти пока не кончится максимальное TTL, указанное в утилите traceroute (по умолчанию максимум 30 хопов, но можно задать вручную до 255, правда обычно достаточно 15-18 хопов) или ее не прервет администратор, а в выводе будут звездочки.

Примечание: Появление звездочек вместо адресов хостов может быть обусловлено различными причинами и хорошо описано тут

Собственно говоря, утилита traceroute может работать как и утилита tracert с использованием ICMP Echo-Request. Для этого ее следует запустить с ключом -I. В примеры выше фильтр не блокирует ICMP, поэтому трассировка с использованием данного протокола покажет нам весь путь пакета:

bormoglots@ubuntu-server-s1:~$ sudo traceroute -I -w 1 -n 100.0.0.2
traceroute to 100.0.0.2 (100.0.0.2), 30 hops max, 60 byte packets
 1  10.0.0.1  4.073 ms  3.986 ms  3.890 ms
 2  20.0.0.0  19.474 ms  19.389 ms  19.294 ms
 3  30.0.0.1  30.147 ms  30.276 ms  30.826 ms
 4  40.0.0.0  42.316 ms  42.240 ms  42.145 ms
 5  100.0.0.2  52.705 ms  52.622 ms  52.521 ms

Надеюсь мы разобрались в основных принципах работы данных утилит. Если надо сделать трассировку по какому то порту в Windows системах, можно использовать сторонние утилиты, к примеру tcptrace.

Спасибо за внимание!

Tracert протокол. TRACERT – трассировка маршрута к заданному узлу в командной строке Windows

Практические занятия№ 03-006

Сетевая утилита tracert (traceroute в Linux, Cisco IOS, MAC OS). Принципы работы и использование.

Утилита tracert используется для исследования маршрутов IP пакетов в сетях, работающих с использованием стека протоколов TCP/IP включая глобальную сеть Internet. При использовании этой программы необходимо помнить что при её работе генерируется достаточно большое количество IP пакетов как на вашем хосте, так и на промежуточных маршрутизаторах. Это создает дополнительную нагрузку на сеть.

tracert [d ] [h максимальное число ] [j список узлов ] [-w интервал ] [имя_конечного_компьютера ]

Параметры:

d отказ от разрешения IP адресов промежуточных узлов в имена

h максимальное число максимальное число переходов (прыжков) при поиске узла назначении

-j список_узлов задает использование параметра свободной маршрутизации в IP-заголовке с набором промежуточных точек назначения, указанным в списке_узлов (сейчас практически не поддерживается на машрутизаторах)

-w интервал задает в миллисекундах время ожидания каждого ответа

имя_конечного_компьютера задает точку назначения, идентифицированную IP-адресом или именем узла.

Работа утилиты основана на манипулировании содержимым полей стандартного заголовка и опций заголовка IP пакета. Основным инструментом утилиты является содержимое поля «время жизни» (или TTL).

Обязательным элементом является IP адрес или имя узла назначения.

Получив его от пользователя, утилита отправляет в сеть серию (обычно три) пакетов на этот адрес с установленным значением TTL равным 1. Шансов дойти до адресата эти пакеты не имеют, поскольку первый же по пути следования маршрутизатор, вычитая из такого TTL 1 получит 0. А такой пакет он обязан уничтожить по истечению разрешенного времени жизни в сети. Но при этом маршрутизатор обязан отправить отправителю этого пакета-неудачника ICMP сообщение о его трагической участи (тип 11, код 0) .

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

Затем отправляется следующая серия пакетов с TTL равным 2, и так до тех пор, пока пакеты не достигнут пункта назначения.

Когда на адрес хоста или маршрутизатора приходит адресованный ему пакет с TTL, достигшим значения 1, он принимается. Поскольку пересылать его далее необходимости нет, ICMP сообщение о истечении времени жизни сгенерировано не будет.

Чтобы узнать, что трассировка успешно завершена, все серии пакетов отправляются с вложенными в них UDP сообщениями, с указанием заведомо не существующего у получателя номера порта. На промежуточных маршрутизаторах это не имеет никакого значения, но получатель, потерпев неудачу воспользоваться вложенной информацией, оказывается вынужден сообщить об этом отправителю с использованием того же протокола ICMP, но с другими значениями типа (3) и кода (3) сообщения.

Такое сообщение интерпретируется отправителем как подтверждение завершения трвссировки.

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

Наименования узлов основывается на системе доменных имён (DNS):

Формально и пользователи, и программы могут обращаться к хостам, почтовым ящикам и другим ресурсам сети интернет по их IP адресам, но если для программы процедура «запоминания» IP адреса ничем не отличается от «запоминания» любых других 4-х байт информации любого типа, то для пользователя запоминание цифросочетаний вида 111.124.133.44 тяжело просто с точки зрения устройства нашей памяти. Кроме того, отождествление каких-либо служб с IP адресами хостов или серверов, на которых они функционируют крайне затрудняет процедуру их переноса в случае необходимости. Для учета «человеческого фактора» и отделения имен машин от их адресов было решено использовать текстовые ASCII-имена. Тем не менее, сеть понимает только численные адреса, поэтому нужен механизм преобразования ASCII-строк в IP адреса.

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

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

Для решения этих проблем была разработана служба имен доменов (DNS, Domain Name System). Эта система используется для преобразования имен хостов и пунктов назначения электронной почты в IP-адреса, но также может использоваться и в других целях. Определение системы DNS было дано в RFC 1034 и 1035.

Доменным именем называется имя, состоящее из слов, разделенных точками. Левое слово имени относится к хосту. Все остальные слова образуют имя домена. Система имен имеет иерархическую, древовидную структуру.

Каждый узел (кружочки на рисунке) имеет метку длиной до 63 символов. Корень дерева это специальный узел без метки. Метки могут содержать заглавные буквы или маленькие. Имя домена (domain name) для любого узла в дереве — это последовательность меток, которая начинается с узла выступающего в роли корня, при этом метки разделяются точками. (Здесь видно отличие от привычной нам файловой системы, где полный путь всегда начинается с вершины (корня) и опускается вниз по дереву.) Каждый узел дерева должен иметь уникальное имя домена, однако одинаковые метки могут быть использованы в различных точках дерева.

Существует корневое имя, обозначаемое символом «.», оно часто не пишется в имени домена. Существуют имена доменов первого уровня. Они разделены на 2 категории — имена доменов территорий и имена доменов предметных областей. Имена доменов второго уровня и последующих могут быть любыми, при этом не может существовать двух одинаковых имен доменов или хостов. Итак, если N i — доменное имя i-го уровня, а T- слово, то доменное имя i+1 уровня образуется по правилу N i +1 =T+N i .. Имя домена, которое заканчивается точкой, называется абсолютным именем домена (absolute domain name) или полным именем домена (FQDN — fully qualified domain name).

Подчеркнем ещё раз, что поскольку IP-адреса уникально идентифицируют хосты в сети, существует взаимно-однозначное отношение между множеством имен хостов и множеством адресов.

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

База данных DNS является распределенной. Иерархической системе имен соответствует иерархическая система серверов DNS, на которых размещены фрагменты таблицы. В идеале для каждого домена должен существовать отдельный сервер имен. В базе данных сервера имен любого уровня должны содержаться записи о всех дочерних доменах следующего уровня. Все домены первого уровня содержаться в базе данных корневых серверов (root name servers). Их обслуживает организация NIC.

В реальности на одном хосте может размещаться база для нескольких доменов, и одинаковые или пересекающиеся базы могут располагаться на нескольких хостах. Ветвь дерева имен, находящаяся под единым управлением вместе с хостами, на которых расположена база данных этой ветви дерева называется зоной DNS. Обычно в зоне имеется один основной сервер DNS (primary name server) и несколько резервных (secondary name servers). Изменения в зоне вносятся в базу данных первичного сервера зоны с последующим дублированием этой информации на вторичные сервера.

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

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

Система разрешения адресов.

Для того, чтобы программное обеспечение стека протоколов TCP/IP могло пользоваться службой имен, в настройках стека должен быть указан IP — адрес сервера имен, в зону которого входит хост или другой сервер, принимающий запросы из сети хоста. Когда прикладной элемент использует для обозначения второй стороны в сеансе доменное имя, инициируется процесс разрешения IP — адреса. Прикладной элемент службы имен хоста отправляет запрос серверу имен. Если сервер имен может разрешить адрес, он отправляет отклик, содержащий этот адрес. Если сервер имен не может разрешить запрос, он может инициировать два сценария разрешения имени

    сервер отправляет в составе отклика адрес корневого сервера имен, и хост формирует запрос к этому серверу (итеративный запрос).

    Сервер зоны формирует запрос к корневому серверу и, получив ответ, сохраняет его в буфере и отправляет отклик с адресом хосту, запросившему сервис (рекурсивный запрос).

Отклик сервера, контролирующего домен, называется авторитетным.

Каждый сервер имен в Интернет должен содержать в базе адреса корневых серверов.

Разрешение имен . Кроме основной своей функции разрешения доменного имени хоста в его IP-адрес, протокол DNS обеспечивает и обратное разрешение IP-адреса в доменное имя при помощи подзон реверсивной зоны in_addr.arpa.

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

Вопросы для самопроверки

    Что такое система доменных имен и для чего он используется.

    Каков максимальный размер метки узла домена

    Какое имя имеет корневой домен DNS

    Какие типы и коды ICMP сообщений использует утилита tracert

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

    Параметры утилиты tracert

    Назначение утилиты tracert и варианты её применения

Необходимое оборудование

IBM PC — совместимая ЭВМ с лицензионной операционной системой Windows, подключение к локальной сети, выход в интернет.

Задания

1. Воспользовавшись командой tracert рпределите маршрут распространения IP-пакетов до сайта www.sgu.ru

2. Воспользовавшись командой tracert рпределите маршрут распространения IP-пакетов до одного из приведенных сайтов: www . nla . gov . au , www . ibge . gov . br , www . kunaicho . go . jp (можете выбрать любой сайт за пределами России).

3. Повторите трассировку с опцией –d.

4. Опишите структуру DNS имени трассировавшегося вами сервера.

5. Воспользуйтесь услугами сервиса www . ip 2 location . com / demo . aspx (или аналогичного) и определите примерное местоположение промежуточных точек маршрута.

6. Нарисуйте схему маршрута.

7. Прокомментируйте результаты.

Отчет о выполнении работы представьте в печатной или электронной форме с представлением копий экранов работы утилиты.

Применение данных утил позволяет проследить маршрут до удаленного хоста, определить время круговой задержки (RTT-round-trip delay time), IP-адрес и в некоторых случаях доменное имя промежуточного маршрутизатора. В основе их работы лежат ICMP-сообщения об ошибках.

Как работает Tracert.

Значение времени жизни (TTL) первого отправляемого пакета устанавливается равным 1. Когда протокол IP первого маршрутизатора принимает этот пакет, то он в соответствии со своим алгоритмом уменьшает TTL на единицу и получает 0. Маршрутизатор отбрасывает пакет с нулевым временем жизни и возвращает узлу-источнику ICMP-сообщение об ошибке истечения времени дейтаграммы (ICMP-сообщение тип 11 код 0). Это сообщение содержит имя маршрутизатора и его IP-адрес. Когда это ICMP-сообщение прибывает к отправителю, тот по значению таймера узнает время оборота пакета(RTT), а также (из ICMP-сообщения) имя и IP-адрес промежуточного маршрутизатора. Затем посылается следующий IP-пакет, но теперь со значением TTL равным 2. Этот пакет уже доходит до второго маршрутизатора, но опять там «умирает» о чем аналогичным, же образом сообщается узлу отправителю. И так до тех пор, пока не достигнет конечного узла. На основании данных ответов строится трассировка. Например:

Трассировка маршрута к rt.ru с максимальным числом прыжков 30: 1 3 ms 1 ms 2 ms net235-72.ufa.ertelecom.ru 2 2 ms 2 ms 1 ms bb2.bsr02.ufa.ertelecom.ru 3 2 ms 1 ms 1 ms lag-10-438.bbr01.samara.ertelecom.ru 4 18 ms 18 ms 18 ms 46.61.227.202 5 19 ms 19 ms 18 ms 46.61.227.201 6 19 ms 19 ms 19 ms so-0-0-0.m10-ar2.msk.ip.rostelecom.ru 7 19 ms 19 ms 19 ms 109.207.0.226 8 19 ms 19 ms 19 ms www.rt.ru Трассировка завершена.

Из данной трассы мы видим, что хост www.rt.ru доступен с числом прыжков(хопов) — 8, его ip 109.207.14.4, и время круговой задержки до данного ресурса составляет 19ms.

Как работает Traсeroute.

Принцип идентичный, за одним исключением. Утила по умолчанию, посылает в сторону заданного хоста UDP-датаграммы на какой-то произвольный порт, обычно — на «высокий», скорее всего не занятый другим сервисом (например 12500, 30678) или на зарезервированный (например 0), в свежих версиях порт по умолчанию — 33434. Сначала посылается серия из 3-х таких пакетов с TTL=1, по приходу ответов замеряется время прохождения и определяется доменное имя транзитного узла.C

Из результата вывода возникает вопрос, почему в этом случае трассировка не дошла до конца, и появились в выводе так называемые звездочки (* * *), а ответ как раз и заключается в различие (в данном примере). Очень часто, маршрутизаторы/хосты настраиваются таким образом, чтобы они не отвечали на подобного рода запросы, в таком случае и появляются звездочки. Это совершенно не значит, что имеются какие-то проблемы. Делается это для того, чтобы разгрузить оборудование. В данном примере 1 и 8 хоп не отвечает на UDP-датаграммы, однако если запустить утилу traceroute c ключиком -I, то трассировка дойдет, т.к. данный ключ заставляет посылаю уже ICMP-датаграммы.

$ traceroute -I rt.ru traceroute to rt.ru (109.207.14.4), 30 hops max, 40 byte packets 1 net233-86.ufa.ertelecom.ru (212.33.233.86) 162.924 ms 163.654 ms 163.666 ms 2 bb1.bsr02.ufa.ertelecom.ru (212.33.234.101) 8.095 ms 38.117 ms 50.262 ms 3 lag-10-438.bbr01.samara.ertelecom.ru (212.33.233.111) 0.382 ms 0.407 ms 0.417 ms 4 46.61.227.202 (46.61.227.202) 17.592 ms 17.623 ms 17.613 ms 5 46.61.227.201 (46.61.227.201) 17.597 ms 17.609 ms 17.613 ms 6 so-0-0-0.m10-ar2.msk.ip.rostelecom.ru (87.226.139.74) 17.943 ms 17.924 ms 18.001 ms 7 109.207.0.226 (109.207.0.226) 18.092 ms 18.026 ms 18.010 ms 8 www.rt.ru (109.207.14.4) 18.205 ms 18.301 ms 18.308 ms

Заключение.

Следует отметить, что звездочки могут возникать и при трассировке ICMP-пакетами, это также не значит, что существует проблема. Все зависит от того, как настроил оборудование администратор. Это его железо и настраивается оно с его потребностями. Данное явление вполне нормально. Также не следует паниковать, если конечный хост не пингуется. Вполне возможно, что ресурс просто от них закрылся.

&nbsp &nbsp Утилита трассировки маршрута до заданного узла TRACERT.EXE является одним из наиболее часто используемых инструментов сетевой диагностики. Основное ее назначение — получить цепочку узлов, через которые проходит IP-пакет, адресованный конечному узлу, имя или IP-адрес которого задается параметром командной строки.

Формат командной строки:

tracert [-d] [-h максЧисло] [-j списокУзлов] [-w таймаут] [-R] [-S адресИсточника] [-4] [-6] конечноеИмя

Параметры командной строки:

-d — не использовать разрешение в имена узлов.

-h максЧисло — максимальное число прыжков при поиске узла.

-j списокУзлов — свободный выбор маршрута по списку узлов (только IPv4).

-w таймаут — таймаут каждого ответа в миллисекундах.

-R — трассировка пути (только IPv6).

-S адресИсточника — использовать указанный адрес источника (только IPv6).

-4 — принудительное использование IPv4.

-6 — принудительное использование IPv6.

В основе трассировки заложен метод анализа ответов при последовательной отправке ICMP-пакетов на указанный адрес с увеличивающимся на 1 полем TTL. («Время жизни» — Time To Live). На самом деле это поле не имеет отношения к времени, а является счетчиком числа возможных переходов при передаче маршрутизируемого пакета. Каждый маршрутизатор, получив пакет, вычитает из этого поля, сохраняемого в заголовке пакета, единицу и проверяет полученное значение счетчика TTL. Если значение стало равным нулю, такой пакет отбрасывается и отправителю посылается ICMP-сообщение о превышении времени жизни (сообщение «Time Exceeded», значение 0x11 в заголовке ICMP).

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

&nbsp &nbsp При выполнении команды tracert.exe сначала выполняется отправка ICMP пакета с полем TTL в заголовке равным 1 и первый в цепочке маршрутизатор (обычно это основной шлюз из настроек сетевого подключения) вычтя единицу из TTL получает его нулевое значение и сообщает о превышении времени жизни. Таким образом, утилита TRACERT.EXE получает IP-адрес первого маршрутизатора, участвующего в доставке пакетов конечному узлу. Эта последовательность повторяется трижды, поэтому в строке результата, формируемой tracert.exe, после номера перехода отображаются три значения времени отклика:
1 &nbsp &nbsp 1 ms &nbsp &nbsp 1 — номер перехода (1 — первый маршрутизатор)
1 ms 192.168.1.1 — его адрес (или имя)

&nbsp &nbsp Затем процедура повторяется, но TTL устанавливается равным 2 — первый маршрутизатор его уменьшит до 1 и отправит следующему в цепочке, который после вычитания 1 обнулит TTL и сообщит о превышении времени жизни. Утилита TRACERT.EXE получит второй IP-адрес узла, участвующего в доставке пакета получателю и его время ответа. Процесс трассировки будет продолжаться до тех пор, пока не будет достигнут конечный узел, имя или адрес которого заданы в качестве параметра командной строки, например, tracert yandex.ru , или до обнаружения неисправности, не позволяющей доставить пакет. По умолчанию, утилита TRACERT.EXE использует счетчик максимального числа переходов равный 30, что должно быть достаточно для достижения любого узла на планете. При необходимости, иное значение счетчика можно задать с помощью параметра -h

Пример результатов выполнения tracert google.com

tracert google.com — трассировка маршрута к узлу google.com

Результат:


Трассировка маршрута к google.com с максимальным числом прыжков 30:
1 1 ms 2 498 ms 444 ms 302 ms ppp83-237-220-1.pppoe.mtu-net.ru
3 * * * .
4 282 ms * * a197-crs-1-be1-53.msk.stream-internet.net
5 518 ms 344 ms 382 ms ss-crs-1-be5.msk.stream-internet.net
6 462 ms 440 ms 335 ms m9-cr01-po3.msk.stream-internet.net
7 323 ms 389 ms 339 ms bor-cr01-po4.spb.stream-internet.net
8 475 ms 302 ms 420 ms anc-cr01-po3.ff.stream-internet.net
9 334 ms 408 ms 348 ms 74.125.50.57
10 451 ms 368 ms 524 ms 209.85.255.178
11 329 ms 542 ms 451 ms 209.85.250.140
12 616 ms 480 ms 645 ms 209.85.248.81
13 656 ms 549 ms 422 ms 216.239.43.192
14 378 ms 560 ms 534 ms 216.239.43.113
15 511 ms 566 ms 546 ms 209.85.251.9
16 543 ms 682 ms 523 ms 72.14.232.213
17 468 ms 557 ms 486 ms 209.85.253.141
18 593 ms 589 ms 575 ms yx-in-f100.google.com

Трассировка завершена.

&nbsp &nbsp В результатах трассировки могут присутствовать строки, где вместо адреса узла отображается звездочка (узел номер 3 в примере). Это не обязательно является признаком неисправности маршрутизатора, и чаще всего, говорит о том, что настройки данного узла запрещают отправку ICMP-сообщений по соображениям безопасности и уменьшения нагрузки на канал при в случае некоторых разновидностей DDoS-атак. Например, подобные настройки используются в сетях Microsoft . Серверы корпорации не отвечают на ping и не позволяют выполнить трассировку маршрута к ним.

Примеры использования TRACERT

tracert google.com — выполнить трассировку маршрута к узлу google.com .

tracert 8.8.8.8 — выполнить трассировку маршрута к узлу с IP-адресом 8.8.8.8

tracert -d yandex.ru — выполнить трассировку маршрута к узла yandex.ru без разрешения IP-адресов в имена узлов. Трассировка в таком режиме выполняется быстрее.

tracert -d -6 ipv6.google.com — выполнить трассировку с использованием протокола IPv6.

Пример результатов трассировки с использованием протокола IPv6:

trace to ipv6.google.com (2a00:1450:4013:c00::71), 30 hops max, 40 byte packets 1 2a02:348:82::1 (2a02:348:82::1) 8.087 ms 8.063 ms 8.086 ms 2 te0-22.cr1.nkf.as49685.net (2001:4cb8:40b:1::1d01) 2.143 ms 2.129 ms 2.103 ms 3 amsix-router.google.com (2001:7f8:1::a501:5169:1) 1.379 ms 1.415 ms 1.422 ms 4 (2001:4860::1:0:87ab) 1.437 ms (2001:4860::1:0:87aa) 2.157 ms (2001:4860::1:0:87ab) 1.408 ms 5 (2001:4860::8:0:87b0) 1.494 ms 1.469 ms (2001:4860::8:0:87b2) 8.350 ms 6 (2001:4860::8:0:b1b7) 5.364 ms 5.321 ms 4.748 ms 7 (2001:4860::2:0:8651) 4.653 ms 6.994 ms (2001:4860::2:0:8652) 13.926 ms 8 ee-in-x71.1e100.net (2a00:1450:4013:c00::71) 4.732 ms 4.733 ms 4.783 ms

Бывают в сетевой жизни (особенно у dial-up юзеров 😉 моменты, когда невозможно достучаться до какого-нибудь хоста (у меня это часто www.microsoft.com ;-|) — здесь то на помощь и придет эта утилита (в Windows — tracert.exe). С ее помощью можно попытаться определить на каком участке IP-сети произошел сбой — то ли хост упал, то ли у провайдер тормоза, или у тебя с IP-соединением хреново:).

Но за что я по-настоящему люблю tracert — так это за те возможности исследования IP-сетей, которые он дает — а они бывают разные, по масштабам и по целенаправленности;). Первым шагом может стать исследование подсети своего провайдера. С помощью traceroute ты можешь исследовать саму сети, применяя на практике полученные теоретические знания — о маршрутизации, серверах DNS, бэкбонах, системах подсетей, да мало ли о чем еще;).

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

Для начала нужно вспомнить формат заголовка IP-пакета, точнее одно из его полей — TTL (Time To Live). Это восьмибитное поле задает максимальное число хопов (hop — «прыжок» — прохождение дейтаграммы от одного маршрутизатора к другому) в течение которого пакет может находиться в сети. Каждый маршрутизатор,
обрабатывающий эту дейтаграмму, выполняет операцию TTL=TTL-1. Когда TTL становится равным нулю, маршрутизатор уничтожает пакет,
отправителю высылается ICMP-сообщение Time
Exceeded.

Утилита посылает в направлении заданного хоста пакет с TTL=1, и ждет, от кого вернется ответ time exceeded. Отвечающий записывается как первый хоп (результат первого шага на пути к цели). Затем посылаются последовательно пакеты с TTL=2, 3, 4 и т.д. по порядку, пока при некотором значении TTL пакет не достигнет цели и не получит от нее ответ.

*nix traceroute посылает в сторону заданного хоста UDP-пакеты на произвольный порт — скорее всего не занятый другим сервисом (например 28942, 30471) или на зарезервированный, например 0, умолчанию — 33434. Сначала посылается серия из 3-х таких пакетов с TTL=1, по приходу ответов замеряется время прохождения и определяется доменное имя транзитного узла (хотя это зависит от заданных опций). Затем, посылаются очередные серии пакетов с одинаковым TTL, предназначенных для выявления одного и того же хопа. В конце мы получаем от конечного хоста отклик port unreachable (порт недоступен), что означает завершение трассировки.
Стандартный консольный Windows tracert работает точно также, но посылает только ICMP echo request пакеты.

Сам я охотно пользуюсь как стандартным tracert, так и вшитым в CyberKit (достаточно неплохой утилитой
еще является Necrosoft Quick Traceroute). Под Линукс ничего дополнительного посоветовать не могу — юзал только стандартный Debian»овский traceroute:).

В заключение скажу, не бойся экспериментировать — только так можно по настоящему «понять» сеть. Ищи информацию и пользуйся ею. Удачи.

про умение читать вывод / Хабр

  • Почему в трейсроуте после узла X идут звездочки?
  • Сервис не работает, а трейсроут обрывается на узле X — значит проблема в узле X?
  • Почему одинаковые трейсроуты с Windows и Unix показывают разные результаты?
  • Почему трейсроут показывает большие задержки на определенном узле?
  • Почему трейсроут показывает «серые» адреса при трассировке через интернет?
  • Почему маршрутизатор отвечает на трейсроут не тем адресом, каким я хочу?
  • Почему трейсроут показывает какие-то «не такие» доменные имена?
  • Почему вообще вывод трейсроута отличается от интуитивно ожидаемого чаще, чем хотелось бы?

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

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

По поводу взаимоотношений с трейсроутом Ричард нашевсе Стинберген сделал на конференции NANOG-47 (2009) доклад, тезисы которого я и рекомендую к изучению всем заинтересованным лицам. A Practical Guide to (Correctly) Troubleshooting with Traceroute (PDF, 222 КБ) (на английском, разумеется, языке).

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

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

Некоторые факты (без углубления в детали)
  • Задержка прохождения пакета по сети складывается из нескольких факторов: сериализация, буферизация, распространение. Каждый из факторов сложнее, чем вы о нем думаете.
  • Задержка, которую вам показывает трейсроут, — еще более комплексная величина: маршрутизаторы обрабатывают пакеты, адресованные самим себе, абсолютно иначе, чем транзитные пакеты. Данное обстоятельство приводит к специфической природе значений задержек, которые нам показывает трейсроут. Из этого не следует, что на них нельзя ориентироваться, но нужно уметь их читать.
  • Трафик в интернете почти всегда идет разными путями в направлениях от клиента к серверу и от сервера к клиенту. Трейсроут же всегда показывает суммарную задержку в обе стороны, а трассировку — только по одному направлению.
  • Указание трейсроуту адреса источника на устройстве с несколькими интерфейсами (маршрутизаторе) не влияет на выбор интерфейса, с которого будут отправлены запросы. А влияет — на выбор обратного пути, по которому передаются ответы. Их трассировка не видна в выводе, но таким образом можно измерять разницу задержки для параллельных обратных маршрутов.
  • Использование L3-балансировки где-то на интернет-магистралях скорее всего заставит разные пакеты в рамках одной трассировки идти разными путями. Такое поведение приводит к сложноинтерпретируемому выводу, грамотно прочесть который может далеко не каждый.
  • Современные маршрутизаторы при ответе на трейсроут не соблюдают требования пункта 4.3.2.4 RFC1812, обязывающего устанавливать IP-адрес источника ICMP-ответов равным адресу исходящего интерфейса. Вместо этого они устанавливают его равным адресу интерфейса, на который был получен трейсроут-запрос (пакет с TTL=1). Впрочем, если б было наоборот, читать вывод трейсроута было бы куда тяжелее.
  • Наличие MPLS-коммутации внутри магистральных сетей (нынче это так у любого уважающего себя крупного провайдера) приводит к контруинтуитивному пути передачи ответов на трейсроут и еще менее очевидному способу вычисления задержек.

Некоторые наиболее важные выводы (с моим творческим осмыслением)
  • Трейсроут — не такая простая штука, как кажется; ею нужно уметь пользоваться. А для этого надо понимать, как она работает.
  • Большинство админов и инженеров служб эксплуатации, не говоря уже о простых пользователях, не понимают и не умеют. Такое положение дел очень часто приводит к ложным тревогам, неправильной диагностике и т. п.
  • Трейсроут трейсроуту рознь. Стандартные утилиты tracert в Windows и traceroute в Линукс реализованы по-разному и могут давать разные результаты. Windows посылает ICMP, а Linux — UDP, файрволы на пути трассировки могут иметь неодинаковые настройки фильтрации для разных протоколов.
  • При интерпретации результатов трассировки требуется опыт и сообразительность. Бывает, что важные выводы можно сделать лишь путем догадки, опираясь на косвенные данные, а иные — и вовсе не однозначно, а лишь с точностью до «скорее всего».

Итого

Если вы клиент

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

Если вы не видите проблем с сервисом (все работает), но в выводе трейсроута вам что-то не нравится — подумайте хорошенько, прежде чем подымать тревогу. Крайне вероятно, что вы просто неверно интерпретируете вывод. Очень нечасто по одному трейсроуту можно судить о наличии проблемы. А если проблема действительно есть, обычно ее проще продемонстрировать без трейсроута.

Если вы исполнитель

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

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

Как использовать TRACERT для устранения проблем TCP / IP в Windows

Сводка

В этой статье описывается TRACERT (Trace Route), служебная программа командной строки, которую можно использовать для отслеживания пути, по которому пакет Интернет-протокола (IP) идет к месту назначения.

В этой статье обсуждаются следующие темы:

  • Как использовать утилиту TRACERT

  • Как использовать TRACERT для устранения неполадок

  • Как использовать опции TRACERT

Дополнительная информация

Как использовать утилиту TRACERT

Утилита диагностики TRACERT определяет маршрут к пункту назначения, отправляя эхо-пакеты протокола управляющих сообщений Интернета (ICMP) в пункт назначения.В этих пакетах TRACERT использует различные значения времени жизни (TTL) IP. Поскольку каждый маршрутизатор на пути должен уменьшить TTL пакета по крайней мере на 1 перед пересылкой пакета, TTL фактически является счетчиком переходов. Когда TTL пакета достигает нуля (0), маршрутизатор отправляет ICMP-сообщение «Превышено время» обратно на исходный компьютер.

TRACERT отправляет первый эхо-пакет с TTL, равным 1, и увеличивает TTL на 1 при каждой последующей передаче, пока адресат не ответит или пока не будет достигнут максимальный TTL.Сообщения ICMP «Превышено время», отправляемые промежуточными маршрутизаторами, показывают маршрут. Однако обратите внимание, что некоторые маршрутизаторы незаметно отбрасывают пакеты с истекшим TTL, и эти пакеты невидимы для TRACERT.

TRACERT распечатывает упорядоченный список промежуточных маршрутизаторов, которые возвращают сообщения ICMP «Превышено время». Использование опции -d с командой tracert указывает TRACERT не выполнять поиск DNS по каждому IP-адресу, так что TRACERT сообщает IP-адрес интерфейса ближней стороны маршрутизаторов.

В следующем примере команды tracert и ее выходных данных пакет проходит через два маршрутизатора (157.54.48.1 и 11.1.0.67), чтобы добраться до хоста 11.1.0.1. В этом примере шлюз по умолчанию — 157.54.48.1, а IP-адрес маршрутизатора в сети 11.1.0.0 — 11.1.0.67.

Команда:

C: \> tracert 11.1.0.1
Вывод команды:

Трассировка маршрута до 11.1.0.1 максимум на 30 переходах
——————- ———————————
1 2 мс 3 мс 2 мс 157.54.48.1
2 75 мс 83 мс 88 мс 11.1.0.67
3 73 мс 79 мс 93 мс 11.1.0.1

Трассировка завершена.

Как использовать TRACERT для устранения неполадок

Вы можете использовать TRACERT, чтобы узнать, где остановился пакет в сети. В следующем примере шлюз по умолчанию обнаружил, что нет допустимого пути для хоста на 22.110.0.1. Вероятно, либо у роутера проблема с настройкой, либо у 22.Сеть 110.0.0 не существует, что указывает на неверный IP-адрес.

Команда:

C: \> tracert 22.110.0.1
Вывод команды:

Трассировка маршрута до 22.110.0.1 максимум на 30 переходах
——————- ———————————-
1 157.54.48.1 отчеты: Целевая сеть недоступна.

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

Как использовать параметры TRACERT

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

В следующем примере синтаксиса команды показаны все возможные варианты:

tracert -d -h maximum_hops -j host-list -w timeout target_host Что делают параметры:

-d
Указывает не разрешать адреса в имена хостов

-h maximum_hops
Задает максимальное количество переходов для поиска цели

-j host-list
Указывает свободный исходный маршрут по списку хостов

-w timeout
Ожидает количество миллисекунд, заданное таймаутом для каждого ответа

target_host
Задает имя или IP-адрес целевого хоста

Traceroute Command — обзор

Nmap

Nmap — это инструмент сетевого сканирования, который набирает популярность в области защиты и безопасности компьютеров.Практически каждый, кто выполняет оценку уязвимости сети или играет роль в компьютерной / ИТ-безопасности, не только слышал о Nmap, но и использовал его в той или иной форме. То, что раньше было приложением для сканирования, используемым только в среде командной строки, теперь включено в другие инструменты сетевого сканирования и имеет графический интерфейс для простоты использования.

Nmap — это продукт с открытым исходным кодом, но он был разработан усилиями Гордона «Федора» Лиона, который написал оригинальную форму этого сетевого картографа.С тех пор Nmap произвела революцию в мире сетевой безопасности и защиты компьютеров. Одна из его основных особенностей — возможность настройки для различных целей и задач. Например, он может сканировать в одной конфигурации в один момент, а затем, с помощью нескольких простых нажатий клавиш, вы можете настроить его для работы в совершенно другом режиме. Несмотря на то, что Nmap имеет множество функций, у него есть некоторая кривая обучения для людей, которые не имели большого опыта в сканировании и разведке сети. Исходная версия Nmap управлялась интерфейсом командной строки (CLI), поэтому вам приходилось вводить команды, переключатели и флаги, чтобы запустить событие сканирования.Но Nmap был перенесен на другие платформы, включая Microsoft Windows, и стала доступна версия с графическим интерфейсом.

Если ввод команд в интерфейсе командной строки не для вас, у вас есть несколько вариантов. Если вы работаете на ПК с Windows, Nmap доступен с интерфейсом GUI, который требует, чтобы вы просто заполнили некоторые пробелы и отметили некоторые параметры для настройки приложения.

Если вы работаете в системе Linux, вы можете изучить пакет NmapFE или Zenmap (я имею в виду пакеты .rpm для поклонников Fedora Linux и.deb для тех, кто использует Knoppix или Ubuntu / Kubuntu). Это тот же процесс «наведи и щелкни», что и в версии для Windows, но в среде Linux.

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

Рисунок 7.2. Nmap Сканирование в сетевой подсети

Перед тем, как мы обсудим некоторые варианты выбора режима сканирования, которые вы можете сделать с помощью Nmap, вы должны убедиться, что понимаете основные основы работы с сетью, такие как флаги TCP, соединение и протоколы без установления соединения и другие технические термины. Возможно, вы захотите ознакомиться с документом на веб-сайте Cisco по адресу http://www.cisco.com/en/US/docs/internetworking/technology/handbook/Internet-Protocols.html, чтобы освежить его в памяти. Я также рекомендую вам ознакомиться с этой статьей об основах ИТ-безопасности, которая находится в читальном зале SANS.В нем содержится хорошая информация о безопасности, особенно в отношении атак DOS и MitM: http://www.sans.org/reading_room/whitepapers/basics/information_security_primer_443?show=443.php&cat=basics.

Nmap может сканировать как хосты, так и сети различными способами. Вы можете настроить определенные элементы управления, такие как скорость и агрессивность, через интерфейс командной строки или через интерфейс пользователя. Например, Nmap включает шесть различных шаблонов времени. Вы обращаетесь к шаблонам с помощью переключателя –T , и они работают, чтобы управлять потоком пакетов Nmap вниз по дальности до своей цели.Диапазон варьируется от пяти минут на один пакет проверки (T0) до пяти миллисекунд (T5) на пакет проверки, поэтому у вас есть большой контроль над тем, как быстро запускается сканирование и сколько шума оно создает для системы обнаружения вторжений / системы предотвращения вторжений (IDS / IPS) следят за сетью. Это сделано для того, чтобы позволить кому-то, кто хочет запускать сканирование медленно, чтобы избежать обнаружения. Эта гибкость отличает их от сумасшедших среди нас, которым нравится насыщать сеть нашими зондами Nmap.Слишком быстрое сканирование сети также приводит к тому, что эти сумасшедшие могут быть обнаружены намного быстрее, как прямой результат.

Nmap также может сканировать хосты разными способами для соответствия определенным требованиям и обстоятельствам. Nmap может сканировать свои целевые хосты с помощью пакетов протокола управления передачей (TCP), пакетов протокола дейтаграмм пользователя (UDP), IP-пакетов и других конфигураций. Когда дело доходит до тестовых пакетов TCP, Nmap может формировать пакеты с определенными установленными флагами TCP, такими как SYN, RST, ACK, FIN, URG и PSH , в любой конфигурации, которая вам подходит.Причина этого в том, что некоторые брандмауэры или списки управления доступом (ACL) настроены на проверку содержимого флагов и принятие решения о передаче, удалении или отклонении на основе определенных критериев. Одна конкретная конфигурация сканирования Nmap называется XMAS, потому что установлены флаги FIN, PSH и URG (ярко светятся, как рождественская елка), и это может или не может избежать проверки пакетов. Некоторые IDS будут вводить это, поскольку у них может быть настроенная сигнатура обнаружения, которая срабатывает при обнаружении этой комбинации; это называется сканированием NMAP XMAS-Tree.Но этого тоже можно избежать, установив переопределение флага.

Однажды, когда я был на прежнем рабочем месте, я был проинформирован (и разочарован, узнав), что сотрудники службы сетевой безопасности решили ограничить возможности остальных сотрудников по устранению неполадок сетевого подключения, заблокировав протокол управляющих сообщений Интернета (ICMP) ping-трафик в маршрутизаторы и исходящий из них по всей сети кампуса. Итак, однажды трассировка перестанет работать, поскольку политика будет применена. Однако в особенно жаркий день я обнаружил, что, когда я невнимательно набрал команду traceroute на Apple Mac под управлением OS 10, я обнаружил, что она работает в подсетях и по всей сети.Как оказалось, администратор безопасности упустил из виду тот факт, что системы Windows используют UDP-пакеты для своей команды tracert , но OS 10 выталкивает пакеты ICMP, и на них не обращали внимания. Я и мои коллеги очень заинтересовались тем, что еще можно пройти.

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

Другой важной особенностью Nmap является его способность сканировать порты и сообщать вам все, что угодно о хосте, который их обслуживает. Nmap может не только сканировать любой из 65 536 портов на хосте, но также может получать от них определенную информацию. Помните, что порты обычно находятся в одном из нескольких состояний: открыт (принимает соединения), закрыт (например, закрыт для бизнеса) и отфильтрован (что может быть другим способом сказать «брандмауэр»). В некоторых случаях порт может быть отмечен как неотфильтрованный, что означает, что Nmap не может определить, отфильтрован ли он, и не полностью уверен, что он открыт для установления соединений.Nmap может не только сообщить об этом, но и легко пойти дальше и определить, какой тип операционной системы контролирует сетевые службы на целевых хостах. Различные операционные системы по-разному реагируют на определенные сетевые события, и, внимательно изучая тонкие различия во времени и ответы, возвращаемые его зондам, процесс Nmap может сделать достойное, интеллектуальное определение операционной системы, которую он исследует. Nmap может пойти еще дальше и выполнять обнаружение служб на портах. Сколько раз вы слышали, как кто-то говорил, что собирается скрыть сетевой сервис, поместив его на нестандартный, не очень известный порт, чтобы уменьшить количество атак на его систему? Что ж, Nmap может определить, пробовал ли кто-нибудь это, установив сервер Secure Shell (SSH) для работы на порте 53, поскольку он знает различия между SSH и серверами системы доменных имен (DNS).

Тонны технических специалистов, с которыми я столкнулся, в восторге от функции обнаружения ОС Nmap (доступной при включении переключателя –O ). Ну, Nmap также предлагает функцию снятия отпечатков пальцев (доступную при включении переключателя –sV ). Это может помочь подтвердить результаты обнаружения ОС, а также дать вам представление о конкретных службах, запущенных в системе.

Nmap также известен своими функциями вывода и отчетности. Программа может предоставлять вам результаты сканирования разными способами.Как вы видели на рис. 7.2, состояние каждого порта отображается в отдельной строке, и обычно это нормально для визуального отображения. Но когда вы сканируете от десятков до тысяч хостов, вам не захочется просматривать эту информацию построчно, если вы можете прогнать результаты с помощью инструмента поиска по тексту, чтобы классифицировать результаты. С этой целью Nmap также может выгружать свои результаты в файл в формате XML или в файл, который вы можете искать с помощью команды grep (или как вам нравится, что может выполнять поиск / фильтрацию по регулярным выражениям).Nmap также предлагает вариант размещения результатов во всех трех форматах, если вы хотите, и все, что вам нужно сделать, это указать базовое имя файла в команде, прежде чем вы начнете сканирование.

Записки из подполья…

Итак, вы действительно думаете, что знаете, кто вас сканирует?

Хотите узнать, как хорошие тестеры на проникновение скрывают свои адреса как можно дольше? Это вопрос сокрытия среди других имеющихся IP-адресов и подделки IP-адреса.Два интересных способа, которыми вы можете скрыть свой IP-адрес как источник активности сканирования, включают использование функции приманки и подделку вашего адреса управления доступом к среде (MAC).

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

Вот пример этой техники, отправляющей флаги ACK на порт 80 со скоростью Captain Insaneo:

#nmap –n –PA –p 80 — Т5 –Д 10.1.1.1,10.1.2.1,66.1.2.6, ME, 202.3.192.1 <цель>

Что касается спуфинга MAC-адреса, сегодня легко подменить исходный MAC-адрес интерфейса, который использует Nmap, и вам даже не нужно его искать. Скажем, например, вы посещаете художественную студию с системой Alienware в качестве компьютера для оценки уязвимости, и все ваши цели — системы Macintosh. Если вы запустите сканирование Nmap, не внося изменений, чтобы скрыть идентичность вашей системы, ваша система будет торчать, как больной палец.Итак, вы вызываете в воображении «талисман на удачу» и используете конкретного поставщика MAC-адресов — и бросаете офицеру службы безопасности зацикливание, пока он ищет систему HP Compaq. Вот команда Nmap, которую вы должны передать в этом случае:

#nmap –n –PA –p 870 –T5 –spoof-mac HP

Если вы хотите, чтобы он подумал, что маршрутизатор Linksys был участвует, попробуйте следующее:

#nmap –n –PA –p 870 –T5 –spoof-mac Linksys

Хорошие времена!

Хотя мы говорили только о некоторых функциях, у Nmap есть множество других, которые мы не можем описать.Достаточно сказать, что Nmap оказал огромное влияние на компьютерную безопасность и системное администрирование и, скорее всего, будет продолжать делать это, поскольку он продолжает разрабатываться с участием открытого исходного кода со всего мира.

Traceroute

Traceroute, как и команда ping, может использоваться для выявления проблем в нашей сети. Команда ping иногда немного ограничена. Например, взгляните на следующую топологию:

Когда мы отправляем пинг с h2 (192.168.1.1) на S1 (192.168.3.1), и этот пинг не работает, что это значит? Мы будем знать, что что-то не работает, но не знаем, где проблема между h2-R1, R1-R2, R2-R3 или R3-S1.

Если вы знаете IP-адреса всех маршрутизаторов на пути, вы можете пропинговать все эти маршрутизаторы один за другим. Что делать, если вы не знаете, сколько маршрутизаторов находится между ними? Или если вы не знаете их IP-адреса?

В этом нам поможет команда traceroute. Вот краткий пример:

  C: \ Users \ renemolenaar>  tracert facebook.com 

Отслеживание маршрута к facebook.com [31.13.64.35]
более 30 прыжков:

  1 9 мс 8 мс 8 мс D5644061.static.ziggozakelijk.nl [215.99.12.17]
  2 9 мс 14 мс 8 мс tb-rc0001-cr101-ae40-0.core.as9143.net [213.51.158.66]
  3 10 мс 12 мс 11 мс asd-tr0042-cr101-ae5-0.core.as9143.net [213.51.158.18]
  4 14 мс 12 мс 12 мс br02.ams1.tfbnw.net [80.249.209.164]
  5 12 мс 12 мс 13 мс po131.asw01.ams3.tfbnw.net [157.240.35.46]
  6 12 мс 12 мс 13 мс po232.psw01c.amt2.tfbnw.net [157.240.35.175]
  7 13 мс 12 мс 12 мс msw1ad.01.amt2.tfbnw.net [173.252.64.255]
  8 12 мс 11 мс 13 мс edge-star-mini-shv-01-amt2.facebook.com [31.13.64.35]

Трассировка завершена.  

Выше я использовал команду tracert (traceroute) на компьютере с Windows, чтобы проследить путь от моего компьютера до facebook.com. Вы можете увидеть все IP-адреса и имена хостов маршрутизаторов между моим компьютером и сервером, который отвечает на www.facebook.com. Время отклика, которое вы видите, — это время пути туда и обратно от моего компьютера до маршрутизатора. Для каждого маршрутизатора traceroute отправляет три зонда.

Итак, как работает traceroute?

Traceroute использует поле TTL (время жизни) в заголовке IP-пакета. Обычно TTL используется для предотвращения постоянной пересылки пакетов при возникновении петли маршрутизации. Всякий раз, когда IP-пакет пересылается маршрутизатором, TTL уменьшается на единицу . Когда TTL равен нулю, IP-пакет отбрасывается.

Как мы используем это для трассировки? Давайте посмотрим на пример. Допустим, из h2 (192.168.1.1) мы отправляем трассировку на S1 (192.168.3.1). Первый IP-пакет, который отправляет h2, будет иметь TTL 1:

.

Когда R1 получает IP-пакет, он хочет переслать его R2, но ему нужно уменьшить TTL с единицы до нуля, в результате IP-пакет будет отброшен, и R1 ответит на h2 с превышением TTL сообщение. h2 теперь отправит второй пакет с TTL 2:

R1 уменьшит TTL с двух до одного, переадресовывает его, и теперь R2 должен его сбросить.R2 ответит сообщением о превышении TTL. h2 теперь отправит другой IP-пакет с TTL 3:

R1 уменьшит TTL с трех до двух, R2 уменьшит его с двух до одного, а R3 должен будет его сбросить. R3 отправляет сообщение о превышении TTL на R1. Последний IP-пакет, который отправит h2, будет иметь TTL, равный четырем:

.

Каждый маршрутизатор будет уменьшать TTL на единицу, наш сервер на другом конце получит IP-пакет с TTL, равным единице, и ответит ICMP-ответом на h2.Теперь мы знаем, что пункт назначения достижим, и мы изучили все маршрутизаторы на нашем пути.

Каждый отправляемый нами IP-пакет называется зондом . Traceroute может использоваться с ICMP, UDP и TCP, в зависимости от вашей операционной системы.

Команда Traceroute

Давайте посмотрим на это в действии. Для этой демонстрации я буду использовать следующую топологию:

Выше у нас два хост-компьютера. h2 — это компьютер под управлением Windows (192.168.1.1), а h3 — компьютер под управлением Linux (192.168.1.2) под управлением Ubuntu. Маршрутизаторы были настроены с использованием EIGRP, поэтому у нас есть полная возможность подключения.

Окна

Начнем с трассировки Windows:

  C: \ Users \ vmware>  tracert 192.168.3.1 

Трассировка маршрута до 192.168.3.1 максимум на 30 переходах

  1 1 мс 1 мс <1 мс 192.168.1.254
  2 1 мс 1 мс 1 мс 192.168.12.2
  3 1 мс 1 мс 1 мс 192.168.23.3
  4 1 мс <1 мс <1 мс 192.168.3.1

Трассировка завершена.  

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

Выше мы видим первый IP-пакет с TTL равным единице. Мы видим, что это запрос ICMP. Когда R1 получит этот IP-пакет, он ответит следующим образом:

Выше мы видим, что R1 отвечает S1 сообщением об истечении срока действия TTL.В файле захвата вы трижды увидите два вышеуказанных пакета. Давайте посмотрим на следующий IP-пакет:

У этого TTL равняется двум, что делает его R2:

И третий пакет с TTL равным трем:

R3 ответит на него сообщением о превышении TTL:

Наконец, последний IP-пакет с TTL равным четырем будет отправлен h2:

Этот наконец добрался до S1, поэтому мы получаем ответ ICMP:

Вот как работает traceroute в Windows.Вы можете сами взглянуть на файл захвата, если хотите:

Windows Traceroute

Linux

Команды traceroute в Linux работают аналогично Windows. Одно важное отличие состоит в том, что он использует не ICMP, а UDP. Он также позволяет вам указать количество IP-пакетов (зондов), которые вы хотите отправить. Чтобы создать хороший чистый захват wirehark, я настроил его так, чтобы он отправлял только один зонд для каждого прыжка:

  $  traceroute -N 1 -q 1 192.168.3.1 
traceroute на 192.168.3.1 (192.168.3.1), не более 30 переходов, 60 байтовых пакетов
 1 192.168.1.254 (192.168.1.254) 1,202 мс
 2 192.168.12.2 (192.168.12.2) 1,122 мс
 3 192.168.23.3 (192.168.23.3) 1.192 мс
 4 192.168.3.1 (192.168.3.1) 1.886 мс  

Вот как выглядит этот traceroute в Wireshark:

Выше мы видим, что h3 отправляет пакеты UDP вместо запросов ICMP. Давайте подробнее рассмотрим эти пакеты. Вот первый:

Выше мы видим, что h3 отправляет первый IP-пакет с TTL, равным единице.Мы видим, что используем UDP, а номер порта назначения - 33434. R1 ответит на это:

.

Поскольку TTL равен нулю, R1 отбрасывает его и отвечает сообщением о превышении TTL. Время для второго IP-пакета с TTL, равным двум:

Пакет выше такой же, как и первый, за исключением того, что вы можете видеть, что номер порта назначения увеличился с 33434 до 33435. R2 сбросит это:

Время для пакета с TTL, равным трем:

Выше вы можете видеть, что номер порта назначения увеличился с 33435 до 33436.R3 сбросит это:

Последний пакет будет иметь TTL, равный четырем, и номер порта назначения 33437:

Это дойдет до S1. Поскольку S1 не прослушивает ни один из этих номеров портов UDP, он ответит, что пункт назначения / порт недоступен:

Это говорит h3, что мы добрались до пункта назначения.

Команда linux traceroute имеет множество опций. Он также позволяет использовать ICMP или TCP для трассировки.

Linux Traceroute

Cisco IOS

Мы также можем использовать команду traceroute в Cisco IOS. Как и Linux, Cisco использует UDP для трассировки. Давайте сделаем трассировку от R1 до S1, я буду использовать один зонд:

  R1 # t  raceroute 192.168.3.1 зонд 1 
Для отмены введите escape-последовательность.
Отслеживание маршрута до 192.168.3.1
Информация о VRF: (vrf в имени / идентификаторе, vrf выходном имени / идентификаторе)
  1 192.168.12.2 0 мс
  2 192.168.23.3 4 мс
  3 192.168.3.1 0 мс  

Вверху мы видим, что этот след доходит до места назначения.

Traceroute на Cisco IOS может работать очень медленно. Это потому, что он будет пытаться выполнить поиск в DNS для каждого IP-адреса. Чтобы сделать это быстрее, убедитесь, что эти запросы можно разрешить, или отключите поиск DNS с помощью команды no ip domain-lookup.

Вот как выглядит захват в Wireshark:

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

Давайте вместо этого рассмотрим некоторые параметры команды traceroute:

  R1 #  traceroute? 
  WORD Трассировка маршрута до адреса назначения или имени хоста
  appletalk AppleTalk Trace
  clns ISO CLNS Trace
  Ethernet Traceroute Ethernet
  ip IP Trace
  ipv6 IPv6 Trace
  ipx IPX Trace
  mpls MPLS LSP Trace
    

Мы можем выбрать, хотим ли мы отслеживать IP-адрес или имя хоста.Если вы ничего не указываете, вы можете выбрать некоторые параметры, которые хотите использовать:

  R1 #  traceroute 
Протокол [ip]:
Целевой IP-адрес: 192.168.3.1
Адрес источника:
Цифровой дисплей [n]: y
Тайм-аут в секундах [3]:
Количество зондов [3]:
Минимальное время жизни [1]:
Максимальное время жизни [30]:
Номер порта [33434]:
Свободный, Строгий, Запись, Отметка времени, Подробный [нет]:
Для отмены введите escape-последовательность.
Прослеживаем маршрут до 192.168.3.1
Информация о VRF: (vrf в имени / идентификаторе, vrf выходном имени / идентификаторе)
  1 192.168.12.2 0 мс 4 мс 0 мс
  2 192.168.23.3 4 мс 0 мс 4 мс
  3 192.168.3.1 0 мс 0 мс 0 мс  

Вы также можете добавить эти параметры после IP-адреса, например:

  R1 #  traceroute 192.168.3.1? 
  числовой дисплей числовой адрес
  порт укажите номер порта
  зонд указать количество зондов на переход
  источник укажите адрес или имя источника
  тайм-аут указать тайм-аут
  ttl укажите минимальный и максимальный ttl
    

Как я сделал, когда указал количество зондов:

  R1 #  traceroute 192.168.3.1 зонд 1   

Если вы хотите отменить трассировку, нажмите SHIFT + CTRL + 6, отпустите, затем нажмите X.

Здесь вы можете найти файл захвата, если хотите увидеть его собственными глазами:

Cisco IOS Traceroute

Поиск и устранение неисправностей

Теперь вы видели результат выполнения команды traceroute, когда все работает как надо. Давайте посмотрим на два примера, когда у нас нет сквозного подключения. Мне нужны только эти три роутера для этого примера:

Пункт назначения недоступен

Давайте начнем с недоступного пункта назначения.Я добавлю новый шлейф на R3 с IP-адресом:

  R3 (config) #  loopback интерфейса 0 
R3 (config-if) #  IP-адрес 3.3.3.3 255.255.255.255   

В настоящее время ни один из наших маршрутизаторов не знает, как достичь 3.3.3.3. Давайте посмотрим, как выглядит вывод traceroute:

  R1 #  traceroute 3.3.3.3 
Для отмены введите escape-последовательность.
Отслеживание маршрута до 3.3.3.3
Информация о VRF: (vrf в имени / идентификаторе, vrf выходном имени / идентификаторе)
  1 * * *
  2 * * *
  3 * * *  

Выше мы видим, что ни один из зондов не добрался до пункта назначения.Давайте добавим статический маршрут на R1, чтобы этот трафик достигал R2 как минимум:

  R1 (конфигурация) #  IP-маршрут 3.3.3.3 255.255.255.255 192.168.12.2   

И сделайте еще один traceroute:

  R1 #  traceroute 3.3.3.3 
Для отмены введите escape-последовательность.
Отслеживание маршрута до 3.3.3.3
Информация о VRF: (vrf в имени / идентификаторе, vrf выходном имени / идентификаторе)
  1 192.168.12.2 4 мс 0 мс 4 мс
  2 192.168.12.2! H *! H  

Теперь мы видим, что R1 может его переслать, R2 отвечает, что он недоступен.Давайте добавим статический маршрут на R2:

  R2 (конфигурация) #  IP-маршрут 3.3.3.3 255.255.255.255 192.168.23.3   

И попробуйте еще один след:

  R1 #  traceroute 3.3.3.3 
Для отмены введите escape-последовательность.
Отслеживание маршрута до 3.3.3.3
Информация о VRF: (vrf в имени / идентификаторе, vrf выходном имени / идентификаторе)
  1 192.168.12.2 0 мс 4 мс 0 мс
  2 192.168.23.3 4 мс * 0 мс  

Теперь мы можем добраться до места назначения.

Источник недоступен

Мы можем использовать traceroute, чтобы выяснить, можем ли мы достичь определенного пункта назначения, но вы также можете использовать его, чтобы проверить, знают ли другие маршрутизаторы о вашем источнике.Давайте добавим еще один петлевой интерфейс, на этот раз на R1:

.
  R1 (config) #  loopback интерфейса 0 
R1 (config-if) #  IP-адрес 1.1.1.1 255.255.255.255   

Теперь я проведу трассировку до 192.168.3.1 с 1.1.1.1 в качестве источника. Мы знаем, что 192.168.3.1 доступен, поскольку мы уже пробовали его раньше. Давайте посмотрим:

  R1 #  traceroute 192.168.3.1 петля от источника 0 
Для отмены введите escape-последовательность.
Прослеживаем маршрут до 192.168.3.1
Информация о VRF: (vrf в имени / идентификаторе, vrf выходном имени / идентификаторе)
  1 * * *
  2 * * *
  3 * * *  

Эта трассировка не работает. Никто не знает, как добраться до 1.1.1.1. Давайте добавим статический маршрут на R2:

  R2 (конфигурация) #  IP-маршрут 1.1.1.1 255.255.255.255 192.168.12.1   

R2 теперь знает, как достичь 1.1.1.1. Давайте снова попробуем этот traceroute:

  R1 #  traceroute 192.168.3.1 петля от источника 0 
Для отмены введите escape-последовательность.Отслеживание маршрута до 192.168.3.1
Информация о VRF: (vrf в имени / идентификаторе, vrf выходном имени / идентификаторе)
  1 192.168.12.2 0 мс 4 мс 0 мс
  2 * * *
  3 * * *  

R2 теперь отвечает. Это говорит нам о том, что проблема не между R1 и R2, а где-то дальше по линии. Добавим последний статический маршрут:

.
  R3 (конфигурация) #  ip route 1.1.1.1 255.255.255.255 192.168.23.2   

R3 теперь тоже умеет добраться до 1.1.1.1. Давайте попробуем эту трассировку:

  R1 #  traceroute 192.168.3.1 шлейф источника 0 
Для отмены введите escape-последовательность.
Отслеживание маршрута до 192.168.3.1
Информация о VRF: (vrf в имени / идентификаторе, vrf выходном имени / идентификаторе)
  1 192.168.12.2 0 мс 4 мс 0 мс
  2 192.168.23.3 4 мс 0 мс 0 мс
  3 192.168.3.1 0 мс 0 мс 4 мс  

Что теперь успешно завершается.

Если вы видите некоторые звездочки (тайм-ауты) в трассировке для некоторых маршрутизаторов, то этот маршрутизатор (или брандмауэр), вероятно, настроен со списком доступа и настроен так, чтобы не отвечать какими-либо сообщениями с истекшим TTL.

Заключение

Теперь вы узнали, как traceroute использует поле TTL (время жизни) в IP-пакете для отправки зондов в пункт назначения, что позволяет нам обнаружить путь от источника до пункта назначения. Вы также видели, как Windows использует ICMP, а Linux - UDP для traceroute. Мы также рассмотрели, как можно использовать traceroute для устранения проблем с доступностью сети, когда источник и / или место назначения неизвестны.

Команда Traceroute и ее параметры

Traceroute - отличное программное обеспечение для проверки маршрута от компьютера до имени хоста или IP-адреса.

Что такое команда Traceroute?

Команда Traceroute (tracert в Windows) - это небольшое программное обеспечение для диагностики сети, которое вы встроили в свое устройство и серверы для отслеживания маршрута шаг за шагом к цели.
Многие сетевые администраторы ежедневно используют команду Traceroute. Это удобный инструмент, который можно использовать в разных операционных системах - Windows (Tracert), macOS, Linux (Traceroute) и даже на мобильных устройствах (Android и iOS).
Для доступа к traceroute вам потребуется использовать терминал (Linux и macOS) или командную строку (Windows).
Вы можете использовать Traceroute и увидеть полный маршрут, по которому пакеты идут к месту назначения (домен или IP-адрес). Кроме того, вы увидите имена хостов и IP-адреса маршрутизаторов в пути, а также задержку, время, необходимое каждому устройству для получения и повторной отправки данных.
Вы можете увидеть, какой шлюз сбрасывает ваши данные, и позже вы сможете это исправить.

Зачем использовать Traceroute или команду Tracert?

Преимущества использования команды traceroute или ее альтернативы для Windows, называемой командой tracert:

  • Полный маршрутный лист .Вы увидите все маршрутизаторы в пути, их IP-адреса и время, которое потребовалось. Вы можете лучше понять сеть.
  • Время маршрута . Посмотрите, сколько времени нужно, чтобы закончить запрос. Это нормально для вас? Что вы можете сделать, чтобы это ускорить? У вас может быть отправная точка для улучшений.
  • Встроен . Вам не нужно устанавливать дополнительное программное обеспечение, и его использование бесплатно.
  • Проверьте, можете ли вы достичь цели . Посмотрите, есть ли соединение между вашим устройством и именем хоста или IP-адресом, указанным в команде.
  • См. Проблемный медленный маршрутизатор . Вы можете увидеть, сколько времени потребовалось для каждого прыжка. Таким образом, вы видите место, которое значительно замедляет работу вашей сети. Вы можете решить проблему или добавить больше присутствия в этом районе.

Как использовать команду Traceroute?

Используйте команду traceroute, написав команду «traceroute + domain.com / IP-адрес» или в Терминале в Linux и macOS или «tracert + domain.com / IP-адрес» в командной строке Windows.

Traceroute (Linux и macOS)

traceroute domian.com или traceroute 12.23.34.45

Tracert (Windows)

tracert domian.com или tracert 12.23.34.45

В macOS вы также можете использовать утилиту Traceroute. Нажмите командную кнопку + пробел. Затем напишите Network Utility. Внутри перейдите к Traceroute. Напишите имя хоста или IP-адрес и нажмите Enter. Он покажет вам результат.

* Вы можете сменить домен .com с другим доменом, который вы хотите исследовать, и то же самое касается IP-адреса.

Существуют некоторые различия между командой Traceroute и Tracert. Проверьте варианты ниже.

Команда Traceroute против команды tracert

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

Синтаксис команд traceroute и tracert

traceroute [параметры] host_Address [pathlength] (Linux)

traceroute [параметры] хост [размер пакета] (macOS)

tracert [-d] [-h maximum_hops] [-j host-list] [-w timeout] [-R] [-S srcaddr] [-4] [-6] target_name (Windows)

Пример Traceroute (Tracert в Windows)

Имя Traceroute в Windows - Tracert.Работает аналогично версии для других операционных систем.

А вот так команда Traceroute выглядит в Linux и macOS:

Параметры Traceroute для Linux

Если вы пользователь Linux (Ubuntu, Linux Mint, Manjaro, Red Hat, Debian и т. Д.), Вы можете указать свою команду traceroute со следующими параметрами:

Опция

Описание

–help

Информация о команде.

-d

Эта команда включает отладку в Linux.

-F

Запретить фрагментацию.

-f first_ttl

Введите первое значение TTL пакета.

-g шлюз

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

-i интерфейс

Установите интерфейс для датчиков.

-м max_ttl

TTL в traceroute означает максимальное количество переходов.

-N

Количество зондов, отправляемых одновременно (одновременно).

Остановить определение IP-адресов.

-p порт

Определите порт для запроса.

Установите тип обслуживания в датчиках.

-w время ожидания

Максимальное время ожидания для каждого ответа.

-q nзапросы

Установите количество запросов. Значение по умолчанию - 3.

.

-r

Обход таблиц маршрутизации и отправка их на хост напрямую (только в присоединенной сети).

-S srcaddr

Только IPv6 - адрес источника.

-e

Показать расширения ICMP.

поиска AS разрешены для каждого перехода.

Показать версию.

-U

Используйте определенный порт UDP.Значение по умолчанию - 53.

-UL

Используйте UDPLITE для запроса.

-P протокол

Отправляет пакеты указанного IP-протокола.

-I

Используйте эхо ICMP для запросов.

Используйте TCP SYN для запросов.

-4

Использовать только адреса IPv4

-6

Использовать только адреса IPv6

Обратная запись DNS и PTR

Параметры Traceroute для Windows

Вы можете использовать команду Tracert с различными параметрами для выполнения более точных тестов.Следующие параметры работают в Windows Vista, Windows 7, Windows 8 и, конечно же, Windows 10.

Опция

Описание

-d

Не преобразовывать адреса в имена хостов.

-h aximum_hops

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

-j список хостов

Свободный исходный маршрут по списку хостов (только для IPv4). Показывать только адреса IPv4.

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

-R

Трассировка пути туда и обратно (только для IPv6).

-S srcaddr

Исходный адрес для использования (только IPv6).

-4

Принудительное использование IPv4.

-6

Принудительное использование IPv6.

Параметры Traceroute для macOS

Хотя команда Traceroute в macOS очень похожа на свою версию для Linux, есть небольшие различия в их параметрах.

Опция

Описание

Поиск AS # разрешен для каждого перехода.

-d

Отладка на уровне сокета.

-D

Когда получен ответ ICMP на нашу датаграмму зондирования, распечатайте различия между переданным пакетом и пакетом, указанным в ответе ICMP.

-e

Mode - Уклонение от брандмауэра. Порты для UDP и TCP будут фиксированными и не будут увеличиваться с каждым прыжком.

-f first_ttl

Введите первое значение TTL пакета.

-F

Запретить фрагментацию.

-g шлюз

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

-i iface

Установите интерфейс для датчиков.

-I

Используйте эхо ICMP для запросов.

-M first_ttl

То же, что и -f.

-м max_ttl

Установите максимальное количество прыжков. По умолчанию установлено 30.

Показать адреса переходов в числовом виде.

-П протокол

Отправляет пакеты указанного IP-протокола.

-p порт

Определите порт для запроса.

-q nзапросы

Ставьте определенное количество запросов. Значение по умолчанию - 3.

.

-r

Обход таблиц маршрутизации и отправка их на хост напрямую (только в присоединенной сети).

-S srcaddr

Только IPv6 - адрес источника.

-S

Сводка оставшихся без ответа зондов.

Установите тип обслуживания в датчиках.

-v

Подробный вывод.

-w

Установите интервал ожидания (в секундах) для ответа. Значение по умолчанию - 3.

.

Переключить контрольные суммы IP.

-z

Установите паузу (в секундах) между датчиками.Значение по умолчанию - 0.

TTL и Traceroute

Каждый отправляемый вами пакет содержит TTL (время жизни). Это не время, а предел хмеля, который нужно сделать до получения результата.

Обычное ограничение - 30, но, например, оно может быть больше 64. Это ограничение останавливает ваши данные после определенного количества прыжков, поэтому они не будут длиться вечно. IP-пакет будет следовать до тех пор, пока не получит значение «время истекло» или «порт недоступен», когда он достигнет хоста.

Начиная с 30, на следующем переходе оно упадет до 29 и так далее. Если он не может найти нужный домен или IP-адрес, он отобразит сообщение, где произошел сбой, чтобы вы знали, в чем проблема.

Есть ли альтернативы команде traceroute?

Да, есть различные альтернативы командам traceroute, такие как команда MTR, команда Dig, Open Visual Traceroute, Nmap.

Команда MTR (Linux и macOS)

мтр домен.com

Команда MTR - это улучшенная команда traceroute, которая может предоставить больше статистики и данных для потерянных пакетов (в процентах).

Команда Dig (Linux и macOS)

dig + trace domain.com

Если вы уже используете команду Dig, вы также можете использовать ее для отслеживания маршрута.

Открыть Visual Traceroute (Linux, macOS и Windows)

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

Nmap (Linux, macOS, Windows, BSD и другие)

nmap –traceroute domain.com

Результаты очень похожи на команду traceroute.

Заключение

Используя недавно собранные данные, вы можете увидеть, есть ли какие-либо проблемы на маршруте (не отвечающий сервер или очень медленный), а затем сосредоточить свое внимание на их устранении. Если вы хотите увидеть еще несколько инструментов, вы можете проверить одну из наших предыдущих статей Инструменты - трассировка DNS, Ping, Traceroute, Nslookup, обратный поиск.

(Посещали 42 889 раз, сегодня 6 посещений)

Понравилась эта статья? Не забудьте поделиться.

Теги: DNS, Инструменты DNS, IP, Сеть, Сетевая диагностика, Сетевые инструменты, Ping, Traceroute, Tracert Последнее изменение: 25 июня 2021 г.

Как устранить неполадки сетевого подключения с помощью ping и traceroute

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

Чтобы получить общее представление об устранении неполадок в сети, сначала прочтите эту статью.
Проверка возможности подключения к сети

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

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

Проверьте доступность хоста с помощью ping-теста

Базовый тест ping - одна из самых простых вещей, которые вы можете сделать для проверки связи между вашим компьютером и удаленным хостом. Этот тест легко запустить из командной строки.

Использование ping-теста в Microsoft Windows

Чтобы использовать программу ping в Microsoft Windows, выполните следующие действия:

  1. Откройте командное окно DOS. Для этого щелкните, щелкните, введите cmd и нажмите Enter.
  2. В командной строке введите следующую команду. Замените example.com доменом, который вы хотите протестировать:
     пинг example.com
     
  3. Интерпретация выходных данных ping:

    • Если удаленный хост активен и настроен для ответа на запросы ping, появляются ответы.Например, следующие выходные данные показывают ответы ping от сервера хостинга A2:
       C: \ Documents and Settings \ user> ping a2s78.a2hosting.com
      
      Проверка связи с a2s78.a2hosting.com [216.119.143.98] с 32 байтами данных:
      
      Ответ от 216.119.143.98: байты = 32 время = 46 мс TTL = 54
      Ответ от 216.119.143.98: байты = 32 время = 45 мс TTL = 54
      Ответ от 216.119.143.98: байты = 32 время = 47 мс TTL = 54
      
      Статистика пинга для 216.119.143.98:
      Пакетов: отправлено = 3, принято = 3, потеряно = 0 (потеря 0%),
      Приблизительное время в оба конца в миллисекундах:
      Минимум = 45 мс, максимум = 47 мс, средний = 46 мс
       
    • В качестве альтернативы, если удаленный хост не работает или не настроен для ответа на запросы ping, вы не увидите никаких ответов.

      Брандмауэры можно настроить на блокировку пакетов от проверки связи. Если удаленный хост не отвечает на запросы ping, возможно, он работает нормально, но игнорирует запросы ping.

Использование ping-теста в Apple Mac OS X и Linux

Чтобы использовать программу ping в Mac OS X и Linux, выполните следующие действия:

  1. Открыть окно терминала. Порядок действий зависит от вашей операционной системы и среды рабочего стола:
    • В Mac OS X щелкните Приложения, щелкните Утилиты, а затем щелкните Терминал.
    • В Linux откройте окно терминала.
  2. В командной строке введите следующую команду. Замените example.com доменом, который вы хотите протестировать:

     ping example.com
     
  3. Нажмите Ctrl + C, чтобы остановить эхо-запрос после выполнения нескольких тестов, а затем интерпретируйте вывод:

    • Если удаленный хост активен и настроен для ответа на эхо-запросы, появляются ответы. Например, следующие выходные данные показывают ответы ping от сервера хостинга A2:
       [адрес электронной почты защищен]: ~ $ ping a2s78.a2hosting.com
      PING a2s78.a2hosting.com (216.119.143.98) 56 (84) байт данных.
      64 байта с a2s78.a2hosting.com (216.119.143.98): icmp_req = 1 ttl = 54 time = 44,4 мс
      64 байта с a2s78.a2hosting.com (216.119.143.98): icmp_req = 2 ttl = 54 time = 43,8 мс
      64 байта с a2s78.a2hosting.com (216.119.143.98): icmp_req = 3 ttl = 54 time = 44,7 мс
       
    • С другой стороны, если удаленный хост не работает или не настроен для ответа на запросы ping, вы не увидите никаких ответов.

      Брандмауэры можно настроить на блокировку пакетов от проверки связи.Если удаленный хост не отвечает на запросы ping, возможно, он работает нормально, но игнорирует запросы ping.

Тестирование пути к удаленному хосту с помощью traceroute

Программа traceroute предоставляет гораздо более подробную информацию о соединении с удаленным хостом, чем ping. Traceroute (или tracert в системах Microsoft Windows) отображает информацию о каждом «прыжке», который проходит пакет от вашего компьютера к удаленному хосту.Часто это хороший способ определить возможные проблемы с подключением к Интернет-провайдеру или узкие места в сети.

Использование tracert в Microsoft Windows

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

  1. Откройте командное окно DOS. Для этого щелкните, щелкните, введите cmd и нажмите Enter.
  2. В командной строке введите следующую команду. Замените example.com доменом, который вы хотите протестировать:
     пример tracert.com 
  3. Интерпретация вывода tracert:

    • Tracert отображает каждый переход, обозначенный числом в левом столбце. Он также отображает домен и IP-адрес на каждом прыжке, а также затраченное время. Например, следующие выходные данные показывают путь к серверу хостинга A2:
       C: \> tracert a2s78.a2hosting.com
      
      Отслеживание маршрута до a2s78.a2hosting.com [216.119.143.98]
      более 30 прыжков:
      
      1 1 мс <1 мс <1 мс Linksys [192.168.0.1]
        [Строки для краткости опущены] 
      8 45 мс 38 мс 38 мс pos-1-6-0-0-pe01.350ecermak.il.ibone.comcast.net [68.86.87.130]
      9 67 мс 150 мс 76 мс cr-1.sfld-mi.123.net [66.208.233.62]
       10 44 мс 63 мс 46 мс gateway1.a2hosting.com [216.234.104.254]
       11 72 мс 57 мс 63 мс a2s78.a2hosting.com [216.119.143.98]
      
      Трассировка завершена.
       

      Вы можете проверить время между каждым прыжком, чтобы найти места, где соединение «зависает». В некоторых случаях время ожидания tracert также может истекать, что обозначается звездочкой ( * ).

Использование traceroute в Apple Mac OS X и Linux

Чтобы использовать программу traceroute в Mac OS X и Linux, выполните следующие действия:

  1. Открыть окно терминала. Порядок действий зависит от вашей операционной системы и среды рабочего стола:
    • В Mac OS X щелкните Приложения, щелкните Утилиты, а затем щелкните Терминал.
    • В Linux откройте окно терминала.
  2. В командной строке введите следующую команду.Замените example.com доменом, который вы хотите протестировать:

     traceroute example.com
     
  3. Интерпретация выходных данных traceroute:

    • Traceroute отображает каждый переход, обозначенный числом в левом столбце. Он также отображает домен и IP-адрес на каждом прыжке, а также затраченное время. Например, следующие выходные данные показывают путь к серверу хостинга A2:
       [адрес электронной почты защищен]: ~ $ traceroute a2s78.a2hosting.com
      1 Linksys (192.168.0.1) 0,315 мс 0,452 мс 0,472 мс
        [Строки для краткости опущены] 
      8 pos-1-6-0-0-pe01.350ecermak.il.ibone.comcast.net (68.86.87.130) 39.010 мс 38.054 мс 38.092 мс
      9 cr-1.sfld-mi.123.net (66.208.233.62) 45,056 мс 44,335 мс 44,974 мс
      10 gateway1.a2hosting.com (216.234.104.254) 45,274 мс 46,650 мс 46,089 мс
      11 a2s78.a2hosting.com (216.119.143.98) 44,654 мс 46,028 мс 43,852 мс 

      Вы можете проверить время между каждым прыжком, чтобы найти места, где соединение «зависает».В некоторых случаях время ожидания traceroute также может истекать, что обозначается звездочкой ( * ).

Тестирование сетевого подключения с помощью MTR

MTR («My Traceroute») - это инструмент сетевой диагностики, сочетающий в себе функции программ ping и traceroute, описанных выше. Это хороший способ в реальном времени отслеживать путь сетевых пакетов к месту назначения.

Использование MTR в Microsoft Windows

WinMTR - это версия MTR для компьютеров под управлением Microsoft Windows.Чтобы загрузить WinMTR, с помощью своего веб-браузера перейдите по адресу https://sourceforge.net/projects/winmtr, а затем установите программу на свой компьютер.

После установки WinMTR выполните следующие действия, чтобы запустить тест сети:

  1. Запустите WinMTR.
  2. В текстовом поле Host введите имя домена, который вы хотите протестировать.
  3. Нажмите Пуск. MTR постоянно проверяет возможность подключения к хосту, отображая маршрут пакета и общее количество эхо-запросов.
  4. Чтобы остановить тестирование, нажмите «Стоп».

    Вы можете нажать Копировать текст в буфер обмена, чтобы скопировать вывод MTR. Это позволяет вам вставить его в другое приложение, такое как текстовый редактор или почтовый клиент. Например, команда Guru Crew хостинга A2 может запросить вывод MTR, если вы откроете заявку в службу поддержки о подключении к сети.

Использование MTR в Linux
Возможно,

MTR уже установлен в вашем дистрибутиве Linux. Если он не установлен, вы можете установить его с помощью диспетчера пакетов вашего дистрибутива (например, apt-get или yum ).После установки MTR выполните следующие действия, чтобы запустить тест сети:

  1. В Linux откройте окно терминала.
  2. Чтобы начать проверку сети, введите следующую команду. Замените example.com именем домена, который вы хотите протестировать:
     mtr --curses  example.com  

    Предыдущая команда запускает MTR в текстовом режиме. Если в вашей установке Linux установлена ​​среда рабочего стола, вы можете вместо этого ввести следующую команду, чтобы запустить MTR с графическим интерфейсом:

     mtr --gtk  example.com  
  3. MTR постоянно проверяет возможность подключения к хосту, отображая маршрут пакета и общее количество эхо-запросов:

    • Чтобы изменить режим отображения, введите d.
    • Чтобы перезапустить тест, введите r.
    • Для получения дополнительной помощи введите h.
  4. Чтобы остановить тестирование, введите q.

Расширенное устранение неполадок сети: использование traceroute - База знаний

(Сеть вашего сервера не соответствует своему потенциалу? Закажите у нас сервер с промокодом PACKETS со скидкой 15% на ваш первый счет)

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

Команда traceroute выводит список всех переходов маршрутизатора, которые происходят между вашим сервером и целевым сервером. Проверка этого списка поможет вам проверить правильность маршрутизации по промежуточным сетям. Все операционные системы содержат в той или иной форме утилиту отслеживания пути к маршрутизатору. В дистрибутивах Linux, например, есть tracepath и traceroute6 (для IPv6; эквивалент traceroute -6 ), а в Windows - tracert и PathPing (Windows NT).


Так работает traceroute :

  1. Он отправляет пакет ICMP или UDP со временем жизни (TTL), равным «0», на целевой сервер.
  2. Первый маршрутизатор на пути распознает, что TTL уже превышен, и отбрасывает пакет. В то же время этот маршрутизатор также отправляет сообщение об истечении времени протокола управляющих сообщений Интернета (ICMP) обратно источнику.
  3. traceroute затем записывает IP-адрес маршрутизатора, который отправил сообщение ICMP, поскольку это первый «переход» на пути к конечному месту назначения сервера.
  4. traceroute выполняет то же действие, но на этот раз использует TTL равный «1». Первый переход читает этот пакет, уменьшает его TTL до 0 и пересылает его на переход на пути. Затем второй маршрутизатор выполняет те же действия, что и на шаге 3.
  5. Это продолжается до тех пор, пока не будет достигнут конечный или целевой сервер.

Конечно, вы будете получать ответы только от работающих машин. Проще говоря, если устройство реагирует, когда вы выполняете устранение неполадок, оно вряд ли является источником проблемы с подключением.

Используйте следующий синтаксис для создания отчетов traceroute :

# traceroute [хост_приемника]

Ниже приведен пример вывода traceroute для запроса на google.com. Обратите внимание, что все времена перехода меньше 50 миллисекунд (мс). Это приемлемая скорость возврата.

# traceroute google.com
Адрес разрешения: google.com
traceroute to google.com (74.125.196.138), максимум 30 переходов, 60 байтовых пакетов
1 пример.lan (XXXX) 0,649 мс 0,644 мс 0,674 мс
2 67.23.161.132 (67.23.161.132) 0,212 мс 0,414 мс 0,412 мс
3 67.23.161.142 (67.23.161.142) 6,494 мс 6,510 мс 6,673 мс
4 aix.pr1.atl. google.com (198.32.132.41) 6.593 мс 6.600 мс 6.600 мс
5 72.14.233.54 (72.14.233.54) 6.925 мс 14.785 мс 72.14.233.56 (72.14.233.56) 6.811 мс
6 66.249.94.22 (66.249.94.22) 7.310 мс 66.249.94.24 (66.249.94.24) 7.372 мс 66.249.94.20 (66.249.94.20) 7.345 мс
7 209.85.248.31 (209.85.248.31) 7.357 мс 216.239.46.186 (216.239.46.186) 7.392 мс 209.85.243.26 (209.85.243.26) 7.265 мс
8 * * *
9 yk-in-f138.1e100.net (74.125.196.138) 7.291 мс 7,457 мс 7,264 мс

В таблице ниже определены кодовые символы, которые traceroute может возвращать:

Код возврата

Описание

***

Превышено ожидаемое время отклика в 5 секунд.Задержка могла быть вызвана одной из следующих причин:

  • Маршрутизатор на пути не отправляет обратно сообщения ICMP об истечении времени.
  • Маршрутизатор или брандмауэр на пути блокирует сообщения ICMP об истечении времени.
  • Целевой IP-адрес не отвечает.

! H,! N или! P

Хост, сеть или протокол недоступны.

! X или! A

Установленный администратором параметр блокирует, что означает, что мешает либо список контроля доступа маршрутизатора (ACL), либо брандмауэр.

! S

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

Выполнение двунаправленной трассировки

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


Прослеживание через зеркало

Многие провайдеры Интернет-услуг (ISP) предоставляют средства для трассировки с выделенных серверов, называемых очками. Поскольку эти очки находятся в разных местах, вы можете отследить, связана ли проблема с подключением, с которой вы столкнулись, с вашим веб-сервером или с используемым интернет-провайдером.

Вы можете выполнить быстрый поиск в Интернете и запросить термин «Интернет-зеркало», чтобы получить длинный список альтернатив. Вы также можете перейти на сайт traceroute.org, на котором уже есть список для просмотра по странам.

Превышение времени ложной тревоги

Если traceroute не получает ответа в течение 5-секундного интервала ожидания, рядом с этим переходом появляются три звездочки (см. Таблицу выше):

# traceroute arin.com

Адрес для разрешений: arin.com
traceroute на arin.com (192.149.252.124), максимум 30 переходов, 60 байтовых пакетов

1 208.69.XX (208.69.XX) 0,485 мс 0,467 мс 0,497 мс
2 67.23.161.132 (67.23.161.132) 0,308 мс 0,324 мс 0,466 мс
3 67.23.161.142 (67.23.161.142) 6,474 мс 6,524 мс 6,688 мс
4 xe-9-1-3.edge5.Atlanta2.Level3.net (4.71.254.77) 6,590 мс 6,612 мс 6,613 мс
5 ae -4-90.edge2.Washington4.Level3.net (4.69.149.208) 19.102 мс ae-1-60.edge2.Washington4.Level3.net (4.69.149.16) 19.013 мс ae-3-80.edge2.Washin gton4.Level3.net (4.69.149.144) 19.252 мс
6 ae-3-80.edge2.Washington4.Level3.net (4.69.149.144) 19.040 мс ae-4 -90.edge2.Washington4.Level3.net (4.69.149.208) 19,033 мс 19,219 мс
7 COX-COMMUNI.edge2.Washington4.Level3.net (4.53.114.34) 83,252 мс 83,047 мс COX-COMMUNI.edge2.Washington4.Level3 .net (4.53.114.58) 35,844 мс
8 mrfddsrj01-ae0.0.rd.dc.cox.net (68.1.1.5) 21,366 мс 21,369 мс 21,654 мс
9 * * *
10 * * *
11 wsip-98 -172-152-14.dc.dc.cox.net (98.172.152.14) 77.031 мс 23.110 мс 23.114 мс
12 * * *
13 * * *
14 * * *
15 * * *
16 * * *
17 * * *
18 * * *
19 * * *
20 * * *
21 * * *
22 * ​​* *
23 * * *
24 * * *
25 * * *
26 * * *
27 * * *
28 * * *
29 * * *
30 * * *

Обратите внимание, что есть устройства, которые предотвращают получение пакетов traceroute , но разрешают пакеты ICMP. Чтобы обойти это, добавьте флаг -I в синтаксис traceroute , чтобы вместо этого использовались пакеты ICMP.См. Изменение ниже после использования флага -I :

# traceroute -I arin.com
traceroute to arin.com (192.149.252.125), максимум 30 переходов, 60 байтовых пакетов
1 208.69.XX (208.69.XX) 0,504 мс 0,508 мс 0,556 мс
2 67.23.161.132 (67.23 .161.132) 0,290 мс 0,315 мс 0,348 мс
3 67.23.161.142 (67.23.161.142) 6,595 мс 6,603 мс 6,772 мс
4 xe-9-1-3.edge5.Atlanta2.Level3.net (4.71.254.77) 7,612 мс 7,617 мс 7,618 мс
5 ae-1-60.edge2.Washington4.Level3.net (4.69.149.16)  19.107 ms  19.111 ms  19.111 ms
 6  ae-1-60.edge2.Washington4.Level3.net (4.69.149.16)  19.109 ms  19.034 ms  19.188 ms
 7  COX-COMMUNI.edge2.Washington4.Level3.net (4.53.114.34)  60.466 ms  69.478 ms  69.467 ms
 8  mrfddsrj01-ae0.0.rd.dc.cox.net (68.1.1.5)  63.591 ms  57.189 ms  57.176 ms
 9  * * *
10  * * *
11  wsip-98-172-152-14.dc.dc.cox.net (98.172.152.14)  88.691 ms  88.191 ms  88.179 ms
12  host-252-131.arin.net (192.149.252.131) 86,348 мс 86,030 мс 86,018 мс
13 www.arin.net (192.149.252.125) 87,442 мс 86,854 мс 53,690 мс


Медленный интернет ложное срабатывание

Вывод tracert ниже, кажется, показывает, что веб-сайт с IP 80.40.X.X загружается медленно из-за перегрузки на переходах 6 и 7, где время отклика превышает 200 мс:


C: \> tracert 80.40.X.X

1 1 мс 2 мс 1 мс 66.134.200.97

2 43 мс 15 мс 44 мс 172.31.255.253

3    15 ms    16 ms     8 ms  192.168.21.65

4    26 ms    13 ms    16 ms  64.200.150.193

5    38 ms    12 ms    14 ms  64.200.151.229

6   239 ms   255 ms   253 ms  64.200.149.14

7   254 ms   252 ms   252 ms  64.200.150.110

8    24 ms    20 ms    20 ms  192.174.250.34

9    91 ms    89 ms    60 ms  192.174.47.6

10   17 ms    20 ms    20 ms  80.40.96.12

11   30 ms    16 ms    23 ms  80.40.X.X

Трассировка завершена.

С: \>

Это не прямое указание на перегрузку, задержку или потерю пакетов. Если эти проблемы действительно возникают, то все остальные прыжки после 7 также должны были быть проблемными. Результат трассировки выше фактически говорит о том, что устройства на переходах 6 и 7 просто медленно отвечали сообщениями ICMP о превышении TTL. Помните, что многие устройства веб-маршрутизации отдают очень низкий приоритет пакетам, связанным со служебными программами трассировки, поэтому они могут предоставить большую полосу пропускания для другого, более прибыльного трафика.


Тайм-аут запроса до достижения целевого сервера

Если время трассировки истекает до достижения целевого сервера, возможные причины могут быть одним из следующих сценариев:

  • У сервера плохой шлюз по умолчанию.
  • На сервере запущен брандмауэр, который блокирует traceroute .
  • Сервер либо выключен, либо отключен от сети, либо имеет неправильно настроенный контроллер сетевого интерфейса (NIC).

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

C: \> tracert 82.40.X.X

Трассировка маршрута до 82.40.X.X максимум на 30 переходах

1 33 мс 49 мс 28 мс 192.168.1.1

2 33 мс 49 мс 28 мс 65.C

С: \>

Пример устранения неполадок

Пинг с на 162.219.X.X дал сообщение о тайм-ауте TTL. Обычно это событие происходит только в том случае, если существует петля маршрутизации, в которой пакет переходит между двумя маршрутизаторами на пути к целевому серверу. Каждый отскок приводит к уменьшению TTL на счет «1» до тех пор, пока он не достигнет «0», после чего время запроса ping истекает.

Упомянутая петля маршрутизации была подтверждена, когда traceroute был выполнен, и было замечено, что пакет перескакивает между маршрутизаторами 12.34.56.78 и 12.34.56.79:

C: \> ping 162.219.X.X

Пинг 162.219.X.X с 32 байтами данных:
Ответ от 208.69.Y.Y: TTL истек при передаче.
Ответ от 208.69.Y.Y: TTL истек при передаче.
Ответ от 208.69.Y.Y: TTL истек при передаче.
Ответ от 208.69.Y.Y: TTL истек при передаче.

Статистика Ping для 162.219.X.X:
Пакеты: отправлено = 4, получено = 4, потеряно = 0 (потеря 0%),

C: \> tracert 162.219.X.X

Трассировка маршрута до моего сервера.example.net [162.219.X.X]
более 30 переходов:

1 <1 мс <1 мс <1 мс 192.168.1.1
2 60 мс 70 мс 60 мс router-2.example.net [12.34.56.79]
3 70 мс 71 мс 70 мс router-1.example.net [ 12.34.56.78]
4 60 мс 70 мс 60 мс router-2.example.net [12.34.56.79]
5 70 мс 70 мс 70 мс router-1.example.net [12.34.56.78]
6 60 мс 70 мс 61 мс router-2.example.net [12.34.56.79]
7 70 мс 70 мс 70 мс router-1.example.net [12.34.56.78]
8 60 мс 70 мс 60 мс router-2.example.net [12.34.56.79]
9 70 мс 70 мс 70 мс router-1.example.net [12.34.56.78]
. ..
...
...
Трассировка завершена.
С: \>

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


Причины сбоя traceroutes

Существует несколько возможных причин, по которым traceroute не может достичь целевого сервера:

  • Пакеты traceroute блокируются или отклоняются маршрутизатором на пути. Обычно блокировку вызывает маршрутизатор сразу после последнего видимого перехода. Проверьте таблицу маршрутизации и состояние этого устройства.
  • Целевой сервер не существует в сети, что означает, что он отключен или выключен.Обратите внимание, что сообщения ! H или ! N могут появиться.
  • Сеть, в которой должен находиться целевой хост, не существует в таблице маршрутизации одного из маршрутизаторов на пути. Обратите внимание, что сообщения ! H или ! N могут появиться.
  • Для целевого сервера используется неверный IP-адрес.
  • Существует петля маршрутизации, при которой пакеты передаются между двумя маршрутизаторами и никогда не достигают целевого пункта назначения.
  • Пакеты не имеют правильного пути возврата к вашему серверу.Маршрутизатор сразу после последнего видимого перехода, на котором изменяется маршрутизация. В этом случае выполните следующие действия:
    • Войдите в последний видимый маршрутизатор.
    • Посмотрите таблицу маршрутизации, чтобы узнать, где должен быть следующий переход.
    • Войдите в систему на этом маршрутизаторе следующего перехода.
    • Выполните traceroute от этого маршрутизатора до целевого сервера.
      • Если трассировка завершена - маршрутизация на целевой сервер работает нормально.Вернитесь к исходному серверу, и traceroute , вероятно, выйдет из строя на неисправном маршрутизаторе на обратном пути.
      • Если трассировка не удалась - проверьте таблицу маршрутизации и проверьте другое состояние всех переходов между этим маршрутизатором и целевым пунктом назначения.

По сути, если ничто не блокирует ваши пакеты traceroute , то последний видимый маршрутизатор неполной трассировки является либо последним исправным маршрутизатором на пути, либо последним маршрутизатором с допустимым обратным путем к серверу, выдавшему Трассаут .

Команда traceroute - очень удобный инструмент при устранении проблем с сетевым подключением. Понимание этого важно для каждого сетевого администратора.

Что такое команды Traceroute, Ping, Telnet и Nslookup? - Хостинг


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

Когда вы запускаете команду traceroute, она отправляет пакет (с использованием протокола управляющих сообщений Интернета или ICMP) со значением ограничения по времени (известным как «время жизни» - TTL). Первый пакет имеет TTL 1, второй пакет имеет TTL 2 и т. Д.Увеличивая таким образом TTL, он повторно отправляет пакет, чтобы вы могли достичь первого, второго и других маршрутизаторов на пути к месту назначения. Когда маршрутизатор получает пакет, он отправляет сообщение Time Exceeded, которое дает возможность определить время, необходимое для перехода к маршрутизатору. Каждый раз, когда пакет передается новому маршрутизатору, TTL уменьшается на 1. Когда он достигает 0, пакет отбрасывается, и маршрутизатор возвращает сообщение об ошибке.

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

Как использовать traceroute
Выполните следующие действия, чтобы запустить команду tracert:

1. Нажмите кнопку Start > щелкните на опции Run .

2. В командной строке введите cmd и нажмите Введите .

3. Ввод:

Вам необходимо использовать доменное имя, имя сервера или его IP-адрес вместо ******* .

4. Нажмите Введите .

Чтобы запустить traceroute, выполните следующие действия:

1. На жестком диске откройте папку Applications и щелкните, чтобы открыть папку Utilities .

2. Дважды щелкните Терминал .

3. Введите:

 traceroute -I -e ******* 

Вам необходимо использовать доменное имя, имя сервера или его IP-адрес вместо ******* .

4. Нажмите Введите .

Чтобы запустить команду traceroute на iPhone, необходимо настроить специальное приложение, например iNetTools - Ping, DNS, Port Scan.
После загрузки перейдите в меню Trace Route :
Вставьте свое доменное имя, имя сервера или его IP-адрес в поле ввода и нажмите Start .Результат будет показан в окне Result :
Traceroute можно проверить на Android в приложении Network Utilities.
После установки щелкните значок меню с тремя горизонтальными линиями в левом верхнем углу, чтобы просмотреть список утилит, предоставляемых приложением:

Перейдите в меню Traceroute и вставьте имя домена, имя сервера или сервер IP-адрес и выберите Trace , чтобы получить вывод:


Как читать traceroute


Вот наиболее распространенные примеры выходных данных traceroute, которые могут помочь в исследовании проблемы:

Как видим, traceroute на nctest.info (162.213.255.51) означает, что мы пытаемся достичь домена nctest.info , который разрешается в IP-адрес 162.213.255.51 .


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


Если ваш веб-сайт работает медленно, а вы получаете *** Время ожидания запроса истекло и с самого начала большая задержка, это означает, что соединение с сервером нестабильно.
Если вы видите такую ​​трассировку, это означает общее плохое качество соединения, и вы можете попробовать подключиться к cPanel / веб-сайту, используя другого поставщика услуг Интернета / другое соединение.

Описание ошибок
Невозможно разрешить имя целевой системы domain.com Домен не зарегистрирован или не существует.
Неизвестный хост domain.com

Тайм-аут

Трассировка маршрута до domain.com [64.13.192.208]

максимум из 30 переходов:

1 <1 мс <1 мс <1 мс 72.10.62.1

2 <1 мс <1 мс <1 мс 10.101.248.1

3 * * * Время ожидания запроса

4 * * * Время ожидания запроса

5 * * * Время ожидания запроса

6 * * * Время ожидания запроса
Проблема с сетью / брандмауэром, которая не позволяет вам связаться с вашим сервером, или ваш локальный провайдер может прервать трафик ICMP.
A или! X

Запрещено административно (например, список доступа).

Сетевой администратор заблокировал traceroute на этом маршрутизаторе.
Q Прекращение работы источника (место назначения слишком занято).
I Тест, прерванный пользователем.
U Порт недоступен.
H Хост недоступен. Маршрутизатор не имеет маршрута к целевой системе.
N Сеть недоступна.
P Протокол недоступен.
T Тайм-аут.
? Неизвестный тип пакета.
! S Ошибка исходного маршрута. Вы пробовали использовать маршрутизацию от источника, но маршрутизатор настроен на блокировку пакетов, маршрутизируемых от источника.
! F Требуется фрагментация. Это указывает на неправильную конфигурацию маршрутизатора.

Ping
Команда ping используется для определения способности компьютера пользователя связаться с целевым компьютером.

Основная цель использования этой команды - проверить, может ли компьютер подключаться по сети к другому компьютеру или сетевому устройству. Это также помогает узнать IP-адрес по имени хоста:


1. Нажмите кнопку Пуск > щелкните параметр «Выполнить ».

2. В командной строке введите cmd и нажмите Введите .

3. После этого введите одну из следующих команд и нажмите Введите :

 ping domain.tld 

ping IP_address

4. Ping продолжается, пока вы его не остановите. Нажмите Ctrl + C , чтобы завершить команду.

1. На жестком диске откройте папку Applications и щелкните, чтобы открыть папку Utilities .

2. Дважды щелкните Терминал .

3. После этого введите одну из следующих команд и нажмите Введите :

 ping domain.tld 

ping IP_address


4. Подождите некоторое время, а затем остановите его.Нажмите Ctrl + C, чтобы завершить команду.
Чтобы запустить команду Ping, перейдите в список меню в приложении iNetTools и выберите опцию Ping . Введите доменное имя или IP-адрес сервера и нажмите кнопку Start , чтобы получить результат:
Чтобы получить результат команды Ping на вашем телефоне Android, войдите в приложение Network Utilities и перейдите к Ping пункт меню. Вставьте свои данные, то есть доменное имя, имя сервера или IP-адрес, и нажмите кнопку Ping :

Telnet
Команда telnet используется для подключения и связи с удаленным или локальным хостом через Telnet TCP / Протокол IP.

Вы можете ввести домен или IP-адрес и попробовать подключиться к нему через выбранный порт. Если порт не указан, утилита telnet пытается подключиться через порт по умолчанию 23.

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

Как использовать Telnet
Telnet по умолчанию отключен в Windows. Чтобы включить его, выполните следующие действия:

1. Нажмите кнопку Пуск > Панель управления :

2.Переходим в раздел Программы :

3. Выберите Программы и компоненты > Включение и выключение компонентов Windows :

4. Прокрутите список, доступный в окне Windows Features,> отметьте опцию Telnet Client > нажмите OK > подождите несколько секунд, чтобы изменения вступили в силу:

5. Telnet теперь включен, поэтому мы можем запускать его так же, как и другие команды:

  • Нажмите кнопку Start > щелкните на опции Run .
  • В командной строке введите cmd и нажмите Введите .
  • После этого введите следующее и нажмите Введите :
 telnet [имя домена или IP] [номер порта]
 

например:

telnet namecheap.com 80

Если после этого вы видите пустой вывод, значит, вы успешно подключились. Для выхода нажмите CTRL + C или любую клавишу:

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

Если соединение не было установлено, появится следующая ошибка:

Возможные причины:

  • домен или IP-адрес не существует / недоступен / введен с опечаткой
  • выбранный порт закрыт программным обеспечением безопасности или через сетевые конфигурации на вашем компьютере или на стороне хоста, к которому вы подключаетесь
  • соединение / возникла проблема с сетью

1. Выберите Перейти меню> Приложения :

2.Найдите и нажмите Утилиты :

3. Перейти к Терминал :

4. Теперь можно запустить команду:

 telnet [доменное имя или IP] [номер порта]
 

например:

telnet namecheap.com 80

ПРИМЕЧАНИЕ: команда telnet была удалена в версии High Sierra. Однако в macOS предусмотрена встроенная опция nc (netcat), которую можно использовать вместо telnet:

 nc [имя домена или IP-адрес] [номер порта]
 

Успешное соединение будет выглядеть так:

Чтобы закрыть сеанс, введите , выйдите из и нажмите Введите .

Возможные ошибки

  • В соединении отказано. telnet: невозможно подключиться к удаленному хосту

Эта ошибка означает, что введенный порт закрыт на исходном или целевом хосте или IP-адрес / хост недоступен.

  • nodename или servname предоставлены или неизвестны

Ошибка отображается при вводе

  • незарегистрированный домен
  • домен с опечаткой
  • локальный домен недоступен в вашей локальной сети
  • домен, у которого нет надлежащих серверов имен или набора A-записей.

    Leave a comment