mergecapдляwiresharkвспомогательные команды,Это один из дополнительных инструментов, поставляемых вместе с установкой Wireshark.,mergecapИспользуется для объединения нескольких файлов пакетов.。
При ежедневном захвате сетевых пакетов и устранении неполадок шлюз или кластер могут состоять из нескольких машинных узлов, или узлы, проходящие по исходящему и входящему направлениям, несовместимы. В этом случае при захвате пакетов будет создано более одного файла пакета. каждый пакет Файл — это часть, которая проходит через один из узлов компонента. Чтобы полностью проанализировать весь поток, эти файлы пакета необходимо объединить в один файл пакета, чтобы получить полноценное интерактивное сообщение. Следовательно, пакет слияния mergecap — это не что иное. чем следующие сценарии:
В этой статье будут подробно рассмотрены варианты использования и варианты использования mergecap.
Дистрибутив | Команда установки |
---|---|
Archlinux | pacman -Sy wireshark-cli |
Centos/Redhat | yum install -y wireshark |
Debian/Ubuntu | apt install -y wireshark |
Gentoo | emerge --ask wireshark |
После установки Wireshark по умолчанию mergecap использует путь установки Wireshark:
Другие вспомогательные команды также находятся по этому пути:
Вы можете выбрать, добавить ли путь к переменной среды или использовать его непосредственно под путем.
Предварительное условие: должен быть установлен homebrew.
Используйте homebrew для установки Wireshark. Mergecap будет установлен по умолчанию:
brew install wireshark
brew install wireshark-chmodbpf
Например, три вышеперечисленныхpcapфайл пакета,Полный поток TCP разделен на три файла:
Если мы хотим проанализировать поток TCP в данный момент, анализ одного пакета не является полным TCP. Stream,Усложнить анализ,На данный момент вам необходимо объединить эти три пакета.длясумка;-wПараметр указывает имя выходного пакета.,На данный момент известно, что в текущем каталоге их три.файл пакета:1.pcap、2.pcap、3.pcap,слитьдляsum.pcap,Может быть:
mergecap -w sum.pcap 1.pcap 2.pcap 3.pcap
Очевидно, что слияние более удобно для анализа всего потока TCP:
При этом поддерживается расширенная запись:
mergecap -w sum.pcap *
Если вам не нужно объединять в файлы,Просто выведите вSTDOUTиметь дело с,Например, трубыtshark、tcpdumpЖдем прогрессаиметь дело санализировать,Так-wТакже поддерживает использование стандартных параметров."-",Например, после слияния вывести вSTDOUT,Тогда конвейер даетtsharkчитать:
mergecap -w - * | tshark -n -r -
Та же причина,Также можно отправить наtcpdumpруководитьиметь дело с,Даже сделать некоторую фильтрацию по нему,Например, отфильтруйте первый поток TCP:
mergecap -w - 1.pcap 2.pcap 3.pcap | tcpdump -n -r - 'tcp[12:4] & 0x0f000000 == 0'
использовать-wПараметры по умолчанию,По умолчанию кадры объединяются в порядке временных меток.,Если вы не хотите объединять в хронологическом порядке,Вместо этого они располагаются в соответствии с абсолютным порядком входных файлов.,тогда вы можете добавить-aпараметр:
mergecap -a -w sum.pcap 3.pcap 1.pcap 2.pcap
Здесь в качестве демонстрации,умышленно3、1、2Нарушен порядок ввода параметров в трех пакетах.,слитьдляsum.pcap,можно увидетьsum.pcapПорядок пакетов строго соответствует входным параметрам.файл пакета顺序руководитьслить,На этом этапе снова выполните анализ потока TCP.,Невозможно прочитать весь поток.
Даже если его открыть с помощью Wireshark, он неполный:
Этот тип сценария слияния обычно возникает из-за того, что несколько пакетов захватываются на разных узлах.,время противоречиво,Если не добавлено-aпараметр,По умолчанию объединять в хронологическом порядке,Сумка тоже испорчена,И плюс-aДалее строго следуйте инструкциям по вводу параметров.файл пакета先后顺序руководитьслить,Этот вариант не часто используется и не рекомендуется.,Если только ты не знаешь, что делаешь.
Без этого параметра по умолчанию,Принятие одного кадра в качестве размера,Что такое фреймовый примитив,Какой кадр после слияния?,Объединить как есть。-sпараметр允许слить时把每个包руководить截断再слить,Например, для слияния берутся только первые 60 байт кадра.,Эта вторичная обработка также может значительно уменьшить размер файла пакета.,Удалите контент, который не поможет при устранении неполадок.
Например, следующий пример,Полный поток HTTP разделяется на два файла пакета.,http-1.pcapиhttp-2.pcap:
Если вас не волнует производительность уровня 7 (HTTP),Вам нужно только проанализировать, нет ли каких-либо отклонений в самом TCP,Такслить时可以截断для60 байт:
mergecap -s 60 -w sum.pcap http-1.pcap http-2.pcap
Вы можете видеть, что уровень HTTP усечен, но уровень TCP по-прежнему отображается нормально, и в заголовке TCP нет пропущенных полей.
По умолчанию 54-байтовый вариант: 14 (заголовок Ethernet) + 20 (заголовок IPv4) + 20 (заголовок TCP) = 54 байта:
Захват пакетов в Linux,И указать интерфейс захвата пакетовдля-i any,То есть захватить все интерфейсы,На этом этапе уровень канала передачи данных больше не может отображаться как Ethernet.,СкорееLinux cooked capture v2(SLL),Это псевдопротокол в Linux,Потому что не все интерфейсы на машине имеют одинаковый заголовок канального уровня.,ссылкаОписание официального сайта Wireshark。
Эта голова занимает как минимум20 байт,На 6 байт больше, чем заголовок Ethernet:
Linux cooked capture v2Структура пакета версийдля:
+---------------------------+
| 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нодля:
+---------------------------+
| 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 просто из соображений безопасности;
По умолчанию формат вывода — pcapng. Почему данные, сохраненные с суффиксом pcap, можно открыть нормально?
mergecapАвтоматически определяет формат файла,и правильно анализировать и отображать пакеты,Даже если файл pcapng сохранен с суффиксом pcap,Инструменты по-прежнему распознают и открывают его правильно.,А pcapng — это обновленная версия pcap.,pcapng имеет улучшенное отображение деталей и улучшенную производительность.,Поэтому в первую очередь рекомендуется использовать формат pcapng.
При необходимости сохраните в других форматах.,-FНичего не отвечайпараметр Может перечислить поддерживаемые форматы сохранения:
mergecap -F
Уведомление,За исключением pcap и pcapng, нет необходимости указывать опцию -F отдельно.,Все остальные форматы необходимо указать.,Если вы измените только суффикс формата без указания соответствующего формата через -F,Фактически, он по-прежнему сохраняется в формате pcapng.,В результате соответствующий формат не может быть правильно прочитан.,Следовательно, вы также можете понять, что эта опция может конвертировать файлы перехвата пакетов определенного формата в другие форматы.
Готового окружения нет. Беря за пример формат pcapng, всё равно ставим длину усечения 60:
mergecap -F pcapng -s 60 -w sum.pcapng http-*.pcap
Он также поддерживает преобразование формата, например преобразование pcapng в pcap:
mergecap -F pcap -w sum.pcap sum.pcapng
То же самое касается конвертации в другие форматы.
До сих пор мы полностью обсудили mergecap Варианты использования, в которых подробно описывается, как объединить несколько файлов пакетов и конвертировать их в разные форматы, а также подробно анализируется, как обрезать и сохранять захваченные файлы пакетов, чтобы уменьшить размер пакета и уменьшить рабочую нагрузку, а также вкрапления Linux. cooked Понятие захвата.
При этом в статье мы впервые знакомим mergecap сценарии использования, а затем демонстрирует, как использовать инструмент в различных сценариях на реальных примерах. Прочитав эту статью, читатели смогут освоить mergecap Используйте полученные навыки и гибко применяйте их в реальной работе, тем самым повышая эффективность работы и точность анализа пакетов данных.