tcpreplay

Suite d'outils de rejeu de trafic réseau. Rejoue des fichiers pcap sur une interface réseau à vitesse originale ou personnalisée : utilisée pour tester les signatures IDS/IPS, les équipements réseau et le comportement des applications sous trafic réel. Network traffic replay tool suite. Replays pcap files onto a network interface at original or custom speeds — used for testing IDS/IPS signatures, network equipment, and application behavior under real traffic.

↗ https://tcpreplay.appneta.com/

Overview

tcpreplay replays network traffic from pcap files onto live network interfaces. The suite includes tools for splitting, editing, and replaying captures — used to test IDS/IPS signatures against real attack traffic, load-test network devices, and reproduce security incidents.

Basic Usage

Replay a pcap at original speed

tcpreplay -i eth0 capture.pcap

Replay as fast as possible

tcpreplay -t -i eth0 capture.pcap

Replay at specific Mbps

tcpreplay --mbps=10 -i eth0 capture.pcap

Replay N times

tcpreplay -l 5 -i eth0 capture.pcap

Speed Control

Replay at original timestamps (x1 speed)

tcpreplay -i eth0 capture.pcap

Maximum speed

tcpreplay --topspeed -i eth0 capture.pcap

Specific rate (Mbps)

tcpreplay --mbps=100 -i eth0 capture.pcap

Packet per second rate

tcpreplay --pps=1000 -i eth0 capture.pcap

Multiplier (2x normal speed)

tcpreplay --multiplier=2.0 -i eth0 capture.pcap

tcprewrite — Edit Packets

Change source/destination IPs before replaying

tcprewrite --srcipmap=192.168.1.0/24:10.0.0.0/24 \
  --dstipmap=10.10.10.0/24:172.16.0.0/24 \
  --infile=capture.pcap --outfile=modified.pcap

Rewrite MAC addresses

tcprewrite --enet-smac=00:11:22:33:44:55 \
  --enet-dmac=AA:BB:CC:DD:EE:FF \
  --infile=capture.pcap --outfile=modified.pcap

Fix checksums after editing

tcprewrite --fixcsum --infile=modified.pcap --outfile=fixed.pcap

tcpprep — Split Captures

Split traffic into client/server pcap files

tcpprep --auto=client --pcap=capture.pcap --cachefile=cache.file

Use cache for directional replay

tcpreplay --cachefile=cache.file -i eth0 -I eth1 capture.pcap

IDS/IPS Testing

Test IDS signatures with known attack traffic 1. Download Snort test pcaps or use existing captures 2. Start Snort in NIDS mode

snort -c /etc/snort/snort.conf -i eth0 &
  1. Replay attack traffic
tcpreplay -i eth0 attack_traffic.pcap
  1. Check Snort alerts
tail -f /var/log/snort/alert

Tips

  • Fix checksums after tcprewrite modifications — corrupt checksums cause drops
  • For bidirectional replay, use two interfaces and tcpprep to split traffic
  • Download example attack pcaps from packetlife.net or the Snort VRT
  • Use --loop with a count to simulate sustained attack traffic
  • tcpreplay only works on local interfaces — not for remote injection
Help / Man page
tcpreplay [options] pcap

-i IFACE    Output interface
-t          Topspeed (as fast as possible)
--mbps N    Rate in Megabits/sec
--pps N     Rate in packets/sec
--multiplier N  Speed multiplier
-l N        Loop N times (0=infinite)
-c FILE     Cache file (from tcpprep)
-I IFACE    Second interface (for bidirectional)

tcprewrite [options]:
  --srcipmap OLD:NEW   Remap source IPs
  --dstipmap OLD:NEW   Remap destination IPs
  --fixcsum            Fix checksums
  --infile / --outfile Input and output pcap

Vue d’ensemble

tcpreplay rejoue du trafic réseau depuis des fichiers pcap sur des interfaces réseau en direct. La suite inclut des outils pour découper, éditer et rejouer des captures : utilisée pour tester des signatures IDS/IPS contre du trafic d’attaque réel, mettre en charge des équipements réseau, et reproduire des incidents de sécurité.

Utilisation de base

# Rejouer un pcap à la vitesse originale
tcpreplay -i eth0 capture.pcap

# Rejouer le plus rapidement possible
tcpreplay -t -i eth0 capture.pcap

# Rejouer à un débit Mbps spécifique
tcpreplay --mbps=10 -i eth0 capture.pcap

# Rejouer N fois
tcpreplay -l 5 -i eth0 capture.pcap

Contrôle de la vitesse

# Rejouer aux timestamps originaux (vitesse x1)
tcpreplay -i eth0 capture.pcap

# Vitesse maximale
tcpreplay --topspeed -i eth0 capture.pcap

# Débit spécifique (Mbps)
tcpreplay --mbps=100 -i eth0 capture.pcap

# Débit en paquets par seconde
tcpreplay --pps=1000 -i eth0 capture.pcap

# Multiplicateur (2x la vitesse normale)
tcpreplay --multiplier=2.0 -i eth0 capture.pcap

tcprewrite : éditer les paquets

# Changer les IPs source/destination avant de rejouer
tcprewrite --srcipmap=192.168.1.0/24:10.0.0.0/24 \
  --dstipmap=10.10.10.0/24:172.16.0.0/24 \
  --infile=capture.pcap --outfile=modified.pcap

# Réécrire les adresses MAC
tcprewrite --enet-smac=00:11:22:33:44:55 \
  --enet-dmac=AA:BB:CC:DD:EE:FF \
  --infile=capture.pcap --outfile=modified.pcap

# Corriger les checksums après édition
tcprewrite --fixcsum --infile=modified.pcap --outfile=fixed.pcap

tcpprep : découper les captures

# Découper le trafic en fichiers pcap client/serveur
tcpprep --auto=client --pcap=capture.pcap --cachefile=cache.file

# Utiliser le cache pour un rejeu directionnel
tcpreplay --cachefile=cache.file -i eth0 -I eth1 capture.pcap

Test IDS/IPS

Tester des signatures IDS avec du trafic d’attaque connu : 1. Télécharger des pcaps de test Snort ou utiliser des captures existantes 2. Démarrer Snort en mode NIDS

snort -c /etc/snort/snort.conf -i eth0 &
  1. Rejouer le trafic d’attaque
tcpreplay -i eth0 attack_traffic.pcap
  1. Vérifier les alertes Snort
tail -f /var/log/snort/alert

Conseils

  • Corriger les checksums après les modifications tcprewrite : des checksums corrompus entraînent des paquets rejetés
  • Pour un rejeu bidirectionnel, utiliser deux interfaces et tcpprep pour découper le trafic
  • Télécharger des exemples de pcaps d’attaque depuis packetlife.net ou le Snort VRT
  • Utiliser --loop avec un compteur pour simuler un trafic d’attaque soutenu
  • tcpreplay ne fonctionne que sur des interfaces locales, pas pour de l’injection à distance
Aide / Page de manuel
tcpreplay [options] pcap

-i IFACE    Output interface
-t          Topspeed (as fast as possible)
--mbps N    Rate in Megabits/sec
--pps N     Rate in packets/sec
--multiplier N  Speed multiplier
-l N        Loop N times (0=infinite)
-c FILE     Cache file (from tcpprep)
-I IFACE    Second interface (for bidirectional)

tcprewrite [options]:
  --srcipmap OLD:NEW   Remap source IPs
  --dstipmap OLD:NEW   Remap destination IPs
  --fixcsum            Fix checksums
  --infile / --outfile Input and output pcap