Как сделать пинг и трассировку в OC Windows – Beget

Что проверяет команда tracert?

Tracert посылает в точку назначения запросы подобно

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

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

Что следует знать о трассировке маршрутов?

Tracert – команда, которая очень важна при диагностике сетевых проблем. Однако стоит учитывать, что ошибиться, рассматривая вывод команды tracert, достаточно просто. Поэтому не надо использовать трассировку маршрутов как единственное средство поиска неполадок.

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

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

Что такое трассировка. для чего нужна трассировка узлов

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

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

Что следует отправлять провайдеру для диагностики сетевых проблем?

Администратору сервера или провайдеру, как правило, лучше отправить выводы команд tracert (traceroute), ping и отчет утилиты MTR. Можно, конечно, постараться обойтись только последним, но чем больше информации предоставлено, тем легче специалисту найти и устранить проблему.

Что такое трассировка (tracert) на

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

Трассировка (trouce route) – Процедура получения информации о маршрутизаторах (узлах), через которые проходят пакеты к интересующему компьютеру. Позволяет обнаружить ошибки маршрутизации, а также то, к какому первичному провайдеру подключен хостинг-провайдер. Подробнее: http://ru.wikipedia.org/wiki/Traceroute

Зачем нужна трассировка? Иногда тот или иной сайт (как правило, вас волнует ваш сайт) вам недоступен. У этого могут быть разные причины:

  1. Проблемы на сервере (в том числе технические работы)
  2. Проблемы вашего провайдера доступа
  3. Проблемы на канале
  4. Проблемы с браузером
  5. Вас забанили и некоторые другие.

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

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

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

Так же, в качестве аналога обращения к знакомым, можем порекомендовать воспользоваться специализированными сервисами мониторинга доступности сайтов. Например: http://host-tracker.com/

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

Как же сделать трассировку? Нажимаем “Пуск” далее нажимаем “Выполнить”. Там латинскими буквами без кавычек пишем “cmd” и нажимаем “Ок” (либо “Enter”):

  В появившемся командной строке опять же без кавычек пишем “tracert адрес интересующего сайта”. Например, если трассеруем ucoz.ru, пишем “tracert ucoz.ru” и нажимаем ввод (“Enter”).

Что такое трассировка

Далее, полученные данные вы, вероятно, захотите отправить в службу поддержки. Не нужно делать скриншот – их (данные) можно скопировать и передать в виде текста. Для этого, наводим мышью на командную строку, в которой содержатся результаты трассеровки, нажимаем правую кнопку мыши -> “Выделить все”. После чего нажимаем “Enter”. Все, теперь данные в буфере обмена. Их можно вставить в письмо нажав правую кнопку мыши -> “Вставить” (либо CTRL V).

Что такое трассировка

Default


Метод по умолчанию — используется если не указан другой, либо можно указать явно опцией -M default. Это традиционный, древний метод трассировки маршрута.

Пакетами зондирования являются udp датаграммы с так называемым “unlikely” (маловероятным) портом назначения. Первым “unlikely” портом зондирования является 33434 затем для каждого следующего зонда он увеличивается на единицу. Поскольку ожидается, что порт не используется, то хост назначения обычно возвращает конечный ответ “icmp unreach port”. Номер порта можно поменять (об этом ниже).

Данный метод могут выполнять непривилегированные пользователи.

Mtr и mtr-gtk (консольная и графическая версия)

Программа mtr совмещает в себе функциональность программа traceroute и ping в едином инструменте диагностики сети. То есть эта программа показывает маршрут до указанного узла и непрерывно пингует каждые хоп и при этом собирает общую статистику потерь — на основе этих данных можно определить проблемный узел, на котором теряются пакеты.


Пример запуска:

mtr suip.biz

Пример вывода:

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

Также она поддерживает разные форматы вывода для сохранения результатов, например, опция -C, –csv для сохранения результатов в формате CSV (обратите внимание, что на самом в качестве разделителя используется не запятая, а точка с запятой), а также опция -j, –json для сохранения в формате вывода JSON.

С помощью опции -n, –no-dns можно отключить преобразование IP в имена хостов.

Опцией -b, –show-ips можно включить отображение и имён хостов, и IP адресов.


Опцией -y n, –ipinfo n можно настроить вывод дополнительной информации о каждом IP хопа. В качестве n нужно указать цифру, которая означает:

              0   Показывать номер автономной системы (AS) (эквивалент -z)
              1   Показывать префикс IP
              2   Показать код страны на основе AS
              3   Показать RIR (ripencc, arin, ...)
              4   Показать дату выделения IP префикса

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

Опция -z, –aslookup отображает номер Автономной Системы (AS) для каждого хопа.

Опция -f NUM используется для установки номера первого TTL. По умолчанию равно 1.


Опция -m указывать максимальное число хопов (максимальное значение time-to-live) которое будет обрабатываться при трассировке. По умолчанию равно 30.

Опция -U ЧИСЛО устанавливает максимум незнакомых хостов. По умолчанию равно 5. Видимо, после достижения этого значения дальнейшая трассировка будет остановлена.

:/>  Как узнать свой ключ активации Windows 10: ТОП 3 способа

Tcpconn

Начальная реализация tcp метода просто использующего вызов connect(2), который открывает полную tcp сессию. Не рекомендуется для нормального использование, поскольку всегда влияет на приложение прослушивающее порт на хосте назначения.


Для задействования этого метода используйте опцию -M tcpconn.

Tcptraceroute

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

Telnet и nslookup

Также желательно выполнить следующие команды для диагностики – это telnet и nslookup.

Скорее всего, если попробовать выполнить команду telnet, то возникнет следующее сообщение:

"telnet" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.

Давайте установим его. Откроем Пуск -> Панель управления:

Выбираем пункт Программы:

Нажимаем Включение или отключение компонентов Windows:

Ставим галочку напротив Клиент Telnet и нажимаем OK:

Ожидаем загрузки:

Возвращаемся к командной строке и вводим команду:

и нажимаем Enter:

Видим пустую консоль – это означает, что подключение к сайту идет успешно, нажимаем Ctrl C

Tracepath

Программа tracepath схожа с traceroute, но использует только одну технику трассировки: UDP, для которой можно указать свой порт. Из-за выбранной техники, программа не требует повышенных привилегий.


Пример запуска:

tracepath suip.biz

Пример вывода:

 1?: [LOCALHOST]                      pmtu 1500
 1:  _gateway                                              1.247ms 
 1:  _gateway                                              1.031ms 
 2:  10.20.48.1                                            9.097ms 
 3:  10.246.245.241                                       14.034ms 
 4:  10.185.252.194                                       14.379ms 
 5:  10.185.252.29                                        11.530ms asymm  4 
 6:  58-97-121-237.static.asianet.co.th                   13.849ms asymm  5 
 7:  171-102-247-184.static.asianet.co.th                 15.737ms asymm  6 
 8:  171-102-250-1.static.asianet.co.th                   64.185ms asymm  7 
 9:  171-102-254-232.static.asianet.co.th                 14.962ms asymm  8 
10:  171-102-250-156.static.asianet.co.th                 13.509ms asymm  9 
11:  122.155.226.89                                       18.793ms 
12:  61.19.9.66                                           58.829ms 
13:  no reply
14:  87.226.181.87                                       399.972ms asymm 23 
15:  81.177.108.86                                       263.969ms asymm 14 
16:  j37-ae9-3001.marosnet.net                           307.140ms 
17:  suip.biz                                            304.644ms reached
     Resume: pmtu 1500 hops 17 back 17

В первой колонке рядом с номера узла может стоять знак вопроса — он означает, что в присланном ответе отсутствует номер TTL и программа пытается его предположить.


Вместо звёздочек, если IP не узнан, пишется no reply.

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

У tracepath не очень много опций:

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


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

Не печатать имя хоста, а печатать цифровое значение IP.

Печатать и имя хоста и IP адрес в цифровом виде.


Установить начальную длину пакета вместо 65535 для tracepath или 128000 для tracepath6.

Установить максимальное число хопов (или максимум TTL) — то есть количество максимально «простукиваемых» узлов. По умолчанию 30.

Установить начальный порт назначения.

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. Рассмотрим вот такую схему:
Как сделать пинг и трассировку в OC Windows – Beget
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

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

:/>  Настройка эквалайзера realtek hd windows 10

А теперь повесим на интерфейс Router4 фильтр на in (как указано на рисунке):
Как сделать пинг и трассировку в OC Windows – Beget

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.

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

Udplite

Использует для зондов датаграммы udplite (с постоянным портом назначения, по умолчанию 53). Для активации этого метода укажите опцию -M udplite или -UL.


Этот метод не требует повышенных прав.

Опции:

coverage=ЧИСЛО


Устанавливает покрытие отправки udplite на ЧИСЛО.

Аналог в linux

Пользователям

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

Запуск трассировки с помощью ICMP осуществляет команда tracertroute с ключом –I. Стоит обратить внимание, что для выполнения этой операции потребуются права администратора. При стандартных настройках в большинстве дистрибутивов запуск команды tracertroute может быть осуществлен любым пользователем.

Виды трассировки

Имеется несколько видов трассировки. В основном они различаются отправляемым пакетом — это может быть пакет транспортного протокола TCP или UDP, либо протокола межсетевых управляющих сообщений ICMP, либо сырой IP пакет.

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


Это можно проиллюстрировать на следующих двух примерах трассировки до одного и того же хоста:

Выбор интерфейса для трассировки

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

-i ИНТЕРФЕЙС, --interface=ИНТЕРФЕЙС

Запуск команды tracert в windows

Запустить утилиту проверки сетевого маршрута в Windows можно из командной строки. В версиях операционной системы ниже 8, чтобы открыть интерфейс командной строки, достаточно нажать «Пуск-Выполнить» и набрать cmd. В Windows 8 придется обратиться к меню «Все программы» и найти там пункт «Командная строка». В любой версии ОС также можно воспользоваться сочетанием клавиш Win R.

Изменение порта

Поменять порт назначения можно с помощью опции:

-p ПОРТ, --port=ПОРТ


Для UDP трассировки указанный порт будет использовать в качестве базового (номер порта назначения будет увеличиваться для каждого зонда).

Для ICMP трассировки указанное число будет использоваться в качестве начальное значение ICMP последовательности (также увеличенное для каждого зонда).

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


Обычно это не требуется, но также можно указать и порт источника, это делается опцией:

--sport=ПОРТ

Эта опция подразумевает -N 1 -w 5 . Обычно исходные порты (если это примениму к выбранному методу трассировки) выбираются системой.

Как начать трассировку с определённого узла. как уменьшить или увеличить число узлов для трассировки

С помощью опции -f можно указать номер узла, с которого следует начать трассировку. По умолчание значение равно 1.


С помощью опции -m можно указать максимальное число хопов для трассировки, по умолчанию установлено на 30.

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

Каждый IP адрес привязан к Автономной системе (AS). С помощью опции -A вы можете включить запрос номера AS для каждого узла по пути трассировки, например:

sudo traceroute -A -n suip.biz

Пример вывода:

 1  192.168.1.1 [AS198949]  1.102 ms  1.708 ms  2.720 ms
 2  10.20.48.1 [*]  7.121 ms  7.168 ms  11.242 ms
 3  10.246.245.241 [*]  15.368 ms  15.812 ms  15.788 ms
 4  10.185.252.29 [*]  16.243 ms  16.213 ms  16.181 ms
 5  58.97.121.237 [AS38082/AS7470]  16.802 ms  16.776 ms  16.976 ms
 6  171.102.247.244 [AS38082/AS7470]  17.405 ms 171.102.247.114 [AS38082/AS7470]  16.320 ms 171.102.247.74 [AS38082/AS7470]  21.324 ms
 7  171.102.250.1 [AS38082/AS7470]  20.946 ms  20.521 ms  21.542 ms
 8  171.102.254.232 [AS38082/AS7470]  21.896 ms  22.789 ms  23.755 ms
 9  171.102.250.156 [AS38082/AS7470]  23.431 ms  23.036 ms  24.393 ms
10  122.155.224.197 [as4651]  26.448 ms 122.155.226.85 [as4651]  25.531 ms 122.155.226.89 [as4651]  26.770 ms
11  61.19.9.66 [AS4651/AS3549]  76.868 ms  77.298 ms  56.532 ms
12  * * *
13  87.226.181.87 [AS12389]  306.596 ms  306.452 ms 87.226.183.87 [AS12389]  306.332 ms
14  81.177.108.86 [AS12389]  307.373 ms  307.322 ms  307.328 ms
15  94.142.138.40 [AS48666]  307.290 ms  307.268 ms  307.211 ms
16  185.117.153.79 [AS48666]  307.185 ms  307.181 ms  306.512 ms


Как можно видеть, автономная система не определена для локальных IP 10.*.*.* – что вполне логично, так как эти адреса никому не назначены. Что касается адреса 192.168.1.1 и автономной единицы AS198949, то это какая-то ошибка.

:/>  Как скопировать текст из командной строки в Windows 7, 10

Как можно увидеть из вывода предыдущей команды, первые четыре узла имеют локальный IP адреса. Узлы с 5 по 9 принадлежат одной автономной системе AS38082/AS7470. Предпоследние два узла принадлежат одной автономной системе AS12389 и последние два узла также принадлежат одной автономной системе AS48666 — интернет-провайдеру, на котором размещён сайт suip.biz.

Как пользоваться traceroute

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

traceroute IP_или_ДОМЕН

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

Как ускорить трассировку. как отключить обратное преобразование ip в имена хостов при трассировке

Чуть выше описаны принципы работы трассировки — отправка пакетов с постоянно увеличивающимся сроком жизни. На самом деле — все пакеты (с TTL 1, с TTL 2, с TTL 3 и т. д.) можно отправить одновременно. И именно так это и происходит — по умолчанию отправляются 16 пакетов за раз (количество можно изменить опцией -N). Это делается для ускорения трассировки.

Поэтому в действительности трассировка выполняется очень быстро. Те 1-2 секунды, которые как нам кажется определяются узлы сети, на самом деле тратятся на получение имён хостов для IP. С помощью опции -n это можно отключить.

Используя программу time можно замерить время выполнения программы с опцией -n и без неё:

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

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

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

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

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

Команда tracert

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

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

Опции traceroute

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

man traceroute

Принципы работы трассировки

Пересылаемые сетевые пакеты состоят из двух областей: заголовки и данные. В заголовках находится разная информация, например, IP адреса пункта отправки и пункта назначения, порты отправки и назначения, тип пакета, контрольная сумма пакета и прочее. Среди полей заголовка, у IP протокола есть такое поле как time to live (TTL) — время жизни пакета.

Это счётчик с числом, которое уменьшается на единицу каждый раз, когда пакет проходит новый узел. Этот счётчик сделан для того, чтобы проблемный пакет (например, при ошибке, повлекшей закольцованный маршрут) не путешествовал по сети бесконечно. То есть любой пакет пройдя определённое количество узлов в конце-концов достигнет точки назначения или будет отброшен одним из узлов сети, когда закончится «время жизни».

Когда счётчик TTL становится равным нулю, очередной шлюз просто не пересылает этот пакет дальше. Но при этом шлюз на тот IP адрес, откуда пришёл пакет с истёкшим временем жизни, отправляет по протоколу ICMP ответ TIME_EXCEEDED (время жизни кончилось).

Так вот, суть трассировки в том, что отправляется один пакет с временем жизни (TTL) установленным на единицу — первый шлюз уменьшает значение на единицу, смотрит, что счётчик стал равен нулю, никуда не отправляет этот пакет, зато нам отправляет ответ, что пакет «умер».

Мы и так знаем, что пакет умер — из этого ответа нас интересует только IP адрес шлюза, где с пакетом случилось это несчастье. Затем отправляется пакет со счётчиком установленным на 2 — пакет проходит первый шлюз (его IP мы уже знаем), но несчастье (счётчик достигает нуля) с ним случается уже на втором шлюзе — мы получаем ICMP ответ с IP этого шлюза. Затем отправляется следующий пакет и т. д., пока не будут определены все узлы до нужного нам сетевого хоста.

Программы для трассировки

Имеется много разных утилит для трассировки, некоторые из них поддерживают различные методы трассировки. Примеры таких программ:

  • traceroute
  • tracepath
  • mtr и mtr-gtk (соответственно, консольная и графическая версия)
  • lft
  • tcptraceroute

Ещё определять узлы маршрута пакета можно с помощью Nmap (несколькими способами) и даже с помощью ping!

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

Трассировка ipv6


С помощью опций -4 и -6 можно явно указать желаемый протокол.

Например:

Трассировка в windows

В Windows для трассировки сети имеется встроенная команда tracert. У неё практически отсутствуют опции. Для запуска команды достаточно указать имя удалённого хоста:

tracert suip.biz


Если вам недостаточно такой функциональности, то вы можете установить Nmap в Windows.

Трассировка сети в nmap

В Nmap для трассировки есть опция –traceroute, пример трассировки до сайта suip.biz:

sudo nmap --traceroute suip.biz

Если вы не хотите сканировать порты, а хотите просто выполнить трассировку, то добавьте опцию -sn:

sudo nmap --traceroute -sn suip.biz


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

Бывает, что выводимые при трассировке программой nmap данные не являются полными. В этом случае попробуйте дополнительно добавить опцию -PE:

sudo nmap --traceroute -sn -PE suip.biz

Источник.

В Nmap можно установить опции в заголовке пакета IP протокола. Среди этих опций имеется такая, которая сохраняет в заголовке пакета пройденный маршрут. Но у этого варианта есть ряд ограничений:

  • всего 9 слотов
  • некоторые устройства игнорируют эту опцию
  • некоторые устройства вообще не пропускают пакеты с установленной этой опцией


Тем не менее иногда это работает, пример команды:

sudo nmap -sn --ip-options "R" -n --packet-trace suip.biz

Пример вывода:

Утилита mtr

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

Версия утилиты для Windows имеет название WinMTR и распространяется бесплатно.

Пользователю предоставляется возможность работать с графическим интерфейсом, в котором необходимо указать IP-адрес или домен узла назначения, запустить сбор статистики. Как правило, для анализа необходимо отправить минимум 100 пакетов.

Пользователям Linux также придется MTR устанавливать дополнительно из репозиториев. В этих операционных системах обычно используется консольная версия утилиты. Пользователю доступны разнообразные параметры, позволяющие задать количество отправляемых пакетов, запись отчета в файл, таймаут. Также версия для Linux может использовать для тестирования определенные порты или TCP-пакеты.

Звездочки в выводе маршрутов

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

Заключение

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

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

Связанные статьи:

Оставьте комментарий

Adblock
detector