
Modifica e riproduci il traffico di rete catturato a velocità arbitrarie — una suite di strumenti pcap per *NIX e Windows.
Tcpreplay è una suite di utilità con licenza [GPLv3] per UNIX (e Windows sotto [Cygwin]) per modificare e riprodurre traffico di rete precedentemente catturato da strumenti come [tcpdump] e [Wireshark]. Classifica il traffico come client o server, riscrive le intestazioni di Livello 2/3/4 e lo riproduce sulla rete attraverso switch, router, firewall, NIDS e IPS — a qualsiasi velocità, da un flusso minimo fino alla piena velocità del collegamento. Tcpreplay supporta sia la modalità a singola NIC che a doppia NIC, per testare sia dispositivi di sniffing che in-line.
Tcpreplay è utilizzato da numerosi fornitori di firewall, IDS, IPS, NetFlow e altre soluzioni di networking, aziende, università, laboratori e progetti open source. Se la tua organizzazione utilizza Tcpreplay, faccelo sapere: chi sei e per cosa lo usi, così possiamo continuare a dare priorità alle funzionalità che contano.
Dalla versione 4.0, Tcpreplay è anche specificamente orientato al testing di appliance [IP Flow][flow]/[NetFlow]: temporizzazione accurata della riproduzione ad alta velocità e reportistica dei risultati, statistiche Flows Per Second (fps) e analisi della scadenza dei flussi per ottimizzare le impostazioni di timeout di un prodotto flow — fino a centinaia di migliaia di flussi/sec, a seconda delle dimensioni dei flussi nel file pcap.
📖 La documentazione completa è disponibile su https://tcpreplay.appneta.com — una guida introduttiva, una pagina per ogni strumento, ricette pratiche, i concetti alla base della suite, le pagine man e le FAQ. Questo README è la panoramica rapida; il sito è il riferimento.
tcpreplay-edit)
o randomizzando gli indirizzi IP (tcpreplay)tcpreplay rimane di solito al Livello 2)Consultare il CHANGELOG per la cronologia completa delle release.
Scaricare l'ultimo tarball di rilascio (disponibile anche su SourceForge), poi:
tar xf tcpreplay-*.tar.xz && cd tcpreplay-*
./configure && make && sudo make install
Un tarball di rilascio include i parser CLI e le pagine man pre-generati, quindi non serve altro oltre a un compilatore C e libpcap — vedi Compilazione dal sorgente qui sotto solo se stai lavorando da un checkout git, oppure se vuoi il supporto a CMake, netmap, AF_XDP o io_uring.
Istruzioni più dettagliate specifiche per piattaforma sono nel file INSTALL
incluso nel tarball (stesso contenuto di docs/INSTALL qui).
La compilazione da un checkout git richiede python3 e asciidoctor (con
entrambi i sistemi di build) per generare i parser delle opzioni CLI e le pagine man dai
file *_opts.def — questo ha sostituito GNU AutoGen per tale scopo nella 4.6
(AutoGen è EOL; questi no). AutoGen stesso è ancora necessario solo per un
header interno (src/tcpedit/tcpedit_stub.h) — vedi
scripts/autoopts/README.md. Nulla di tutto ciò è
necessario quando si compila un tarball di rilascio, che include già questi file generati.
./autogen.sh # only needed once, from a git checkout
./configure
make
sudo make install
A partire dalla versione 4.6, la suite può essere compilata anche con CMake (3.16+) — il modo consigliato e principale per compilare Tcpreplay. Autotools è ancora fornito e utilizzato per i tarball di rilascio, ma verrà eventualmente ritirato, quindi i nuovi script/pacchetti dovrebbero puntare a CMake.
cmake -B build
cmake --build build
sudo cmake --install build
Ogni flag di ./configure ha un equivalente CMake — vedi la tabella all'inizio di CMakeLists.txt. Alcuni esempi:
# 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