Компьютерные сети

Анализ пакетов: Wireshark

"Не работает" - самый бесполезный баг репорт. Что именно не работает? DNS не резолвится? TCP не соединяется? TLS handshake падает? Сервер не отвечает? Packet capture - единственный способ увидеть правду без гипотез и догадок.

  • **Cloudflare** использует packet capture для анализа DDoS атак в реальном времени. Видят паттерны атаки на уровне пакетов
  • **Netflix** анализирует TCP behaviour для оптимизации стриминга. Каждая миллисекунда latency - потенциальный buffer
  • **Security teams** ловят malware через packet analysis: C2 beacons, DNS tunneling, data exfiltration - всё видно в трафике

Предварительные знания

  • Data Link Layer and Ethernet
  • TCP: reliable delivery

Wireshark: сетевой микроскоп

**Wireshark** - анализатор сетевых протоколов с GUI. Захватывает пакеты с интерфейса и разбирает их по слоям: Ethernet → IP → TCP → HTTP. Видишь каждый байт, каждый флаг, каждый timestamp. Это strace для сети.

**Display Filters** - язык запросов Wireshark. `tcp.port == 80` (HTTP), `http.request.method == "POST"`, `tcp.analysis.retransmission` (потери), `frame.time_delta > 0.1` (медленные). Фильтры помогают найти иголку в стоге сена.

Как найти TCP retransmissions в Wireshark?

tcpdump: CLI для захвата

**tcpdump** - консольный packet sniffer. Работает на серверах без GUI. Синтаксис BPF (Berkeley Packet Filter) - тот же что и в Wireshark capture filters. Часто используется для захвата на сервере с последующим анализом в Wireshark.

**BPF (Berkeley Packet Filter)** - язык фильтрации в ядре. Фильтр компилируется в байткод и выполняется до копирования пакета в userspace. Это эффективнее чем фильтрация после захвата - меньше CPU и память.

Зачем использовать tcpdump -w вместо анализа в реальном времени?

Capture: как захватить правильно

**Packet Capture** - искусство захватить нужный трафик. На свитче видишь только свой трафик. Нужен SPAN порт (port mirroring), TAP устройство, или захват на самом сервере. Неправильная точка захвата = не тот трафик.

**Promiscuous mode** - режим сетевой карты, при котором она принимает все пакеты, не только адресованные ей. Нужен для захвата чужого трафика на shared medium (hub, WiFi). На свитче не поможет - свитч не шлёт чужой трафик.

Почему на современном свитче не видишь чужой трафик даже в promiscuous mode?

Анализ протоколов

**Protocol Analysis** - разбор захваченного трафика. Цели: найти проблему (почему медленно?), понять протокол (что передаётся?), обнаружить аномалии (атака?). Wireshark показывает статистику: Conversations, IO Graph, Flow Graph.

**Expert Info** в Wireshark (Analyze → Expert Information) - автоматический анализ проблем. Показывает: Errors (checksums), Warnings (retransmissions, out-of-order), Notes (window updates), Chats (connection setup). Первое место для начала troubleshooting.

HTTPS трафик нельзя анализировать в Wireshark

Можно видеть метаданные (IP, порты, размеры) и TLS handshake. С ключами - можно расшифровать

TLS шифрует payload, но не скрывает: кто с кем общается, размеры пакетов, timing. Для troubleshooting этого часто достаточно. С SSLKEYLOGFILE можно расшифровать весь трафик (если есть доступ к клиенту)

Запрос HTTP занимает 5 секунд. Как определить где задержка - в сети или на сервере?

Итоги

  • **Wireshark** = GUI анализатор с развитыми display filters и protocol dissectors
  • **tcpdump** = CLI захват на серверах. Workflow: tcpdump -w → scp → Wireshark
  • **Точка захвата** критична: на сервере, SPAN port, или TAP. Свитч не покажет чужой трафик
  • **BPF filters** работают в ядре - эффективная фильтрация до userspace
  • **Expert Info** - первое место для troubleshooting. Retransmissions, resets, latency

Связанные темы

Packet analysis требует понимания протоколов:

  • TCP Basics — Понимание handshake, sequence numbers, флагов для анализа TCP проблем
  • Network Monitoring — Метрики показывают проблему, packet capture объясняет причину
  • Ethernet Frame — L2 заголовки видны в захвате - MAC адреса, VLAN tags

Вопросы для размышления

  • Как бы вы захватили трафик между двумя виртуальными машинами на одном гипервизоре?
  • В каких случаях packet capture может нарушить privacy или compliance (GDPR)?
  • Как анализировать QUIC трафик, который шифрует больше метаданных чем TLS?

Связанные уроки

  • os-01-intro
Анализ пакетов: Wireshark

0

1

Войти