
Edite e reproduza o tráfego de rede capturado em velocidades arbitrárias — um conjunto de ferramentas pcap para *NIX e Windows.
Tcpreplay é um conjunto de utilitários licenciados sob [GPLv3] para UNIX (e Windows sob [Cygwin]) para editar e reproduzir tráfego de rede previamente capturado por ferramentas como [tcpdump] e [Wireshark]. Ele classifica o tráfego como cliente ou servidor, reescreve cabeçalhos das Camadas 2/3/4 e o reproduz de volta na rede através de switches, roteadores, firewalls, NIDS e IPS's — desde um gotejamento até a taxa máxima do link. O Tcpreplay suporta tanto o modo de uma quanto de duas NICs, para testar dispositivos de sniffing e in-line.
O Tcpreplay é usado por inúmeros fornecedores de firewall, IDS, IPS, NetFlow e outros de rede, empresas, universidades, laboratórios e projetos de código aberto. Se sua organização usa o Tcpreplay, por favor nos avise quem você é e para que o usa, para que possamos continuar priorizando os recursos que importam.
Desde a versão 4.0, o Tcpreplay também tem como alvo específico o teste de appliances [IP Flow][flow]/[NetFlow]: temporização precisa de reprodução em alta taxa e relatórios de resultados, estatísticas de Fluxos Por Segundo (fps) e análise de expiração de fluxos para ajustar as configurações de timeout de um produto de fluxo — até centenas de milhares de fluxos/seg, dependendo dos tamanhos de fluxo no arquivo pcap.
📖 A documentação completa está em https://tcpreplay.appneta.com — um guia de introdução, uma página por ferramenta, receitas de como fazer, os conceitos por trás do conjunto, as páginas de manual e o FAQ. Este README é o tour rápido; o site é a referência.
tcpreplay-edit)
ou randomizando endereços IP (tcpreplay)tcpreplay normal geralmente permanece na Camada 2)Consulte o CHANGELOG para o histórico completo de releases.
Baixe o tarball da release mais recente (também espelhado no SourceForge), depois:
tar xf tcpreplay-*.tar.xz && cd tcpreplay-*
./configure && make && sudo make install
Um tarball de lançamento já inclui os parsers de CLI e as man pages pré-gerados, portanto isso não requer nada além de um compilador C e libpcap — consulte Compilando a partir do código-fonte abaixo apenas se você estiver trabalhando a partir de um checkout git, ou quiser suporte a CMake, netmap, AF_XDP ou io_uring.
Instruções mais detalhadas específicas por plataforma estão no arquivo INSTALL
incluído no tarball (mesmo conteúdo que docs/INSTALL aqui).
Compilar a partir de um checkout git requer python3 e asciidoctor (em qualquer
sistema de build) para gerar os parsers de opções de CLI e as man pages a partir dos
arquivos *_opts.def — isso substituiu o GNU AutoGen para esse propósito na versão 4.6
(o AutoGen está em EOL; estes não estão). O próprio AutoGen ainda é necessário apenas para um
header interno (src/tcpedit/tcpedit_stub.h) — consulte
scripts/autoopts/README.md. Nada disso é
necessário ao compilar um tarball de lançamento, que já inclui esses arquivos gerados.
./autogen.sh # only needed once, from a git checkout
./configure
make
sudo make install
A partir da versão 4.6, o conjunto também pode ser compilado com CMake (3.16+) — a forma recomendada e principal de compilar o Tcpreplay. O Autotools ainda é fornecido e usado para os tarballs de lançamento, mas eventualmente será descontinuado, portanto novos scripts/pacotes devem ter o CMake como alvo.
cmake -B build
cmake --build build
sudo cmake --install build
Cada flag de ./configure tem um equivalente em CMake — consulte a tabela no topo de CMakeLists.txt. Alguns exemplos:
# debug build with support for the -d option
cmake -B build -DENABLE_DEBUG=ON
# AddressSanitizer or ThreadSanitizer build
cmake -B build -DENABLE_ASAN=ON
cmake -B build -DENABLE_TSAN=ON