Разное

Windows трассировка: Как сделать трассировку маршрута в Windows 7

Как сделать трассировку маршрута в Windows 7

Сейчас мы расскажем о том, как сделать трассировку маршрута применительно к операционной системе Windows 7. Итак, первоначально нажимаем кнопку «Пуск» и поисковой строке набираем «cmd». В результатах поиска, в верхней строке, отобразится необходимая нам программа,  по ссылке которой необходимо перейти.
Как сделать трассировку маршрута в Windows 7

Теперь необходимо поработать с «черным окном», которое напоминает об операционной системе MS-DOS. Для дальнейшей работы, необходимо знать команду трассировка маршрута. Итак, запоминайте, команда трассировки маршрута: tracert.

В качестве примера, проведем трассировку до сайта Вконтаке. Для этого, необходимо набрать tracert vk.com и нажать на клавишу Enter. После завершения трассировки, можно ознакомиться с ее результатом.

Как сделать трассировку маршрута в Windows 7

Как видно из результатов трассировки, была проблема в переходе между 10 и 11 прыжками, о чем свидетельствует сообщение «Превышен интервал ожидания для запроса». Тем не менее, удалось достигнуть сайта Вконтаке за 12 прыжков. Обратите внимание, что IP-адрес сайта Вконтакте, на момент написания этих строк 87.240.143.246.

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

  1. Сайт временно недоступен;
  2. Проблемы у вашего провайдера.

Если, при трассировке неверно набрано имя сайта, то появится сообщение:

«Не удается разрешить системное имя узла …»

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

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

Вы можете использовать Traceroute. Это широко используемая утилита командной строки, доступная практически во всех операционных системах. Он показывает вам полный маршрут до адреса назначения. Она также показывает время (или задержки) между промежуточными маршрутизаторами. Разве это не здорово?

Что означает вывод?

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

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

Есть ли такая же команда в Linux и других операционных системах?

В Windows, как показано выше, имя команды «tracert», но в Linux, Unix и Apple MAC OS команда «traceroute».

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

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

Он отправляет много пакетов в пункт назначения.

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

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

Как traceroute должен убедиться, что пакет дошёл до определённого хоста?

Для этой цели используется поле TTL. TTL устанавливается как 1 для первого пакета (ов), затем 2 и так далее до достижения цели.

Как оценивается общее время?

Когда пакет отбрасывается, маршрутизатор отправляет сообщение ICMP Time Exceeded обратно в источник. Вот как источник подсчитывает общее время.

Traceroute — широко используемая утилита командной строки в сетях.

Команда Tracert

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

Команда Tracert.Команда Tracert.

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

Назначение и применение Tracert на практике

Tracert – не просто некая абстрактная команда, которую понимает командная строка, а полноценная программа. Точнее, служебное консольное (не имеющее оконного интерфейса) Windows-приложение, предназначенное для определения пути, по которому направляются сетевые пакеты от одного узла к другому. Имя приложения образовано от «trace route», что означает «трассировка маршрута».

Программа Tracert является собственным компонентом Windows (устанавливается на компьютер вместе с ОС), ее исполняемый файл – TRACERT.exe, постоянно находится в папке %windir%/system32.

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

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

Обратите внимание на сходство этих записей:

Tracert и почтовый трекинг.Tracert и почтовый трекинг.

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

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

Как работает трассировка

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

tracert URL_сайта или IP_сайта. Например, tracert Mts.ru, tracert 91.216.147.50

Ответом на нее будет примерно следующее:

Трассировка маршрута к сайту mts.Трассировка маршрута к сайту mts.

Ниже я поясню, что означают эти числа и записи, а сначала, чтобы было понятно, рассмотрим принцип работы трассировщика.

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

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

Значение TTL второй партии будет равно двум (ответ будет получен от второго узла), третьей – трем и т. д. Отправка с увеличением TTL на 1 будет продолжаться до тех пор, пока данные не получит адресат.

Как читать результат трассировки

Поля вывода Tracert.Поля вывода Tracert.

Вернемся к анализу вывода Tracert. Мой запрос к сайту Yandex.ru совершил 16 прыжков – прошел через 15 «перевалочных пунктов» и шестнадцатым шагом достиг конечной цели. Порядковые номера прыжков отображены в столбце, обведенном красной рамкой. По умолчанию их максимальное число составляет 30.

Второй, третий и четвертый столбцы содержат значения RTT – времени, прошедшего от момента отправки запроса до получения ответа (как вы помните, партия состоит из трех пакетов). Чем оно меньше, тем быстрее осуществляется передача. Если оно больше 4 секунд, интервал ожидания считается превышенным.

Последний столбец – это имена и адреса промежуточных и конечного узлов.

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

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

Параметры Tracert

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

Ключи запуска Tracert.Ключи запуска Tracert.

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

Tracert –w 1000 yandex.ru, что означает: провести трассировку маршрута к yandex.ru с таймаутом ответов в 1000 ms.

Ниже приведен список параметров с их значениями.

-dНе выводить имена сетевых узлов, только IP (сокращает время трассировки).
-hОграничить количество прыжков заданным числом.
-jВ сетях IPv4: свободный выбор маршрута по списку веб-узлов, приведенных после ключа.
-wУстановить таймаут ответов в миллисекундах.
-RТрассировка пути в IPv6.
-SВ IPv6: трассировка от заданного адреса, указанного после команды.
-4Использование только протокола IPv4.
-6Использование только протокола IPv6.

Вот видите, всё оказалось проще, чем казалось. Кстати, в закромах Windows еще немало таких полезных штуковин. О них я тоже обязательно расскажу как-нибудь в следующий раз. Надеюсь, будет полезно.

команда трассировки в командной строке CMD в Windows

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

Назначение команды

«Tracert» – это набор функций в Windows, разрешающих выполнять трассировку маршрута до указанного узла сети (локальной и глобальной). Утилита интегрирована в ОС и ее можно запустить через «CMD» или «PowerShell». Исполняемый файл «tracertpt.exe» находится в системном разделе папки System32.

Расположение утилиты в папке WindowsРасположение утилиты в папке Windows

Команда «tracert» достаточно частый гость во время сетевой диагностики и troubleshooting. С ее помощью определяется маршрут, по которому следует пакет до выставленного узла. Преимущество программы: работа с доменными именами, IPv4 и IPv6. Кроме определения маршрута, программа выявляет и демонстрирует время прохождения пакетов до транзитных, промежуточных и конечных узлов.

С помощью команды можно узнать:

  1. На каком уровне заблокировался веб-ресурс: на уровне локальной сети (пакет не доходит до основного маршрутизатора), в сети провайдера (коммутатор L3 не пропускает пакет далее), на уровне промежуточного сервера или конечного (проблема на стороне сервера).
  2. На каком этапе пути пакеты данных сбиваются с маршрута и вместо нужного адресата вас перенаправляет на другой (например, на сайт с рекламой).
  3. Конечный сайт является точно тем, за который себя выдает.

Основные моменты работы и анализ

Чтобы провести трассировку пакетов данных от собственного ПК до сервера, введите его IP-адрес после основной команды.

Пример трассировкиПример трассировки

Как видно на примере, введя команду, а затем IP-адрес, было определено, что это айпишник Яндекс сервера. Также были выявлены транзитные узлы, через которые приходится пройти пакету, чтобы попасть к конечному серверу «yandex.ru».

Примечательно, что команда понимает и доменные имена, выявляя их IP-адреса автоматически.

Результат трассировкиРезультат трассировки

Когда вводится команда для трассировки маршрута, каждая пронумерованная строка называется шагом, прыжком (jump) или хопом.

Джампы, которые наблюдаются при работе утилиты, это роутеры, серверы или коммутаторы L3 провайдера. Важно отметить, что провайдеры могут использовать для подключения множества абонентов коммутаторы L2, которые обрабатывают и регистрирует МАС–адреса поступающих фреймов, осуществляют физическую адресацию и управляют потоком данных.

Таких коммутаторов в инфраструктуре сети провайдера могут быть десятки. Их не регистрирует «ТрасеРТ» из-за того, что L2 коммутаторы не используют IP-адреса. Пакет не задерживается на них и не фиксирует эти устройства, воспринимая их не более чем обычный кабель витой пары или оптоволокна.

СОВЕТ! Буква L обозначает уровень, на котором работает коммутирующее устройство – советую почитать про уровни модели OSI.

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

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

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

Более подробно про механизм трассировки читаем тут.

Оправляемые пакеты

Диагностика сети происходит благодаря посылаемым пакетам. Утилита «Tracet» в Windows работает с протоколом ICMP. Еще, есть команда traceroute – она входит в дистрибутивы Linux и присутствует в качестве функций однотипных приложений, например, Linux Mint. Последняя использует UDP-протокол для посылания по узлам сети.

Также, наличие перл-библиотеки, graphviz и подтянутого скрипта разрешает после выполнения основного программного запроса вывести узлы трассировки в графическую tracemap.

При этом файл сохранится в «tracemap.png» и будет похож на карту, представленную ниже.

Карта трассировкиКарта трассировки

ICMP-сообщение запаковывается в IP-пакет перед самой отправкой. У такого сообщения есть собственное время жизни (TTL – time to live). При каждой отправке пакета TTL увеличивается на 1. Первый отправленный в сети пакет равен 1. Команда в качестве дефолтных настроек посылает 3 пакета с одинаковым TTL чтобы в качестве ответа от узла были получены также 3 пакета.

Дефолтное значение TTL, используемое трассировкой равно 30. Однако, IPv4 протокол способен на максимальный TTL в 255 единиц. Опытным путем было определено, что TTL в районе 30 шагов будет достаточно, чтобы добраться до конечных узлов определяемых веб-ресурсов.

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

Дополнительные параметры командыДополнительные параметры команды

Чтобы полноценно закрепить материал и понять – как работает трасерт, и какими значениями есть возможность оперировать, воспользуйтесь специальными ключами. Запустите .exe-файл «tracetcp» или программу через командную строку и введите tracert /? Для вывода всех ключей и их значений на экран.

Вот основные:

КлючНазначение
-dВ 4 столбце выводит только IP-адреса (ускорение трассировки)
-hВыставление количества прыжков ограничением (макс TTL – 255, по умолчанию – 30)
-wВыставление таймаута ответов в мс
-jМаршрут выбирается по представленному после ключа списку веб-узлов (доступно в IPv4)
-RПровести трассировку пути по IPv6
-SНачало трассировки с того узла, что задан после ключа
-4Прыжки только по протоколам IPv4
-6Прыжки только по протоколам IPv6

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 | Microsoft Docs

  • Чтение занимает 3 мин

В этой статье

Область применения: Windows Server (половина ежегодного канала), Windows Server 2019, Windows Server 2016, Windows Server 2012 R2, Windows Server 2012Applies to: Windows Server (Semi-Annual Channel), Windows Server 2019, Windows Server 2016, Windows Server 2012 R2, Windows Server 2012

Определяет путь, полученный к назначению путем отправки эхо-запроса протокола ICMP или ICMPv6-сообщений в назначение с добавочным увеличением срока жизни (TTL) значений полей.Determines the path taken to a destination by sending Internet Control Message Protocol (ICMP) echo Request or ICMPv6 messages to the destination with incrementally increasing time to Live (TTL) field values. Отображаемый путь — это список интерфейсов Ближнего маршрутизатора маршрутизаторов в пути между исходным узлом и назначением.The path displayed is the list of near/side router interfaces of the routers in the path between a source host and a destination. Интерфейс NEAR-Side — это интерфейс маршрутизатора, ближайший к отправляющему узлу в пути.The near/side interface is the interface of the router that is closest to the sending host in the path. При использовании без параметров tracert выводит справку.Used without parameters, tracert displays help.

СинтаксисSyntax

tracert [/d] [/h <MaximumHops>] [/j <Hostlist>] [/w <timeout>] [/R] [/S <Srcaddr>] [/4][/6] <TargetName>
ПараметрыParameters
ПараметрParameterОписаниеDescription
/d/dПредотвращает попытки средства tracert разрешить IP-адреса промежуточных маршрутизаторов к их именам.Prevents tracert from attempting to resolve the IP addresses of intermediate routers to their names. Это может ускорить отображение результатов tracert .This can speed up the display of tracert results.
/h<MaximumHops>/h <MaximumHops>Указывает максимальное число прыжков в пути для поиска целевого объекта (назначение).Specifies the maximum number of hops in the path to search for the target (destination). Значение по умолчанию — 30 прыжков.The default is 30 hops.
/j<Hostlist>/j <Hostlist>Указывает, что сообщения эхо-запроса используют параметр свободного исходного маршрута в заголовке IP с набором промежуточных назначений, указанных в hostlist.Specifies that echo Request messages use the Loose Source Route option in the IP header with the set of intermediate destinations specified in Hostlist. При свободной маршрутизации последовательные промежуточные назначения могут быть разделены одним или несколькими маршрутизаторами.With loose source routing, successive intermediate destinations can be separated by one or multiple routers. Максимальное число адресов или имен в списке узлов равно 9.The maximum number of addresses or names in the host list is 9. Hostlist — это серия IP-адресов (в точечно-десятичной нотации), разделенных пробелами.The Hostlist is a series of IP addresses (in dotted decimal notation) separated by spaces. Используйте этот параметр только при трассировке IPv4-адресов.Use this parameter only when tracing IPv4 addresses.
/w<timeout>/w <timeout>Указывает время в миллисекундах, в течение которого должно ожидаться получение сообщения о превышении времени ICMP или эхо-ответа, соответствующего заданному сообщению запроса эха.Specifies the amount of time in milliseconds to wait for the ICMP time Exceeded or echo Reply message corresponding to a given echo Request message to be received. Если оно не получено в течение времени ожидания, отображается звездочка (*).If not received within the time-out, an asterisk (*) is displayed. Время ожидания по умолчанию — 4000 (4 секунды).The default time-out is 4000 (4 seconds).
/R/RУказывает, что заголовок расширения маршрутизации IPv6 используется для отправки сообщения эхо-запроса на локальный узел с использованием назначения в качестве промежуточного назначения и проверки обратного маршрута.Specifies that the IPv6 Routing extension header be used to send an echo Request message to the local host, using the destination as an intermediate destination and testing the reverse route.
Ключ<Srcaddr>/S <Srcaddr>Указывает исходный адрес, используемый в сообщениях эхо-запроса.Specifies the source address to use in the echo Request messages. Используйте этот параметр только при трассировке IPv6-адресов.Use this parameter only when tracing IPv6 addresses.
/4/4Указывает, что для этой трассировки tracert.exe может использовать только IPv4.Specifies that tracert.exe can use only IPv4 for this trace.
/6/6Указывает, что для этой трассировки tracert.exe может использовать только IPv6.Specifies that tracert.exe can use only IPv6 for this trace.
<TargetName>Указывает назначение, определенное IP-адресом или именем узла.Specifies the destination, identified either by IP address or host name.
/?/?Отображение справки в командной строке.Displays help at the command prompt.

RemarksRemarks

  • Это средство диагностики определяет путь, полученный к назначению, отправляя сообщения эхо-запросов ICMP с различными значениями срока жизни (TTL) назначения.This diagnostic tool determines the path taken to a destination by sending ICMP echo Request messages with varying time to Live (TTL) values to the destination. Каждый маршрутизатор по пути должен уменьшить срок жизни в пакете IP по меньшей мере до 1 перед его пересылкой.Each router along the path is required to decrement the TTL in an IP packet by at least 1 before forwarding it. Фактически, TTL является максимальным счетчиком ссылок.Effectively, the TTL is a maximum link counter. Если срок жизни пакета достигнет значения 0, то ожидается, что маршрутизатор вернет сообщение об истечении времени ICMP на исходный компьютер.When the TTL on a packet reaches 0, the router is expected to return an ICMP time Exceeded message to the source computer. Трассировка определяет путь путем отправки первого сообщения эхо-запроса с TTL 1 и приращением TTL на 1 для каждой последующей передачи до тех пор, пока целевой объект не ответит или не будет достигнуто максимальное число прыжков.tracert determines the path by sending the first echo Request message with a TTL of 1 and incrementing the TTL by 1 on each subsequent transmission until the target responds or the maximum number of hops is reached. Максимальное число прыжков равно 30 по умолчанию и может быть указано с помощью параметра /h .The maximum number of hops is 30 by default and can be specified using the /h parameter. Путь определяется путем проверки превышения времени ICMP сообщений, возвращенных промежуточными маршрутизаторами, и сообщения эхо-ответа, возвращаемого назначением.The path is determined by examining the ICMP time Exceeded messages returned by intermediate routers and the echo Reply message returned by the destination. Однако некоторые маршрутизаторы не возвращают сообщения о превышении времени для пакетов с истекшими значениями TTL и невидимы для команды tracert.However, some routers do not return time Exceeded messages for packets with expired TTL values and are invisible to the tracert command. В этом случае для этого прыжка отображается строка звездочек (*).In this case, a row of asterisks (*) is displayed for that hop.
  • Для трассировки пути и обеспечения сетевой задержки и потери пакетов для каждого маршрутизатора и ссылки в пути используется команда pathping .To trace a path and provide network latency and packet loss for each router and link in the path, use the pathping command.
  • Эта команда доступна, только если протокол Internet Protocol (TCP/IP) установлен в качестве компонента в свойствах сетевого адаптера в окне Сетевые подключения.This command is available only if the Internet Protocol (TCP/IP) protocol is installed as a component in the properties of a network adapter in Network Connections.

ПримерыExamples

Чтобы выполнить трассировку пути к узлу с именем corp7.microsoft.com, введите:To trace the path to the host named corp7.microsoft.com, type:

tracert corp7.microsoft.com

Чтобы проследить путь к узлу с именем corp7.microsoft.com и предотвратить разрешение каждого IP-адреса в его имя, введите:To trace the path to the host named corp7.microsoft.com and prevent the resolution of each IP address to its name, type:

tracert /d corp7.microsoft.com

Чтобы выполнить трассировку пути к узлу с именем corp7.microsoft.com и использовать свободный исходный маршрут 10.12.0.1/10.29.3.1/10.1.44.1, введите:To trace the path to the host named corp7.microsoft.com and use the loose source route 10.12.0.1/10.29.3.1/10.1.44.1, type:

tracert /j 10.12.0.1 10.29.3.1 10.1.44.1 corp7.microsoft.com

Дополнительные ссылкиAdditional References

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

Весь список команд CMD Windows

Tracing — приложения Win32 | Документы Microsoft

  • 6 минут на чтение

В этой статье

Tracing использует трассировку событий для Windows (ETW). Чтобы воспользоваться инструментами трассировки, доступными в Windows Server 2008 R2, установите Microsoft Windows SDK с сайта загрузок MSDN.

Поддерживаются три уровня трассировки:

  • Verbose (все доступные трассировки).
  • Info (информационные следы).
  • Ошибка (следы ошибки).

Прослеживаются следующие события:

  • Любые ошибки (уровень = ошибка, уровень = информация или уровень = подробный).
  • Вход / выход из API (уровень = информация или уровень = подробный).
  • Начало и завершение любого ввода-вывода (уровень = информация или уровень = подробный)
  • Обмен сообщениями SOAP (уровень = подробный, доступно в Windows 2003 SP1 и более поздних версиях)

Создание и просмотр трассировок WWSAPI

WWSAPI использует события на основе манифеста в Windows Vista и выше.В результате опыт трассировки имеет некоторые отличия в зависимости от версии операционной системы. Создание трассировок трассировки событий Windows можно выполнить с помощью встроенных средств трассировки событий Windows на всех поддерживаемых платформах. Однако для просмотра трассировок ETW в удобном формате требуются специальные инструменты в Windows XP SP2 и Windows 2003 SP1. Существует несколько различных способов сбора и просмотра трассировки событий WWSAPI ETW в зависимости от версии операционной системы.

Включение и просмотр трассировок WWSAPI в средстве просмотра событий (работает в Windows Vista и выше)

  • Запустите eventvwr.msc из командной строки или из меню запуска.
  • Щелкните ссылку просмотра на панели «Действия» справа и включите параметр «Показать журналы аналитики и отладки».
  • Перейдите к поставщикам журналов приложений и служб \ Microsoft \ Windows \ WebServices на левой панели.
  • Щелкните правой кнопкой мыши поставщика трассировки и выберите Включить журнал.
  • Запустите свой сценарий.
  • При обновлении страницы средства просмотра событий вы должны начать видеть записи трассировки WWSAPI.

Включение и просмотр трассировок WWSAPI с помощью Wstrace.скрипт bat (работает на XPSP2 и выше)

Пакетный файл wstrace.bat предоставляет удобный способ:

  • Создать журнал трассировки
  • Удалить журнал трассировки
  • Включение и отключение трассировки
  • Обновить уровень трассировки (информация / ошибка / подробный)
  • Преобразование журналов трассировки в файлы CSV

Пакетный файл использует logman.exe для всех команд, за исключением преобразования журналов в файл CSV, для чего требуется специальный инструмент (wstracedump.Exe).

Использование команд трассировки

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

wstrace.bat создать [информация | ошибка | подробный]

Следующая команда удаляет журнал. Эта команда требует повышенных привилегий.

wstrace.bat удалить

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

wstrace.летучая мышь на

Уровень трассировки (информация, ошибка или подробный) можно изменить следующим образом:

Обновление wstrace.bat [информация | ошибка | подробный]

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

дамп wstrace.bat> temp.csv

События будут выгружаться в файл CSV, пока не будет нажата Ctrl-C или трассировка не будет отключена.

Формат файла трассировки

Файлы CSV, созданные wstrace.bat, представляют собой простые текстовые файлы с переменными, разделенными запятыми.Эти файлы можно открывать в Excel, Блокноте и т. Д.

Столбцы файла следующие:

  • TimeStamp — отметка времени, когда событие было записано
  • ProcessID — ULONG ID процесса, записывающего событие
  • ThreadID — ULONG ID потока, записывающего событие
  • Событие — Перечислимое значение типа события может быть («api enter» | «api pending» | «api ExitSyncSuccess» | «api ExitSyncFailure» | «api ExitAsyncSuccess» | «api ExitAsyncFailure» | «io start» | «io completed «|» io failed «|» error «|» начало полученного сообщения «|» полученное сообщение «|» остановка полученного сообщения «|» начало отправки сообщения «|» отправка сообщения «|» остановка отправки сообщения «)
  • Операция — Имя вызываемой операции.Обычно это соответствует вызываемому API.
  • Ошибка
  • — дополнительный номер ошибки HRESULT
  • Info — Дополнительная информация о событии

Включение трассировки ETW для WWSAPI

logman start wstrace -bs 64 -ft 1 -rt -p Microsoft-Windows-WebServices [флаги [уровень]] [-o] -ets

, чтобы создать и запустить сеанс трассировки трассировки событий Windows. Logman.exe — это встроенный инструмент ETW, доступный на всех поддерживаемых платформах. Обратите внимание, что вам необходимо использовать Microsoft_Windows_WebServices в качестве имени поставщика на XPSP2 и W2K3.Вы можете запустить поставщиков запросов logman, чтобы просмотреть список зарегистрированных поставщиков. Поставщик Microsoft-Windows-WebServices (или Microsoft_Windows_WebServices) должен быть указан в списке, если он не зарегистрирован. Провайдер обычно регистрируется во время настройки. Однако его также можно зарегистрировать вручную, запустив wevtutil.exe im (в Windows Vista и более поздних версиях) или mofcomp.exe (в XPSP2 и W2K3).

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

  • 0x1 — трассировка входа / выхода API.
  • 0x2 — Следы ошибок.
  • 0x4 — трассировки ввода-вывода.
  • 0x8 — трассировка сообщений SOAP.
  • 0x10 — Двоичные трассировки сообщений.
Уровень

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

  • 0x1 — Фатальные следы.
  • 0x2 — Следы ошибок.
  • 0x3 — Предупреждающие следы.
  • 0x4 — Информационные следы.
  • 0x5 — подробные трассировки.

EtlLogFileName — это путь к создаваемому файлу журнала событий ETW (используйте расширение .etl). Если он не указан, ETW выберет случайное имя, которое можно будет запросить позже. Этот файл не должен находиться в каталоге профиля пользователя. Файл журнала событий ETW (файл .etl) имеет двоичный формат. Он может использоваться приложениями ETW, но не в удобочитаемом формате. На следующем шаге описывается, как просмотреть его содержимое.

Запустите сценарий

Сбор файла журнала событий ETW.

logman stop wstrace -ets

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

Пример от начала до конца с использованием инструментов ETW:

logman start wstrace -bs 64 -ft 1 -rt -p Microsoft-Windows-WebServices -o mytrace.etl -ets

эхо., запустите свой сценарий ..

logman stop wstrace -ets

tracerpt mytrace.etl -o mytrace.xml

wstrace.htm

echo .. используйте mytrace.xml и wstrace.xsl на открытой странице ..

Wstracedump.exe — это специально разработанный потребительский инструмент ETW, который обрабатывает события в файле трассировки WWSAPI ETW и выдает удобочитаемые выходные данные. Он может производить вывод со всех поддерживаемых платформ. Посмотрите его использование (wstracedump.exe -?) для получения дополнительной информации.

Tracerpt.exe — это инструмент для просмотра содержимого файла журнала событий ETW, доступный на всех поддерживаемых платформах. Его можно использовать для создания файлов дампа CSV, EVTX или XML из файла журнала событий ETW. Однако сгенерированный выходной файл имеет удобочитаемые следы только в Windows Vista и более поздних версиях. Эти инструкции описывают, как сгенерировать файл дампа XML и использовать его вместе с файлом xsl для отображения трассировок в удобном формате (файл xsl очень прост и может быть изменен, если требуются другие форматы).

  • Пробег

    tracerpt -o

    , чтобы создать дамп XML из двоичного файла ETL (по умолчанию tracerpt.exe создает выходной файл в формате XML. Запустите tracerpt -? Чтобы увидеть другие доступные форматы).

  • На этом этапе вы можете увидеть информацию трассировки в файле XML. Кроме того, вы можете открыть файл wstrace.htm и использовать файл дампа xml и файл wstrace.xsl, чтобы просмотреть трассировки в более удобном формате. Обратите внимание, что файлы должны находиться на локальном компьютере, чтобы иметь возможность использовать этот html-файл в IE.

Безопасность

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

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

,

Об отслеживании событий — приложения Win32

  • 4 минуты на чтение

В этой статье

Event Tracing for Windows (ETW) — это эффективное средство трассировки на уровне ядра, которое позволяет записывать события ядра или приложения в файл журнала.Вы можете получать события в режиме реального времени или из файла журнала и использовать их для отладки приложения или определения того, где в приложении возникают проблемы с производительностью.

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

API отслеживания событий разбит на три отдельных компонента:

  • Контроллеры, запускающие и останавливающие сеанс трассировки событий и включающие поставщиков
  • Провайдеры, которые предоставляют события
  • Потребители, потребляющие события

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

Контроллеры

Контроллеры

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

Для получения дополнительной информации см. Управление сеансами отслеживания событий.

Провайдеры

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

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

Для получения дополнительной информации см. Предоставление событий.

Типы провайдеров

Существует четыре основных типа поставщиков: поставщики MOF (классические), поставщики WPP, поставщики на основе манифеста и поставщики TraceLogging. Вам следует использовать поставщика на основе манифеста или поставщика TraceLogging, если вы пишете приложения для Windows Vista или более поздней версии, которым не требуется поддерживать устаревшие системы.

провайдеров MOF (классический):
  • Используйте функции RegisterTraceGuids и TraceEvent для регистрации и записи событий.
  • Используйте классы MOF для определения событий, чтобы потребители знали, как их использовать.
  • Может быть активирован только одним сеансом трассировки за раз.
провайдеров WPP:
  • Используйте функции RegisterTraceGuids и TraceEvent для регистрации и записи событий.
  • Имеют связанные файлы TMF (скомпилированные в двоичный файл .pdb), содержащие информацию о декодировании, полученную в результате сканирования препроцессором инструментов WPP в исходном коде.
  • Может быть активирован только одним сеансом трассировки за раз.
Провайдеры на основе манифестов:
  • Используйте EventRegister и EventWrite для регистрации и записи событий.
  • Используйте манифест для определения событий, чтобы потребители знали, как их потреблять.
  • Может быть активировано до восьми сеансов трассировки одновременно.
Провайдеры TraceLogging:
  • Используйте TraceLoggingRegister и TraceLoggingWrite для регистрации и записи событий.
  • Используйте события с самоописанием, чтобы сами события содержали всю необходимую информацию для их использования.
  • Может быть активировано до восьми сеансов трассировки одновременно.

Все поставщики событий в основном используют семейство API-интерфейсов отслеживания событий (TraceEvent для устаревших технологий и EventWrite / EventWriteEx для более новых). Поставщики событий просто различаются по типам полей, которые они хранят в полезных данных события, и по месту хранения связанной информации о декодировании событий.

Потребители

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

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

Отсутствующие события

Perfmon, System Diagnostics и другие системные инструменты могут сообщать об отсутствующих событиях в журнале событий и указывать на то, что настройки отслеживания событий для Windows (ETW) могут быть неоптимальными.События могут быть потеряны по ряду причин:

  • Общий размер события превышает 64 КБ. Сюда входит заголовок ETW, а также данные или полезная нагрузка. Пользователь не может контролировать эти пропущенные события, поскольку размер события настраивается приложением.

  • Размер буфера ETW меньше общего размера события. Пользователь не может контролировать эти отсутствующие события, поскольку размер события настраивается приложением, регистрирующим события.

  • Для ведения журнала в реальном времени потребитель в реальном времени недостаточно быстро обрабатывает события или отсутствует совсем, а затем файл резервной копии заполняется.Это может произойти, если служба журнала событий остановлена ​​и запущена во время регистрации событий. Пользователь не может контролировать эти пропущенные события.

  • При записи в файл диск работает слишком медленно, чтобы не отставать от скорости записи.

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

,

WPP Software Tracing — драйверы для Windows

  • 3 минуты на чтение

В этой статье

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

Программная трассировка

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

Регистрация сообщений с помощью программной трассировки WPP аналогична использованию служб регистрации событий Windows.Драйвер регистрирует идентификатор сообщения и неформатированные двоичные данные в файле журнала. Впоследствии постпроцессор преобразует информацию в файле журнала в удобочитаемую форму. Однако программная трассировка WPP поддерживает более функциональные и гибкие форматы сообщений, чем те, которые поддерживаются службами регистрации событий. Например, программная трассировка WPP имеет встроенную поддержку IP-адресов, GUID, системных идентификаторов, отметок времени и других полезных типов данных. Кроме того, пользователи могут добавлять пользовательские типы данных, относящиеся к их приложению.

Программная трассировка

WPP поддерживается в Microsoft Windows 2000 и более поздних версиях Windows.

Обзор процесса отслеживания программного обеспечения WPP

Базовый процесс добавления трассировки программного обеспечения WPP к драйверу или приложению включает следующие шаги. Если вы используете один из шаблонов Visual Studio, предоставленных в WDK, для создания драйвера WDF, большая часть работы будет сделана за вас.

  • Определите GUID элемента управления, который однозначно идентифицирует драйвер или приложение как поставщика трассировки.Поставщик указывает этот GUID в своем определении макроса WPP_CONTROL_GUIDS и в связанном контрольном файле, используемом Tracelog или другим контроллером трассировки.

  • Добавьте необходимые директивы препроцессора C, связанные с WPP, и вызовы макросов WPP в исходные файлы поставщика, как описано в разделах «Добавление программной трассировки WPP в драйвер Windows» и в «Справочнике по отслеживанию программного обеспечения WPP».

  • Измените проект Visual Studio, чтобы запустить препроцессор WPP и построить драйвер, как описано в шаге 6 раздела «Добавление программной трассировки WPP в драйвер Windows».Вы можете обратиться к препроцессору WPP для получения дополнительных параметров времени сборки.

  • Установите драйвер или компонент. Запустите сеанс трассировки и запишите сообщения трассировки. Используйте инструменты программной трассировки, такие как TraceView, Tracelog, Tracefmt и Tracepdb, для настройки, запуска и остановки сеансов трассировки, а также для отображения и фильтрации сообщений трассировки. Эти инструменты включены в комплект драйверов Windows (WDK).

В разделе

Примечание Трассировка событий для Windows (ETW) и WPP поддерживает большинство типов драйверов режима ядра и пользовательского режима.Однако ETW и WPP используют типы, недоступные для определенных типов драйверов, например драйверы минипорта. Чтобы определить, поддерживается ли конкретный тип драйвера, добавьте в драйвер базовые макросы WPP, такие как WPP_INIT_TRACING и WPP_CLEANUP. Если код не компилируется из-за того, что используемые типы не определены, ETW и WPP не могут поддерживать тип драйвера.

Дополнительные сведения о трассировке событий Windows см. В разделе «Трассировка событий для Windows».

Примечание. Провайдеры трассировки WPP могут быть включены одновременно только в одном сеансе трассировки.См. Дополнительную информацию в разделе «Провайдеры WPP».

Для получения информации о подпрограммах поддержки библиотеки WMI, которые поддерживают трассировку программного обеспечения WPP, см .:

WmiQueryTraceInformation

WmiTraceMessage

WmiTraceMessageVa

,Инструменты

для отслеживания программного обеспечения — драйверы для Windows

  • 3 минуты на чтение

В этой статье

Пакет драйверов Microsoft Windows (WDK) включает набор приложений и инструментов командной строки для отслеживания программного обеспечения.Эти инструменты предназначены для поддержки трассировки событий для Windows (ETW) и дополняют инструменты трассировки, включенные в Windows.

Инструменты включают контроллеры трассировки, которые настраивают, запускают, обновляют и останавливают сеансы трассировки, а также потребители трассировки, которые получают сообщения трассировки, созданные во время сеансов, и преобразуют двоичные данные в удобочитаемый формат для файлов или отображения.

Инструменты поддерживают множество поставщиков трассировки, включая приложения пользовательского режима и драйверы режима ядра, которые оснащены инструментами для трассировки программного обеспечения с помощью трассировки программного обеспечения WPP или (трассировки событий для Windows (ETW).Для сравнения двух подходов к инструментированию кода см. Раздел Когда использовать программную трассировку WPP и трассировку событий для Windows (ETW).

Инструменты также могут получить доступ к зарезервированным сеансам трассировки, встроенным в Windows, таким как сеанс трассировки Global Logger / сеанс трассировки NT Kernel Logger.

Некоторые из этих инструментов находятся в подкаталоге tools \ < Platform > Windows Driver Kit (WDK), где < Platform > — это x86 или x64.Другие инструменты либо включены в состав Windows, либо находятся в подкаталоге bin \ < Platform > WDK.

Когда следует использовать программную трассировку WPP или API трассировки событий для Windows (ETW)?

Используйте WPP Software Tracing, если вы заинтересованы в основном в сборе данных трассировки для целей разработки и отладки. Используйте трассировку событий для Windows (ETW) для других типов трассировки.

Отслеживание программного обеспечения WPP Проявленный / TraceLogging ETW
Поддерживается в Windows 2000 и новее. Поддерживается в Windows Vista и более поздних версиях.
Трассировка событий для разработки и отладки. В основном ориентирован на внутреннего разработчика. Отслеживание событий для административных, операционных, аналитических и отладочных целей.
Требуются файлы TMF для декодирования событий, которые извлекаются из PDB двоичного файла журнала. Метаданные для декодирования событий содержатся в локальном двоичном коде или в полезных данных события.
Может быть только один активный сеанс на одного поставщика трассировки. События могут быть мультиплексированы для нескольких потребителей.
Строки сообщений не могут быть локализованы. Строки можно локализовать.
Безопасность провайдера ограничена запретом совместного использования управляющих файлов GUID или TMF, необходимых для включения и декодирования событий соответственно. Провайдер может применять списки управления доступом, чтобы ограничить пользователей, которые могут собирать от него события.

Для получения информации об использовании макросов препроцессора программной трассировки (WPP) Windows для добавления программной трассировки к драйверу или приложению см. WPP Software Tracing.

Сведения об использовании API-интерфейса ETW режима ядра для драйверов см. В разделе Трассировка событий для Windows (ETW).

Для получения информации об использовании расширений инструментария управления Windows (WMI) для модели драйверов Windows (WDM) для добавления трассировки программного обеспечения к любому драйверу см. Трассировка событий WMI.

Примечание ETW и WPP поддерживают большинство типов драйверов режима ядра и приложений пользовательского режима. Однако ETW и WPP используют типы, недоступные для определенных типов драйверов, например драйверы минипорта.Чтобы определить, поддерживается ли конкретный тип драйвера, добавьте в драйвер базовые макросы WPP, такие как WPP_INIT_TRACING и WPP_CLEANUP. Если код не компилируется из-за того, что используемые типы не определены, то ETW и WPP не могут поддерживать этот тип драйвера.

Что в этом разделе

Этот раздел начинается с обзора инструментов трассировки программного обеспечения, обсуждает концепции, лежащие в основе этих инструментов, а затем включает документацию по инструментам трассировки программного обеспечения в WDK.

В этот раздел входят:

Обзор средств отслеживания программного обеспечения

Концепции средств трассировки

TraceView

Tracelog

Tracepdb

Tracefmt

Трассировка во время загрузки

Отслеживание программного обеспечения WPP

Часто задаваемые вопросы по отслеживанию программного обеспечения

Трассировка событий для Windows (ETW)

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

Концептуальную информацию о трассировке событий см. В документации Microsoft Windows SDK.

,

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *