Utilisation avancée de Iperf

Date: 1/06/2007 | Catégories: Reseau | Tags: ,,,

Suite à ce premier article décrivant les fonctions de base, voici un complément d'informations sur l'utilisation du logiciel Iperf.

Changement de la taille des buffers

Par défaut, les buffer d'écriture et de lecture sont the 8000 octets. On peut utiliser la fonction '-l' pour modifier cette taille (taille minimum: 12 octets).

Par exemple, pour generer des paquets UDP (mais cela fonctionne aussi avec le protocole TCP) avec des buffers (in/out) de 40 octets.

Serveur:

# iperf -s -u -l 40

Client:

# iperf -c <adresse IP client> -u -l 40

Remarque: cela a pour effet de produire sur le réseau des paquets UDP de 40 octets (en tête UDp inclus), ce qui correspond à la moyenne de la taille des paquets utilisés avec les protocoles de VoIP de type SIP ou H.323).

Afficher la taille du MTU

Il est parfois utile de connaître la taille du MTU sur un chemin réseau (par l'exemple pour customize son stack IP en fonction de sa connection Internet). Iperf permet, grâce à l'option '-m' d'afficher cette valeur dans le rapport.

Serveur:

# iperf -s -m

Client:

# iperf -c <adresse IP client> -m

------------------------------------------------------------
Client connecting to 192.168.29.1, TCP port 5001
TCP window size: 65.0 KByte (default)
------------------------------------------------------------
[ 3] local 192.168.29.157 port 51850 connected with 192.168.29.1 port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0-10.0 sec 111 MBytes 93.0 Mbits/sec
[ 3] MSS size 1448 bytes (MTU 1500 bytes, ethernet)

Il est alors possible de tester le réseau en fixant cette valeur avec l'option '-M':

Serveur:

# iperf -s -M 40

Client:

# iperf -c <adresse IP client> -M 40

Faire un test bi-directionnel en UDP

Par défaut, lorsque l'on utilise le protocole UDP (option '-u'), les flux vont du client vers le serveur. Pour faire un test bi-directionnel (c'est à dire avec 2 flux simultanés, client->serveur et serveur->client), il suffit d'utiliser l'option '-d' au niveau du client. Si vous souhaitez que ce test se fasse de manière non simultané, il faut utiliser l'option '-r' en lieu et place de l'option '-d'.

# iperf -s -u

Client:

# iperf -c <adresse client> -u -d
... Client report:
[ 5] 0.0-10.0 sec 1.25 MBytes 1.05 Mbits/sec 13.697 ms 0/ 893 (0%)
[ 7] Server Report:
[ 7] 0.0-10.0 sec 1.25 MBytes 1.05 Mbits/sec 0.027 ms 0/ 891 (0%)

Faire un test avec plusieurs flux

Si vous souhaitez que Iperf génére non pas 1 seul flux réseau entre le client et le serveur mais plusieurs. Il faut fixer le nombre avec l'option '-P'. Par exemple pour génerer 5 flux UDP simultanés entre le client et le serveur, il faut utiliser les commandes suivantes:

Serveur:

# iperf -s -u

Client:

# iperf -c <adresse IP client> -u -P 5

Taguer le champs Diffserv

Si votre réseau est compatible avec la QoS Diffserv, vous pouvez taguer le champs DSCP les paquets générés par Iperf  en utilisant l'option -S:

# iperf -c <adresse IP client> -u -S 0x99

Changer le port d'écoute par défaut

Par défaut, le port d'écoute du serveur est le 5001 (UDP ou TCP). Pour le modifier (par exemple si vous devez traverser un Firewall ou vous n'avez pas la main, il faut utiliser l'option '-p' sur le serveur et le client.

Par exemple pour utiliser le port HTTP (80):

Serveur:

# iperf -s -p 80

Client:

# iperf -c <adresse IP client> -p 80