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

Projet/LagFactory (dernière édition le 2012-11-14 00:16:27 par JeanChristopheAndré)