Перейти к основному содержанию

PktMon — анализатор сетевого трафика

Network

PktMon.exe (Packet Monitor, Монитор пакетов) — встроенная утилита в Windows 10 и Windows Server 2019, позволяющая перехватывать и анализировать сетевой трафик, проходящий через компьютер, на котором запущена данная программа.

Наконец-то можно анализировать пакеты без установки дополнительного софта. Утилита может использоваться для записи пакетов, обнаружения пакетов, фильтрации пакетов и подсчета. Этот инструмент особенно полезен в сценариях виртуализации, например в сетях контейнеров и SDN, так как он обеспечивает видимость сетевого стека. Пригодится системными и сетевыми администраторам для анализа и диагностики сети.

Packet Monitor поддерживает формат WireShark (PCAPNG) и Netmon (ETL), может работать с дампами TcpDump.

Расположение утилиты:

C:\Windows\system32\pktmon.exe

Можно запускать в командной строке или PowerShell. Основные команды Packet Monitor:

  • filter — управление фильтрами пакетов.
  • comp — управление зарегистрированными компонентами
  • reset — сброс счетчиков до нуля
  • start — запуск мониторинга пакетов
  • stop — остановка мониторинга
  • format — преобразование файла журнала в текст
  • pcapng — преобразование файла журнала в формат pcapng
  • unload — выгрузка драйвера PktMon

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

pktmon help
pktmon filter add help

Ссылки

tcpdump — анализатор сетевого трафика

Wireshark — анализатор сетевого трафика

netsh trace — анализатор сетевого трафика

https://docs.microsoft.com/ru-ru/windows-server/networking/technologies/pktmon/pktmon-syntax

Возможности PktMon

  • Мониторинг пакетов и подсчет в нескольких расположениях в сетевом стеке
  • Удаленное обнаружение пакетов в нескольких расположениях стека
  • Гибкая фильтрация пакетов среды выполнения
  • Поддержка инкапсуляции
  • Анализ сети на основе синтаксического анализа пакетов TcpDump
  • Анализ метаданных пакетов (OOB)
  • Мониторинг пакетов на экране в режиме реального времени
  • Ведение журнала в памяти большого объема
  • Поддержка формата Wireshark и сетевой монитор

Ограничения

  • Пока только Ethernet, нет поддержки беспроводного трафика.
  • Не видит пакеты из брандмауэра Windows.

Немного теории

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

network

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

network

Монитор пакетов перехватывает пакеты в нескольких расположениях в сетевом стеке, определяя маршрут пакета. Если пакет был удален поддерживаемым компонентом в сетевом стеке, то монитор пакетов сообщит о том, что пакет удаляется. Это позволяет пользователям отличить компонент, который является предполагаемым местом назначения для пакета, от компонента, который мешает работе пакета. Кроме того, монитор пакетов сообщает о причинах удаления. Например, MTU Mismatch, Filtered VLAN и т.д. Эти причины помогают определить источник проблемы. Монитор пакетов также предоставляет счетчики пакетов для каждой точки перехвата без необходимости длительного анализа журналов.

network

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

Мониторим DNS трафик. Запускаем командную строку или PowerShell. Сбрасываем возможные фильтры:

pktmon filter remove

Создаём фильтр для 53 порта DNS:

pktmon filter add -p 53

Одновременно поддерживается до 32 фильтров. Посмотреть список имеющихся фильтров:

pktmon filter list

network

Мониторим трафик в реальном времени:

pktmon start --etw -p 0 -l real-time

Или в новой версии:

pktmon start --etw -m real-time

или:

pktmon start --etw --log-mode real-time

Теги

 

Похожие материалы

netsh trace — анализатор сетевого трафика

В Linux есть утилита tcpdump, позволяющая перехватывать и анализировать сетевой трафик. В Windows 10 есть утилита PktMon, которая поддерживает формат WireShark (PCAPNG) и Netmon (ETL). А что делать в более старых версиях Windows, где нет PktMon?

Теги