objectif
Simuler des conditions réseau difficiles (latence, jitter, perte) pour tester timeouts, retries et UX.
code minimal
# ajouter 80 ms de latence moyenne + 20 ms de jitter et 1% de perte
sudo tc qdisc add dev eth0 root netem delay 80ms 20ms loss 1%
utilisation
# tester puis retirer
curl -sS https://data.pm/ >/dev/null
sudo tc qdisc del dev eth0 root netem
variante(s) utile(s)
# limiter à une destination avec une qdisc hiérarchique (htb + netem)
sudo tc qdisc add dev eth0 root handle 1: htb default 10
sudo tc class add dev eth0 parent 1: classid 1:10 htb rate 1000mbit
sudo tc qdisc add dev eth0 parent 1:10 handle 10: netem delay 120ms 30ms distribution normal
sudo tc filter add dev eth0 protocol ip parent 1: prio 1 u32 match ip dst 203.0.113.0/24 flowid 1:10
# perte en burst (corrélation)
sudo tc qdisc replace dev eth0 root netem loss 2% 25%
notes
- opérez sur une interface de test ou hors production.
- supprimez toujours la qdisc une fois le test terminé pour restaurer l’état.