La Fibre

Télécom => Logiciels et systèmes d'exploitation => Linux Linux => Discussion démarrée par: vivien le 14 juin 2011 à 07:21:18

Titre: Tutoriel pour générer des pertes de paquets / latence / gigue avec NetEm
Posté par: vivien le 14 juin 2011 à 07:21:18
Tutoriel pour générer des pertes de paquets / latence / gigue sur un équipement avec NetEm

Matériel nécessaire : 2 cartes réseau Ethernet.

Il faut installer Linux Ubuntu (ou Linux Debian), car on va mettre en place un pont afin que les 2 interface Ethernet de ton PC deviennent les 2 ports d'un Switch.

On va commencer par rajouter les paquets nécessaire. Dans la logithèque Ubuntu, il faut installer les logiciels suivants :
- bridge-utils (permet faire le switch virtuel)
- wireshark (pour faire une capture)
Configuration de Wireshark : Pour faire une capture avec wireshark sans le démarrer en root, copiez / collez ces 4 lignes dans un terminal :
sudo addgroup -quiet -system wireshark
sudo chown root:wireshark /usr/bin/dumpcap
sudo setcap cap_net_raw,cap_net_admin=eip /usr/bin/dumpcap
sudo usermod -a -G wireshark VOTRE_LOGIN (Note : pensez a changer VOTRE_LOGIN par votre login ubuntu)

Note : Il n'y a rien à installer pour NetEm, il est directement intégré au noyau Linux d'Ubuntu.

Configuration réseau :
Dans un terminal, taper la commande sudo nano -w /etc/network/interfaces
Cela permet d'éditer le fichier de configuration réseau en tant que super-utilisateur.
Le fichier est vide, car la configuration est laissée a un outil graphique plus simple. Pour faire un pont, on est obligé de passer par cet configuration en fichier texte.


# The loopback network interface
auto lo
iface lo inet loopback

#-------------- ETH 0
auto eth0
iface eth0 inet manual

#-------------- ETH 1
auto eth1
iface eth1 inet manual

#-------------- BRIDGE 0

auto br0
iface br0 inet manual
# Si vous avez besoin d'internet sur le PC bridge : commentez la précédente ligne et enlevez le commentaire des 5 lignes suivantes :
#iface br0 inet static
   #address 192.168.1.90
   #netmask 255.255.255.0
   #gateway 192.168.1.254
   #dns-nameservers 192.168.1.254 8.8.8.8
   bridge_ports eth0 eth1
   bridge_stp off
   bridge_fd 0
   bridge_maxwait 0

J'ai commenté L'IP / masque / passerelle car je n'ai pas besoin d'accès Internet. Pour que le PC ait aussi accés à Internet, il suffit de remplire les données et d'enlever les commentaires.

Branchements :
Si on souhaite introduire des pertes de paquets sur un décodeur TV, il faut connecter la box sur un port Ethernet et le décodeur TV sur le second port Ethernet du PC. Redémarrer ensuite le PC. Normalement le décodeur TV devrait fonctionne normalement (par défaut il n'y a ni pertes, ni ping supplèmentaire).

Commande Netm pour générer les pertes sur les paquets émis par l'interface Eth0 :
- Premier lancement avec 1% de paquet perdu :  sudo tc qdisc add dev eth0 root netem loss 1%
- Modification des pertes à 0,3% : sudo tc qdisc change dev eth0 root netem loss 0.3%
- Arrêt des pertes de paquets : sudo tc qdisc change dev eth0 root netem loss 0%

Commande Netm pour générer les pertes sur les paquets émis par l'interface Eth1 :
- Premier lancement avec 1% de paquet perdu :  sudo tc qdisc add dev eth1 root netem loss 1%
- Modification des pertes à 0,3% : sudo tc qdisc change dev eth1 root netem loss 0.3%
- Arrêt des pertes de paquets : sudo tc qdisc change dev eth1 root netem loss 0%

Commande NetEm pour rajouter du délai sur les paquets émis par l'interface Eth0 :
- Premier lancement avec 100ms de latence : sudo tc qdisc add dev eth0 root netem delay 100ms
- Modification de la latence à 10ms : sudo tc qdisc change dev eth0 root netem delay 10ms
- Suppression de la latence supplèmentaire : sudo tc qdisc change dev eth0 root netem delay 0ms

Rajouter de la latence au démarrage d'une machine :
sudo nano /etc/cron.d/latence
Placer la commande cron suivante :

# Ajout de 10ms de latence sur l'interface enp1s0
@reboot root /usr/sbin/tc qdisc add dev enp1s0 root netem delay 10ms
Note: le fichier /etc/cron.d/latence n'a pas besoin d'être executable

Pour aller plus loin avec NetEm : http://www.linuxfoundation.org/collaborate/workgroups/networking/netem

Capture Wireshark :
Il est possible de faire des captures su l'interface br0 mais aussi eth0 et eth1. Pour voir les pertes de paquets générées sur l'interface Eth0, il est nécessaire de faire la capture sur Eth0, les pertes n'étant pas présentes en entrée sur Eth1 ni sur br0.

Pour ceux qui se demandent à quoi correspondent le nom des interface sous Linux, voici un récapitulatif :
- eth0 : première interface Ethernet (ancienne appellation)
- eth1 : seconde interface Ethernet (ancienne appellation)
- em1 : première interface Ethernet intégrée (nouvelle appellation)
- em2 : seconde interface Ethernet intégrée (nouvelle appellation)
- p1p1 : première interface Ethernet de la 1ère carte Ethernet additionnelle (nouvelle appellation)
- p1p2 : seconde interface Ethernet de la 1ère carte Ethernet additionnelle (nouvelle appellation)
- p2p1 : première interface Ethernet de la 2ème carte Ethernet additionnelle (nouvelle appellation)
- wlan0 : première carte Wi-Fi
- br0 : le bridge que l'on va rajouter ci-dessous
- br1 : Second bridge dans le cas où on réalise plusieurs bridge
- lo : LoopBack qui est une interface virtuelle présent sous linux pour que 127.0.0.1 soit ton PC


Note : Pour faire un bridge avec une carte WiFi (pour un PC portable), vous avez un tutoriel là : https://wiki.debian.org/fr/BridgeNetworkConnections

(https://lafibre.info/images/logo/licence_cc_by-sa.svg)
Cet article et les photos qui l'illustrent est publié sous la licence Creative Commons CC BY-SA 4.0 (https://creativecommons.org/licenses/by-sa/4.0/deed.fr), afin de permettre sa diffusion par les autres médias (il faut citer l'auteur, Vivien GUEANT, mettre un lien vers cet article et réutiliser la même licence).
Tutoriel pour comprendre comment reprendre un contenu CC BY-SA 4.0 (https://lafibre.info/forum/creative-commons/).
Titre: Tutoriel pour générer des pertes de paquets / latence / gigue avec NetEm
Posté par: vivien le 14 juin 2011 à 07:31:05
Autre méthode : Il est également possible de définir des alias pour mettre en place le pont

Commandes :
- pogo        : monter le pont
- postop      : démonter le pont         
- pert        : perturber le flux - arg          
         1) s (si première perturbation)    
         2) port (sortie du pont)      
         3) % perte            

Définition des Alias :


$ alias
alias dir='dir --color=auto'
alias helpme='cat /var/local/doc_alias.txt'
alias l='ls -CF'
alias la='ls -A'
alias ll='ls -l'
alias ls='ls --color=auto'
alias pert='sudo /var/local/create_perturbation.sh'
alias pogo='sudo ifconfig eth2 0.0.0.0 up &&
     sudo ifconfig eth0 0.0.0.0 up &&
     sudo brctl addbr br0 &&
     sudo brctl addif br0 eth0 &&
     sudo brctl addif br0 eth2 &&
     sudo ifconfig br0 up'
alias postop='sudo ifconfig br0 down &&
       sudo brctl delif br0 eth0 &&
       sudo brctl delif br0 eth2 &&
       sudo brctl delbr br0
       #sudo ifconfig -dynamic eth0 &&
       sudo ifconfig eth0 up &&
       #sudo ifconfig -dynamic addr eth0 &&
       sudo ifconfig eth2 up'



Fichier /var/local/create_perturbation.sh :

#!/bin/sh

echo "   ----------------------------------   "
echo "   | first use arguments : s eth X% |   "
echo "   | after : eth X%       |   "
echo "   ----------------------------------   "

if [$# = 3]
then
   sudo tc qdisc add dev "$2" root netem loss "$3"%
else
   sudo tc qdisc change dev "$1" root netem loss "$2"%
fi


Configurer un serveur pour qu'il soit à 100ms de + que normalement même aprés un reboot :
(c'est la configuration pour le serveur http://100ms.lafibre.info/ (http://100ms.lafibre.info/) )

sudo nano -w /etc/rc.local

rajouter la ligne
/sbin/tc qdisc add dev eth0 root netem delay 100ms
avant la ligne "exit 0"

Titre: Tutoriel pour générer des pertes de paquets / latence / gigue avec NetEm
Posté par: vivien le 14 juin 2011 à 07:35:13
Configuration réseau d'un PC possédant 2 cartes PCI avec 4 ports ethernet soit un total de 9 ports Ethernet.

Eth0 - carte réseau intégré au PC : Pour l’accès  à Internet sur le PC
Eth1 et Eth5 (premier port de chaque carte PCI) : Premier swith (br0) pour perturber un premier équipement
Eth2 et Eth6 (second port de chaque carte PCI) : Second swith (br1) pour perturber un premier équipement
Eth3 et Eth7 : Troisième switch (br2)
Eth4 et Eth8 : Quatrième switch(br3)


auto lo
iface lo inet loopback

#-------------- ETH 0
#auto eth0
#iface eth0 inet dhcp

auto eth0
iface eth0 inet static
address 192.168.1.101
netmask 255.255.255.0
gateway 192.168.1.254


#-------------- BRIDGE 0

auto eth1
iface eth1 inet manual

auto eth5
iface eth5 inet manual

auto br0
iface br0 inet manual
bridge_ports eth1 eth5
bridge_stp off
bridge_fd 0
bridge_maxwait 0


#-------------- BRIDGE 1

auto eth2
iface eth2 inet manual

auto eth6
iface eth6 inet manual

auto br1
iface br1 inet manual
bridge_ports eth2 eth6
bridge_stp off
bridge_fd 0
bridge_maxwait 0


#-------------- BRIDGE 2

auto eth3
iface eth3 inet manual

auto eth7
iface eth7 inet manual

auto br2
iface br2 inet manual
bridge_ports eth3 eth7
bridge_stp off
bridge_fd 0
bridge_maxwait 0


#-------------- BRIDGE 3

auto eth4
iface eth4 inet manual

auto eth8
iface eth8 inet manual

auto br3
iface br3 inet manual
bridge_ports eth4 eth8
bridge_stp off
bridge_fd 0
bridge_maxwait 0
Titre: Tutoriel pour générer des pertes de paquets / latence / gigue avec NetEm
Posté par: Grincheux le 12 août 2011 à 22:39:05
Je vais approfondir NetEm, c'est hard et Linux j'aime pas. Je viens d'installer Ubuntu 11 la semaine dernière, je vais tester.

Un MTU de 1500 ne me semble pas optimum. Le mien en général est de 1442.
Titre: Tutoriel pour générer des pertes de paquets / latence / gigue avec NetEm
Posté par: vivien le 12 août 2011 à 22:58:28
Sur ton ubuntu lance simplement la commande sudo tc qdisc add dev eth0 root netem delay 100ms dans un terminal et tu vas voir que ta latence à pris 100ms de plus.

Le tuto avec les 2 cartes Ethernet c'est si tu souhaite rajouter de la latence (ou des pertes de paquets) à un 2ème PC.

J'ai compris que tu n'aimais pas trop la ligne de commande : ne t’inquiète pas il est possible de s'en passer pour un usage classique de Linux, maintenant cela permet des fonctions avancées (qui généralement n'existent pas avec Windows).
Titre: Tutoriel pour générer des pertes de paquets / latence / gigue avec NetEm
Posté par: Grincheux le 12 août 2011 à 23:04:43
Je ferai des essais ce week-end.
Titre: Tutoriel pour générer des pertes de paquets / latence / gigue avec NetEm
Posté par: corrector le 14 août 2011 à 00:41:55
Je vais approfondir NetEm, c'est hard et Linux j'aime pas.
En quoi si ce n'est pas indiscret?
Titre: Tutoriel pour générer des pertes de paquets / latence / gigue avec NetEm
Posté par: Grincheux le 14 août 2011 à 09:42:14
Je n'aime pas Linux et mes connaissances en réseau / téléphonie sont très loin des votres.
Titre: Tutoriel pour générer des pertes de paquets / latence / gigue avec NetEm
Posté par: bdecagny le 06 septembre 2011 à 16:01:41
FYI

pour ce qui est de la perte de paquet, Netem est effectivement fonctionnel mais peut poser des problèmes si on souhaite avoir un effet un peu plus complexe et maitrisé.
En effet, l'option de correlation est relativement obscure et peu fonctionnelle (même buggée si on écoute certaines personnes sur le net)
Une solution possible est une évolution de Netem qu'un petit groupe a développé nommée NetemCLG.
Cette version est fonctionnelle et permet de générer des bursts de pertes de façon très précise.
Seul inconvéniant : il faut appliquer les patchs aux sources de tc et iproute2 et recompiler un kernel.
OK et testé sur kernel 2.6.32.46

http://netgroup.uniroma2.it/twiki/bin/view.cgi/Main/NetemCLG (http://netgroup.uniroma2.it/twiki/bin/view.cgi/Main/NetemCLG)

Enjoy !!
Titre: Tutoriel pour générer des pertes de paquets / latence / gigue avec NetEm
Posté par: vivien le 16 décembre 2013 à 11:45:00
Perdre des paquets sur l'IP $1 pendant une durée $2 :

Voici un petit script pour supprimer l'intégralité des paquets d'une IP $1 pendant une durée $2
#!/bin/dash
/sbin/iptables -A FORWARD -d $1 -j DROP
/bin/sleep $2
/sbin/iptables -F


Voici un petit script pour supprimer l'intégralité des paquets UDP pendant une durée $1
#!/bin/dash
/sbin/iptables -A FORWARD -p udp -j DROP
/bin/sleep $1
/sbin/iptables -F


Voici un petit script pour supprimer l'intégralité des paquets pendant une durée $1
#!/bin/dash
/sbin/iptables -A FORWARD -j DROP
/bin/sleep $1
/sbin/iptables -F
Titre: Tutoriel pour générer des pertes de paquets / latence / gigue avec NetEm
Posté par: corrector le 16 décembre 2013 à 12:57:50
Attention, ça supprime aussi les autres règles!
Titre: Tutoriel pour générer des pertes de paquets / latence / gigue avec NetEm
Posté par: vivien le 14 mars 2017 à 15:02:28
J'ai un petit souci : la commande iptables -A FORWARD -j DROP ne permet plus de droper les paquets qui passent sur mon pont.

J'ai un PC portable (Ubuntu 16.04.2) avec deux cartes réseaux : enp4s0 et enp9s0
J'ai mis un pont entre ces deux ports : bridge_ports enp4s0 enp9s0

Le flux passe bien dans les deux sens, mais impossible de lui appliquer des règles iptables comme iptables -A FORWARD -j DROP qui devrait bloquer le flux.

# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback

#-------------- Carte Interne
auto enp9s0
iface enp9s0 inet manual

#-------------- Carte Externe
auto enp4s0
iface enp4s0 inet manual

#-------------- BRIDGE 0
auto br0
iface br0 inet static
   address 192.168.1.90
   netmask 255.255.255.0
   gateway 192.168.1.254
   dns-nameservers 192.168.1.254 8.8.8.8
   bridge_ports enp4s0 enp9s0
   bridge_stp off
   bridge_fd 0
   bridge_maxwait 0
Titre: Tutoriel pour générer des pertes de paquets / latence / gigue avec NetEm
Posté par: corrector le 14 mars 2017 à 17:27:58
Pourquoi tu n'utilises pas ebtables?
Titre: Tutoriel pour générer des pertes de paquets / latence / gigue avec NetEm
Posté par: vivien le 16 mars 2017 à 16:26:26
C'est effectivement la solution.

Ce type de script fonctionne bien :
#!/bin/dash
ebtables -A FORWARD  -j DROP
/bin/sleep $1
ebtables -F

Merci.
Titre: Tutoriel pour générer des pertes de paquets / latence / gigue avec NetEm
Posté par: Hugues le 16 mars 2017 à 16:48:38
pourquoi mentionner dash alors que c'est la même chose que sh ?  :)
Titre: Tutoriel pour générer des pertes de paquets / latence / gigue avec NetEm
Posté par: vivien le 16 mars 2017 à 16:56:29
Pour éviter une redirection  ;D

$ ls -l /bin/sh
lrwxrwxrwx 1 root root 4 juil. 28  2016 /bin/sh -> dash

Bref dash est le shell par défaut pour les scripts.
Il est bien plus léger que bash, mais certains scripts nécessitent le vrai bash pour fonctionner.

De mon coté, je mets dash systématiquement, sans quand il y a une incompatibilité et dans ce cas la je rajoute une ligne pour le signifier en haut de mon script.
Titre: Tutoriel pour générer des pertes de paquets / latence / gigue avec NetEm
Posté par: Hugues le 16 mars 2017 à 17:04:19
Ok, c'est pour gagner une microseconde donc  ;D

perso je mets Bash partout, j'ai pas de souci avec les trucs 'lourds' :p
Titre: Tutoriel pour générer des pertes de paquets / latence / gigue avec NetEm
Posté par: vivien le 16 mars 2017 à 18:28:23
Tu perds de la ram, qui pourrait être utilisé pour autre chose, comme accélérer les E/S disque...

C'est justement le but de dash : gagner en ram et perf sur bash, notamment pour les scripts qui appellent de très nombreuses fois bash. (ici, c'est 100% inutile mais pas pour d'autres scripts, comme ceux qui s'exécutent toutes les minutes en crontab)
Titre: Tutoriel pour générer des pertes de paquets / latence / gigue avec NetEm
Posté par: corrector le 17 mars 2017 à 01:59:02
Tu perds de la ram, qui pourrait être utilisé pour autre chose, comme accélérer les E/S disque...

C'est justement le but de dash : gagner en ram et perf sur bash, notamment pour les scripts qui appellent de très nombreuses fois bash. (ici, c'est 100% inutile mais pas pour d'autres scripts, comme ceux qui s'exécutent toutes les minutes en crontab)
Tu veux gagner en performance, pourquoi utiliser une bouse de langage de script?
Titre: Tutoriel pour générer des pertes de paquets / latence / gigue avec NetEm
Posté par: Max284 le 08 janvier 2019 à 15:04:05
Quel interêt de générer des pertes de paquets ou des lenteurs ?
Si c'est pour limiter la bande passante il existe le proxy pour ça  ;)
Titre: Tutoriel pour générer des pertes de paquets / latence / gigue avec NetEm
Posté par: vivien le 08 janvier 2019 à 15:55:23
Pour réaliser des tests, simuler un réseau.

Exemple concret : tu prends les 4 FAI, tu injectes les mêmes pertes de paquets avec NetEm et tu regarde la qualité de la TV.
Certains vont avoir une qualité parfaite, et pour d'autre il ne sera pas possible de regarder la TV.
Il existe plusieurs mécanisme de correction d'erreur qui ne permettent pas de corriger le même nombre d'erreur et certains opérateurs n'en ont aucun.

Autre exemple : Windows 10 qui n'active pas les timestamps est très sensible à la gigue. Si les paquets sont dans le désordre, il est possible d'avoir un débit 10 fois plus élevé sur un client Linux (timestamps activé). Pour faire des tests et pouvoir faire des comparaisons, il est nécessaire de simuler les problèmes.
Titre: Tutoriel pour générer des pertes de paquets / latence / gigue avec NetEm
Posté par: Max284 le 08 janvier 2019 à 17:04:14
Ah d'accord, merci pour ces précisions.
Titre: Tutoriel pour générer des pertes de paquets / latence / gigue avec NetEm
Posté par: moudi235 le 13 février 2019 à 01:48:20
bonjour vivien
jai installer iproute2 & wireshark & bridge
ma question comment acceder au netem pour creer un reseau simple (2 pc avec liaison sans fil)
je veut tester une transmission de video sur cette ligne
merci
Titre: Tutoriel pour générer des pertes de paquets / latence / gigue avec NetEm
Posté par: vivien le 13 février 2019 à 06:56:01
Cela ne fonctionne que sur des interfaces Ethernet.

Pour utiliser netem avec du Wi-Fi, il faut un point d'accés externe connecté en Ethernet au PC linux.

Ces points d’accès peuvent se configurer soit en point d'accés classique, soi en client.

Ensuite la configuration du bridge se fait dans ce fichier : (attention pour Ubuntu 18.04 il faut installer en plus ifupdown : apt install ifupdown)

Configuration réseau :
Dans un terminal, taper la commande sudo nano -w /etc/network/interfaces
Cela permet d'éditer le fichier de configuration réseau en tant que super-utilisateur.
Le fichier est vide, car la configuration est laissée a un outil graphique plus simple. Pour faire un pont, on est obligé de passer par cet configuration en fichier texte.[/size]

# The loopback network interface
auto lo
iface lo inet loopback

#-------------- ETH 0
auto eth0
iface eth0 inet manual

#-------------- ETH 1
auto eth1
iface eth1 inet manual

#-------------- BRIDGE 0

auto br0
iface br0 inet manual
# Si vous avez besoin d'internet sur le PC bridge : commentez la précédente ligne et enlevez le commentaire des 5 lignes suivantes :
#iface br0 inet static
   #address 192.168.1.90
   #netmask 255.255.255.0
   #gateway 192.168.1.254
   #dns-nameservers 192.168.1.254 8.8.8.8
   bridge_ports eth0 eth1
   bridge_stp off
   bridge_fd 0
   bridge_maxwait 0
Titre: Tutoriel pour générer des pertes de paquets / latence / gigue avec NetEm
Posté par: moudi235 le 30 avril 2019 à 19:52:11
bonjour vivien
je veux quelque explication et abréviation pour ces symboles (les ligne commande de netem tc, qdisc dev ...etc)
et pour cette commande de perte :
sudo tc qdisc add dev eth1 root netem loss 5% 25% 
sa veut dir quoi exactement ?
merci
Titre: Tutoriel pour générer des pertes de paquets / latence / gigue avec NetEm
Posté par: vivien le 30 avril 2019 à 20:32:29
La commande pour créer une règle : sudo tc qdisc add
Pour changer une règle : sudo tc qdisc change
Pour remplacer une règle : sudo tc qdisc replace
Pour supprimer une règle : sudo tc qdisc delete

il faut ensuite spécifier l'interface réseau : dev eth0
Si ta carte réseau est enp3s0 : dev enp3s0

Mettre 1% de perte de paquet : root netem loss 1%

Mettre 100ms de latence : root netem delay 100ms
Titre: Tutoriel pour générer des pertes de paquets / latence / gigue avec NetEm
Posté par: moudi235 le 30 avril 2019 à 20:48:43
Merci beaucoup pour ces informations

Ilya cette commande
sudo tc qdisc add dev eth1 root netem loss 5% 25% 
Qui gere aussi la perte, mais jai pas compris exactement le travaille de cette commande
Jai lu un tutoriel qui dit :
This will cause 5% of packets to be lost, and each successive probability depends by a quarter
on the last one.
Prob(n) = .25 * Prob(n­1) + .75 * Random
Titre: Tutoriel pour générer des pertes de paquets / latence / gigue avec NetEm
Posté par: moudi235 le 07 mai 2019 à 02:53:26
tu ma compris Vivien , que je veut dire
Titre: Tutoriel pour générer des pertes de paquets / latence / gigue avec NetEm
Posté par: vivien le 07 mai 2019 à 09:10:56
Oui, mais je n'ai pas la réponse.

Pour faire des bursts de perte de paquets, je me suis débrouillé autrement : un script qui va bloquer le flux avec iptables pendant un nombre de millisecondes que je passe en argument.
Titre: Tutoriel pour générer des pertes de paquets / latence / gigue avec NetEm
Posté par: moudi235 le 08 mai 2019 à 00:52:34
merci beacoup vivien
Titre: Tutoriel pour générer des pertes de paquets / latence / gigue avec NetEm
Posté par: Harvester le 13 juin 2019 à 11:25:12
Bonjour Vivien, aurais tu le même genre de commandes mais pour simuler un débit réduit (brider un flux à 1 Ko/sec par, pour simuler des liens bas débit) ? Merci à toi !
Titre: Tutoriel pour générer des pertes de paquets / latence / gigue avec NetEm
Posté par: Nh3xus le 13 juin 2019 à 12:29:12
Tu peux tester le programme "Trickle" sous Linux
Titre: Tutoriel pour générer des pertes de paquets / latence / gigue avec NetEm
Posté par: vivien le 17 juillet 2020 à 09:52:00
On me signale qu'il ne semble pas possible de cumuler plusieurs types de pertes appliqués simultanément sur une même interface :

Citer
En fait j'ai essayé ca:
tc qdisc del dev ens256 root
tc qdisc add dev ens256 root handle 1: prio
tc qdisc add dev ens256 parent 1:1 handle 10: netem delay 100ms loss 50%
tc qdisc add dev ens256 parent 1:2 handle 20: netem delay 200ms loss 20%


et il se trouve qu'on observe que le loss 20% sur les 2 interfaces
le loss 50% est comme "écrasé" par la 2eme commande.

mais on voit bien le double delay avec des valerus différente
Titre: Tutoriel pour générer des pertes de paquets / latence / gigue avec NetEm
Posté par: vivien le 29 mai 2021 à 22:15:43
Rajouter de la latence au démarrage d'une machine :
sudo nano /etc/cron.d/latence
Placer la commande cron suivante :

# Ajout de 10ms de latence sur l'interface enp1s0
@reboot root /usr/sbin/tc qdisc add dev enp1s0 root netem delay 10ms
Note: le fichier /etc/cron.d/latence n'a pas besoin d'être executable