
Редактирование и воспроизведение перехваченного сетевого трафика на произвольных скоростях — набор инструментов для работы с pcap для *NIX и Windows.
Tcpreplay — это набор утилит под лицензией [GPLv3] для UNIX (и Windows под [Cygwin]) для редактирования и воспроизведения сетевого трафика, ранее захваченного такими инструментами, как [tcpdump] и [Wireshark]. Он классифицирует трафик как клиентский или серверный, перезаписывает заголовки уровней 2/3/4 и воспроизводит его обратно в сеть через коммутаторы, маршрутизаторы, межсетевые экраны, NIDS и IPS — со скоростью от минимальной вплоть до полной пропускной способности канала. Tcpreplay поддерживает как режим с одним, так и с двумя сетевыми интерфейсами (NIC), что позволяет тестировать как устройства прослушивания, так и встроенные (in-line) устройства.
Tcpreplay используется множеством производителей межсетевых экранов, IDS, IPS, NetFlow и других сетевых решений, предприятиями, университетами, лабораториями и проектами с открытым исходным кодом. Если ваша организация использует Tcpreplay, пожалуйста, сообщите нам, кто вы и для чего используете его, чтобы мы могли продолжать уделять приоритетное внимание важным функциям.
Начиная с версии 4.0, Tcpreplay также специально ориентирован на тестирование устройств [IP Flow][flow]/[NetFlow]: точная синхронизация воспроизведения на высоких скоростях и отчётность о результатах, статистика потоков в секунду (fps) и анализ истечения потоков для настройки параметров тайм-аута продуктов, работающих с потоками — вплоть до сотен тысяч потоков в секунду, в зависимости от размеров потоков в pcap-файле.
📖 Полная документация доступна по адресу https://tcpreplay.appneta.com — руководство по началу работы, отдельная страница для каждого инструмента, практические рецепты, концепции, лежащие в основе набора, страницы руководства (man pages) и FAQ. Этот README — краткий обзор; сайт — это справочник.
tcpreplay-edit) или рандомизации IP-адресов (tcpreplay)tcpreplay обычно остаётся на уровне 2)Полную историю релизов см. в CHANGELOG.
Скачайте последний релизный tarball (также зеркалируется на SourceForge), затем:
tar xf tcpreplay-*.tar.xz && cd tcpreplay-*
./configure && make && sudo make install
Архив релиза содержит предварительно сгенерированные парсеры CLI и man-страницы, поэтому для сборки не требуется ничего, кроме компилятора C и libpcap — см. раздел Сборка из исходников ниже, только если вы работаете с git-репозиторием или хотите включить поддержку CMake, netmap, AF_XDP или io_uring.
Более подробные инструкции для конкретных платформ приведены в файле INSTALL, включённом в архив (то же содержимое, что и в docs/INSTALL здесь).
Сборка из git-репозитория требует python3 и asciidoctor (для любой из систем сборки) для генерации парсеров опций CLI и man-страниц из файлов *_opts.def — это заменило GNU AutoGen для данной цели в версии 4.6 (AutoGen больше не поддерживается; эти инструменты — поддерживаются). Сам AutoGen по-прежнему нужен только для одного внутреннего заголовочного файла (src/tcpedit/tcpedit_stub.h) — см. scripts/autoopts/README.md. Ничего из этого не требуется при сборке из архива релиза, в котором эти файлы уже сгенерированы.
./autogen.sh # only needed once, from a git checkout
./configure
make
sudo make install
Начиная с версии 4.6, набор также можно собирать с помощью CMake (3.16+) — рекомендуемый и основной способ компиляции Tcpreplay. Autotools по-прежнему предоставляется и используется для релизных архивов, но со временем будет выведен из эксплуатации, поэтому новые скрипты/пакеты должны ориентироваться на CMake.
cmake -B build
cmake --build build
sudo cmake --install build
У каждого флага ./configure есть эквивалент в CMake — см. таблицу в начале
файла CMakeLists.txt. Несколько примеров: