Перехватите их всех одним махом: используйте mergecap для объединения, преобразования, усечения и оптимизации файлов захвата сетевых пакетов.
Перехватите их всех одним махом: используйте mergecap для объединения, преобразования, усечения и оптимизации файлов захвата сетевых пакетов.

1. Предисловие

mergecapдляwiresharkвспомогательные команды,Это один из дополнительных инструментов, поставляемых вместе с установкой Wireshark.,mergecapИспользуется для объединения нескольких файлов пакетов.。

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

  • Захваченные пакеты поступают от разных узлов шлюза (связанных с архитектурой сети) и для полноценного взаимодействия их необходимо объединить в один;
  • Установите соответствующие параметры при захвате пакетов (например, сохранение один раз каждые пять минут или сохранение один раз при заполнении 1G) и автоматически разбивайте их на несколько файлов. Их необходимо объединить в один во время анализа, чтобы предотвратить интерактивный трафик (например, поток TCP). распределяется по нескольким пакетным файлам, что способствует анализу.

В этой статье будут подробно рассмотрены варианты использования и варианты использования mergecap.

2. Установка

Linux

Дистрибутив

Команда установки

Archlinux

pacman -Sy wireshark-cli

Centos/Redhat

yum install -y wireshark

Debian/Ubuntu

apt install -y wireshark

Gentoo

emerge --ask wireshark

Windows

После установки Wireshark по умолчанию mergecap использует путь установки Wireshark:

Другие вспомогательные команды также находятся по этому пути:

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

MacOS

Предварительное условие: должен быть установлен homebrew.

Используйте homebrew для установки Wireshark. Mergecap будет установлен по умолчанию:

Язык кода:bash
копировать
brew install wireshark
brew install wireshark-chmodbpf

3. Анализ вариантов использования

1. Объединить несколько пакетов (-w)

Например, три вышеперечисленныхpcapфайл пакета,Полный поток TCP разделен на три файла:

  • 1.pcapдляпервыйивторой разTCPДве упаковки пожимают друг другу руки:SYNиSYN,ACK;
  • 2.pcapдлятретье рукопожатие:ACK + Начать махать: FIN, ACK Всего две упаковки;
  • 3.pcapдля Остальная часть полной волны(FIN,ACK и ACK), а также один ARP и два ICMP Запрос и ответ.

Если мы хотим проанализировать поток TCP в данный момент, анализ одного пакета не является полным TCP. Stream,Усложнить анализ,На данный момент вам необходимо объединить эти три пакета.длясумка;-wПараметр указывает имя выходного пакета.,На данный момент известно, что в текущем каталоге их три.файл пакета:1.pcap2.pcap3.pcap,слитьдляsum.pcap,Может быть:

Язык кода:bash
копировать
mergecap -w sum.pcap 1.pcap 2.pcap 3.pcap

Очевидно, что слияние более удобно для анализа всего потока TCP:

При этом поддерживается расширенная запись:

Язык кода:bash
копировать
mergecap -w sum.pcap *
  • Написание * объединит все файлы в текущем каталоге;
  • Писатьдля*.pcap,Тогда весь текущий каталог будет.pcapобъединить файлы в конце。

Если вам не нужно объединять в файлы,Просто выведите вSTDOUTиметь дело с,Например, трубыtsharktcpdumpЖдем прогрессаиметь дело санализировать,Так-wТакже поддерживает использование стандартных параметров."-",Например, после слияния вывести вSTDOUT,Тогда конвейер даетtsharkчитать:

Язык кода:bash
копировать
mergecap -w - * | tshark -n -r -

Та же причина,Также можно отправить наtcpdumpруководитьиметь дело с,Даже сделать некоторую фильтрацию по нему,Например, отфильтруйте первый поток TCP:

Язык кода:bash
копировать
mergecap -w - 1.pcap 2.pcap 3.pcap | tcpdump -n -r - 'tcp[12:4] & 0x0f000000 == 0'

2. Объединить в порядке пакетов, а не в порядке временных меток (-a)

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

Язык кода:bash
копировать
mergecap -a -w sum.pcap 3.pcap 1.pcap 2.pcap

Здесь в качестве демонстрации,умышленно312Нарушен порядок ввода параметров в трех пакетах.,слитьдляsum.pcap,можно увидетьsum.pcapПорядок пакетов строго соответствует входным параметрам.файл пакета顺序руководитьслить,На этом этапе снова выполните анализ потока TCP.,Невозможно прочитать весь поток.

Даже если его открыть с помощью Wireshark, он неполный:

Этот тип сценария слияния обычно возникает из-за того, что несколько пакетов захватываются на разных узлах.,время противоречиво,Если не добавлено-aпараметр,По умолчанию объединять в хронологическом порядке,Сумка тоже испорчена,И плюс-aДалее строго следуйте инструкциям по вводу параметров.файл пакета先后顺序руководитьслить,Этот вариант не часто используется и не рекомендуется.,Если только ты не знаешь, что делаешь.

3. Укажите длину усечения для слияния (-s)

Без этого параметра по умолчанию,Принятие одного кадра в качестве размера,Что такое фреймовый примитив,Какой кадр после слияния?,Объединить как есть。-sпараметр允许слить时把每个包руководить截断再слить,Например, для слияния берутся только первые 60 байт кадра.,Эта вторичная обработка также может значительно уменьшить размер файла пакета.,Удалите контент, который не поможет при устранении неполадок.

Например, следующий пример,Полный поток HTTP разделяется на два файла пакета.,http-1.pcapиhttp-2.pcap

Если вас не волнует производительность уровня 7 (HTTP),Вам нужно только проанализировать, нет ли каких-либо отклонений в самом TCP,Такслить时可以截断для60 байт

Язык кода:bash
копировать
mergecap -s 60 -w sum.pcap http-1.pcap http-2.pcap

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

1) Почему 60 байт вместо 54 байт?

По умолчанию 54-байтовый вариант: 14 (заголовок Ethernet) + 20 (заголовок IPv4) + 20 (заголовок TCP) = 54 байта:

Захват пакетов в Linux,И указать интерфейс захвата пакетовдля-i any,То есть захватить все интерфейсы,На этом этапе уровень канала передачи данных больше не может отображаться как Ethernet.,СкорееLinux cooked capture v2(SLL),Это псевдопротокол в Linux,Потому что не все интерфейсы на машине имеют одинаковый заголовок канального уровня.,ссылкаОписание официального сайта Wireshark

Эта голова занимает как минимум20 байт,На 6 байт больше, чем заголовок Ethernet:

2) Структура пакета подготовленного захвата Linux (SLL)

Linux cooked capture v2Структура пакета версийдля:

Язык кода:bash
копировать
+---------------------------+
|        Protocol type      |
|         (2 Octets)        |
+---------------------------+
|       Reserved (MBZ)      |
|         (2 Octets)        |
+---------------------------+
|       Interface index     |
|         (4 Octets)        |
+---------------------------+
|        ARPHRD_ type       |
|         (2 Octets)        |
+---------------------------+
|         Packet type       |
|         (1 Octet)         |
+---------------------------+
| Link-layer address length |
|         (1 Octets)        |
+---------------------------+
|    Link-layer address     |
|         (8 Octets)        |
+---------------------------+
|           Payload         |
.                           .

версия v1нодля:

Язык кода:bash
копировать
+---------------------------+
|         Packet type       |
|         (2 Octets)        |
+---------------------------+
|        ARPHRD_ type       |
|         (2 Octets)        |
+---------------------------+
| Link-layer address length |
|         (2 Octets)        |
+---------------------------+
|    Link-layer address     |
|         (8 Octets)        |
+---------------------------+
|        Protocol type      |
|         (2 Octets)        |
+---------------------------+
|           Payload         |
.                           .

Таким образом, общее количество байтов до заголовка TCP составляет: 20 (заголовок канального уровня) + 20 (заголовок IPv4) + 20 (заголовок TCP) = 60 байт;

Если вы не используете параметр -i Any для указания всех интерфейсов при перехвате пакетов, то вполне можно указать 54 байта для перехвата заголовка. -s 60 просто из соображений безопасности;

4. Установите формат объединенного сохранения или выполните преобразование формата (-F).

По умолчанию формат вывода — pcapng. Почему данные, сохраненные с суффиксом pcap, можно открыть нормально?

mergecapАвтоматически определяет формат файла,и правильно анализировать и отображать пакеты,Даже если файл pcapng сохранен с суффиксом pcap,Инструменты по-прежнему распознают и открывают его правильно.,А pcapng — это обновленная версия pcap.,pcapng имеет улучшенное отображение деталей и улучшенную производительность.,Поэтому в первую очередь рекомендуется использовать формат pcapng.

1) Список форматов

При необходимости сохраните в других форматах.,-FНичего не отвечайпараметр Может перечислить поддерживаемые форматы сохранения:

Язык кода:bash
копировать
mergecap -F

Уведомление,За исключением pcap и pcapng, нет необходимости указывать опцию -F отдельно.,Все остальные форматы необходимо указать.,Если вы измените только суффикс формата без указания соответствующего формата через -F,Фактически, он по-прежнему сохраняется в формате pcapng.,В результате соответствующий формат не может быть правильно прочитан.,Следовательно, вы также можете понять, что эта опция может конвертировать файлы перехвата пакетов определенного формата в другие форматы.

Готового окружения нет. Беря за пример формат pcapng, всё равно ставим длину усечения 60:

Язык кода:bash
копировать
mergecap -F pcapng -s 60 -w sum.pcapng http-*.pcap

2) Преобразование формата

Он также поддерживает преобразование формата, например преобразование pcapng в pcap:

Язык кода:bash
копировать
mergecap -F pcap -w sum.pcap sum.pcapng

То же самое касается конвертации в другие форматы.

4. Резюме

До сих пор мы полностью обсудили mergecap Варианты использования, в которых подробно описывается, как объединить несколько файлов пакетов и конвертировать их в разные форматы, а также подробно анализируется, как обрезать и сохранять захваченные файлы пакетов, чтобы уменьшить размер пакета и уменьшить рабочую нагрузку, а также вкрапления Linux. cooked Понятие захвата.

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

boy illustration
Углубленный анализ переполнения памяти CUDA: OutOfMemoryError: CUDA не хватает памяти. Попыталась выделить 3,21 Ги Б (GPU 0; всего 8,00 Ги Б).
boy illustration
[Решено] ошибка установки conda. Среда решения: не удалось выполнить первоначальное зависание. Повторная попытка с помощью файла (графическое руководство).
boy illustration
Прочитайте нейросетевую модель Трансформера в одной статье
boy illustration
.ART Теплые зимние предложения уже открыты
boy illustration
Сравнительная таблица описания кодов ошибок Amap
boy illustration
Уведомление о последних правилах Points Mall в декабре 2022 года.
boy illustration
Даже новички могут быстро приступить к работе с легким сервером приложений.
boy illustration
Взгляд на RSAC 2024|Защита конфиденциальности в эпоху больших моделей
boy illustration
Вы используете ИИ каждый день и до сих пор не знаете, как ИИ дает обратную связь? Одна статья для понимания реализации в коде Python общих функций потерь генеративных моделей + анализ принципов расчета.
boy illustration
Используйте (внутренний) почтовый ящик для образовательных учреждений, чтобы использовать Microsoft Family Bucket (1T дискового пространства на одном диске и версию Office 365 для образовательных учреждений)
boy illustration
Руководство по началу работы с оперативным проектом (7) Практическое сочетание оперативного письма — оперативного письма на основе интеллектуальной системы вопросов и ответов службы поддержки клиентов
boy illustration
[docker] Версия сервера «Чтение 3» — создайте свою собственную программу чтения веб-текста
boy illustration
Обзор Cloud-init и этапы создания в рамках PVE
boy illustration
Корпоративные пользователи используют пакет регистрационных ресурсов для регистрации ICP для веб-сайта и активации оплаты WeChat H5 (с кодом платежного узла версии API V3)
boy illustration
Подробное объяснение таких показателей производительности с высоким уровнем параллелизма, как QPS, TPS, RT и пропускная способность.
boy illustration
Удачи в конкурсе Python Essay Challenge, станьте первым, кто испытает новую функцию сообщества [Запускать блоки кода онлайн] и выиграйте множество изысканных подарков!
boy illustration
[Техническая посадка травы] Кровавая рвота и отделка позволяют вам необычным образом ощипывать гусиные перья! Не распространяйте информацию! ! !
boy illustration
[Официальное ограниченное по времени мероприятие] Сейчас ноябрь, напишите и получите приз
boy illustration
Прочтите это в одной статье: Учебник для няни по созданию сервера Huanshou Parlu на базе CVM-сервера.
boy illustration
Cloud Native | Что такое CRD (настраиваемые определения ресурсов) в K8s?
boy illustration
Как использовать Cloudflare CDN для настройки узла (CF самостоятельно выбирает IP) Гонконг, Китай/Азия узел/сводка и рекомендации внутреннего высокоскоростного IP-сегмента
boy illustration
Дополнительные правила вознаграждения амбассадоров акции в марте 2023 г.
boy illustration
Можно ли открыть частный сервер Phantom Beast Palu одним щелчком мыши? Супер простой урок для начинающих! (Прилагается метод обновления сервера)
boy illustration
[Играйте с Phantom Beast Palu] Обновите игровой сервер Phantom Beast Pallu одним щелчком мыши
boy illustration
Maotouhu делится: последний доступный внутри страны адрес склада исходного образа Docker 2024 года (обновлено 1 декабря)
boy illustration
Кодирование Base64 в MultipartFile
boy illustration
5 точек расширения SpringBoot, супер практично!
boy illustration
Глубокое понимание сопоставления индексов Elasticsearch.
boy illustration
15 рекомендуемых платформ разработки с нулевым кодом корпоративного уровня. Всегда найдется та, которая вам понравится.
boy illustration
Аннотация EasyExcel позволяет экспортировать с сохранением двух десятичных знаков.