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 0On 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