Cette page présente un projet d'architecture de simulation de latence réseau.
Objectif
L'objectif est de vérifier l'utilisabilité de nos services réseau dans des environnements réels, donc typiquement sur des lignes à faible débit, haute latence et avec perte de paquets.
Principe
Le principe est de préparer une machine qui simulera ces conditions réseau et que l'on placera entre le poste client de test et le réseau à atteindre.
Implémentation
On a besoin d'une machine avec deux cartes réseau, sur laquelle on installe une Debian Squeeze et que l'on configure en pont Ethernet :
# 1ère interface, reliée vers l'extérieur auto eth0 iface eth0 inet manual # 2ème interface, reliée vers le ou les postes clients auto eth1 iface eth1 inet manual # interface du pont, permettant aussi de donner une adresse IP à cette machine auto br0 iface br0 inet dhcp bridge_ports eth0 eth1 bridge_stp off bridge_fd 1 bridge_maxwait 0
On y installe le script lagfactory.sh écrit par Éric Leblond :
sudo aptitude install git git clone https://github.com/regit/lagfactory sudo cp -a lagfactory/lagfactory.sh /usr/local/sbin/lagfactory sudo chmod a+rx /usr/local/sbin/lagfactory
Il se base sur le module noyau netem servant à tester des situations réseau, qui est disponible par défaut dans les distributions Linux les plus connues (Debian, Ubuntu, CentOS, Fedora, …).
Éditer le script /usr/local/sbin/lagfactory pour y mettre les valeurs suivantes :
IFACE="eth0 eth1" TARGET="0.0.0.0/0" DELAY="500" VAR="100" BANDWITH="200kbit" PERCENTLOSS="2%"
Lancer la simulation : lagfactory start
Pour l'arrêter : lagfactory stop