wiki/HowtoIperf.md

98 lines
3.2 KiB
Markdown
Raw Normal View History

2017-09-20 14:53:40 +02:00
---
categories: network
title: Howto Iperf
...
[Iperf](https://iperf.fr/) est un outil de diagnostic réseau permettant de mesurer le débit entre deux machines.
## Principe
Iperf fonctionne en mode client-serveur : sur les deux machines entre lesquelles le débit doit être mesuré, l'un est serveur, l'autre est client.
Le débit peut être mesuré différemment selon que l'on passe par UDP ou TCP : en TCP, le débit sera aussi élevé que la liaison de bout en bout le permet, alors qu'en UDP, le client doit choisir quel débit émettre ou recevoir. Le mode UDP affiche également un rapport comprenant la gigue et les paquets perdus. Par défaut, le mode TCP et le port 5001 sont utilisés.
2017-09-20 14:53:40 +02:00
2017-09-20 18:09:17 +02:00
## Installation
Sous Debian :
~~~
# apt install iperf
~~~
Sous OpenBSD :
~~~
# pkg_add iperf
~~~
Note : le paquet `iperf` va jusqu'à la version 2.0. Pour avoir la version 3, il faut installer le paquet `iperf3` qui supporte notamment IPv6 ou l'option `-J` pour obtenir une sortie en json.
2017-09-20 14:53:40 +02:00
## Utilisation
### Serveur
Lancer en mode serveur TCP :
~~~
$ iperf -s
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 85.3 KByte (default)
------------------------------------------------------------
~~~
Lancer en mode serveur UDP et en écoute sur le port 9090 :
~~~
$ iperf -su -p 9090
------------------------------------------------------------
Server listening on UDP port 9090
Receiving 1470 byte datagrams
UDP buffer size: 208 KByte (default)
------------------------------------------------------------
~~~
### Client
Se connecter à un serveur avec les paramètres par défaut (TCP, port 5001, unidirectionnel, transmission pendant 10 secondes) :
~~~
$ iperf -c 192.0.2.2
------------------------------------------------------------
Client connecting to 192.0.2.2, TCP port 5001
TCP window size: 85.0 KByte (default)
------------------------------------------------------------
[ 3] local 192.0.2.1 port 44246 connected with 192.0.2.2 port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0-10.0 sec 209 MBytes 175 Mbits/sec
~~~
Se connecter en UDP, port 9090 :
~~~
$ iperf -c 192.0.2.2 -u -p 9090
~~~
Par défaut en UDP, une bande passante de **1Mbit/s** sera utilisée. Il faut préciser la bande passante voulue :
2017-09-20 14:53:40 +02:00
~~~
$ iperf -c 192.0.2.2 -u -b 100m
------------------------------------------------------------
Client connecting to 192.0.2.2, UDP port 5001
Sending 1470 byte datagrams
UDP buffer size: 208 KByte (default)
------------------------------------------------------------
[ 3] local 192.0.2.1 port 47692 connected with 192.0.2.2 port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0-10.0 sec 120 MBytes 101 Mbits/sec
[ 3] Sent 85471 datagrams
[ 3] Server Report:
[ 3] 0.0-10.0 sec 120 MBytes 100 Mbits/sec 0.022 ms 0/85470 (0%)
[ 3] 0.0-10.0 sec 1 datagrams received out-of-order
~~~
Autres options utiles :
2017-09-20 18:09:17 +02:00
* `-i n` Afficher un rapport toutes les n secondes (en plus du rapport final). Exemple : -i 5
* `-t n` Effectuer la transmission de données pendant n secondes. Exemple : -t 30
2017-09-20 17:39:06 +02:00
* `-d` Faire une transmission bidirectionnelle simultanément
* `-r` Faire une transmission bidirectionnelle séparément