Auteur Sujet: Iperf client/serveur sur le même PC  (Lu 12846 fois)

0 Membres et 1 Invité sur ce sujet

sygirard

  • Abonné FAI autre
  • *
  • Messages: 6
Iperf client/serveur sur le même PC
« le: 08 janvier 2016 à 15:50:49 »
Bonjour,

dans le cadre de l'un de nos projet, on nous demande de mettre en place un banc de test iperf.

Ce dernier se compose d'un PC de contrôle (qu'on nommera PCtrl) où Iperf serveur et Iperf client tourneront.
Ce PC aura deux cartes réseau, avec chacune une IP fixe de configurée.

Il y aura deux PC portables (P1 et P2), possédant un port ethernet et un port Wifi.
On aura configuré une connexion de pont entre ces deux ports et on lui aura configuré une IP fixe.

On relie P1 sur la carte réseau 1 du PCtrl et P2 sur la carte réseau 2 du PCtrl.

Le flux de données passe donc de PCtrl vers P1 par câble, puis de P1 vers P2 via Wifi, puis de P2 vers PCtrl par câble.

Est-il possible de faire tourner Iperf serveur et iperf Client sur le même PC ?
Si oui, y a-t-il des paramètres de configuration Iperf me permettant de garantir un bon fonctionnement de cette manip ?

Je précise que l'on aura bien éteint les firewall, que les route IP seront correctement paramétrées, etc ...

Tous les PC seront sous Windows 7.

Merci
Sylvain

vivien

  • Administrateur
  • *
  • Messages: 47 085
    • Twitter LaFibre.info
Iperf client/serveur sur le même PC
« Réponse #1 le: 08 janvier 2016 à 17:53:53 »
Oui, pas de problème pour mettre iperf en client et en serveur sur le même PC, à condition d'utiliser des ports différents.

Pour spécifier un port, c'est l'option -p que tu rajoutes à la ligne de commande.

A noter que Windows 7 est connu pour avoir des pb de perf pour des latences < 10ms et des débits > 80 Mb/s en TCP, à cause d'une Rwin limitée à 64 Ko dans certains cas quand la latence est < 10ms.

iPerf2 à des pb de perf pour les très haut débit, je conseille vivement iperf3 en TCP.
En UDP, iPerf3 a un mode de fonctionnement bien différent de iPerf2 (plus possibilité de faire de DDOS avec iperf3) mais qui peut poser pb pour des tests => Je conseille iperf2 pour les tests UDP.

Darklight

  • Abonné Free adsl
  • *
  • Messages: 648
  • Free non-dégroupé (77)
Iperf client/serveur sur le même PC
« Réponse #2 le: 08 janvier 2016 à 21:58:44 »
Rien à voir mais la compatibilité de Iperf3 laisse à désirer : sur le site la version binaire pour Windows fonctionne entre client et serveur mais l'installation du paquet pour Linux (Debian 7) échoue, donc pas moyen de faire le test pour le même serveur, et un apt install iperf n'utilise pas le bon port, je suppose que ça installe pas la bonne version mais iperf3 n'est pas reconnu par le gestionnaire apt.

Comment faire?

BadMax

  • Client Free adsl
  • Expert
  • *
  • Messages: 3 481
  • Malissard (26)
Iperf client/serveur sur le même PC
« Réponse #3 le: 08 janvier 2016 à 22:44:26 »
Faire tourner iperf client et serveur en effet ça marche.

Mais pas comme vous le souhaitez. En effet, si le but est de faire passer le flux à travers PC1 et PC2, il faut bypasser le routage local de linux : le iperf client ira directement se connecter sur iperf serveur sans passer par PC1 et PC2.

Le contournement serait de faire tourner le client ou le serveur dans un namespace différent pour l'une des cartes réseaux. Cherchez "linux namespace" et y'a plus qu'à :)

vivien

  • Administrateur
  • *
  • Messages: 47 085
    • Twitter LaFibre.info
Iperf client/serveur sur le même PC
« Réponse #4 le: 08 janvier 2016 à 23:42:43 »
Effectivement, je n'avais pas compris que le but était que le même flux sorte et rentre dans le même PC.

Le plus simple, pour répondre à la problématique est peut être de mettre un second PC virtuel sur le PC1 avec une VirtualBox.

Sinon, pour linux :
- Installation de iPerf2 : sudo apt install iperf
- Installation de iPerf3 : sudo apt install iperf3

Debian 7 stable propose la version 3.0.7 de iPerf3. Pour installer la version 3.0.11, il faut aller chercher le paquet en testing ou unstable.
Autre solution plus simple, suivre le tutoriel sur https://iperf.fr/iperf-download.php#more-recent

Les paquets installés par le tutoriel, sont ceux fourni par le mainteneur iPerf3 de Debian, Raoul Gunnar Borenius => https://qa.debian.org/developer.php?login=borenius@dfn.de

Darklight

  • Abonné Free adsl
  • *
  • Messages: 648
  • Free non-dégroupé (77)
Iperf client/serveur sur le même PC
« Réponse #5 le: 09 janvier 2016 à 01:14:04 »
Bon j'essayerai ça sur mon Linux demain je te tiens au courant. Sinon c'est vraiment bien comme logiciel et très simple pour tester son réseau, un seul paramètre à rentrer dans la commande suffit, c'est un poil plus dur que faire un wget!  ;)

sygirard

  • Abonné FAI autre
  • *
  • Messages: 6
Iperf client/serveur sur le même PC
« Réponse #6 le: 11 janvier 2016 à 11:51:08 »
Si j'en reviens à mon problème, pourquoi ne peut-on pas lancer un serveur et un client sur un même PC avec deux cartes réseaux distinctes ?

Parce que le flux de test entre et sort par le même port (5001 par défaut) ?

J'ai vu une option : -B Host

Cette option ne permet-elle pas justement de choisir par quelle carte réseau le flux rentre (serveur) et sort (client) en y donnant l'adresse IP de la carte ?

Ou alors j'ai pas tout compris à leur documentation.




corrector

  • Invité
Iperf client/serveur sur le même PC
« Réponse #7 le: 11 janvier 2016 à 13:33:05 »
Je ne vois pas bien ce que cherches à faire.

vivien

  • Administrateur
  • *
  • Messages: 47 085
    • Twitter LaFibre.info
Iperf client/serveur sur le même PC
« Réponse #8 le: 11 janvier 2016 à 13:47:13 »
Ce qui pose problème et sous réserve que j'ai bien compris, c'est que tu cherche a ce que ton PC initie une connexion TCP avec lui même mais en sortant par le réseau (sans faire de bouclage interne)

Pourquoi ne pas lancer un VM afin d'éviter que le même PC initie une connexion vers lui même, si c'est bien ton besoin ?

Sinon cela va donner ça :

$ iperf3 -c 192.168.1.18
Connecting to host 192.168.1.18, port 5201
[  4] local 192.168.1.18 port 40246 connected to 192.168.1.18 port 5201
[ ID] Interval           Transfer     Bandwidth       Retr  Cwnd
[  4]   0.00-1.00   sec  4.71 GBytes  40.4 Gbits/sec    0   1.25 MBytes       
[  4]   1.00-2.00   sec  4.46 GBytes  38.3 Gbits/sec    0   1.25 MBytes       
[  4]   2.00-3.00   sec  4.48 GBytes  38.5 Gbits/sec    0   1.25 MBytes 


40 Gb/s, car cela reste un transfert en interne dans mon PC

corrector

  • Invité
Iperf client/serveur sur le même PC
« Réponse #9 le: 11 janvier 2016 à 14:02:11 »
Une connexion vers l'adresse locale passe toujours par le périphérique de bouclage "loopback".

kgersen

  • Modérateur
  • Abonné Bbox fibre
  • *
  • Messages: 9 078
  • Paris (75)
Iperf client/serveur sur le même PC
« Réponse #10 le: 11 janvier 2016 à 16:33:14 »
Pourquoi ne pas lancer un VM afin d'éviter que le même PC initie une connexion vers lui même, si c'est bien ton besoin ?
attention: le seul moyen de faire ca est de dédier une des 2 cartes réseaux a une VM. Il ne faut pas que la carte réseau soit paramétrée en IP sur l’hôte.
si non ca fera juste du traffic hote<->VM en interne sans sortir de la machine.

La prochaine version de Windows Server (2016) supportera les namespace et les containers. On pourra donc faire comme sur Linux et partitionner. En attendant il n'y a pas trop de choix:

- VM sur une carte réseau dédiée
ou
- système de NAT dans un PC1 ou PC2 pour avoir 2 réseaux différents: au lieu de faire une connexion de pont dans PC1 ou PC2 on fait un NAT entre les 2 réseaux. Mais il faut s'assurer avant que la performance CPU ne va pas fausser les résultats.

Windows 7 supporte de base du NAT avec "netsh interface portproxy".

Exemple sur PC1:

PC2 va faire donc une connexion de pont comme avant.
sur PC1 on ne fait pas de pont, on configure 2 réseaux IP , un coté PCtrl (lan), un coté PC2 (wifi)
Sur PC1 on peut donc joindre PCtrl via 2 IP différentes.

IP_PC1_LAN = adresse LAN de PC1 (donc adresse relié a PCtrl)
IP_PCtrl_LAN2 = adresse LAN de PCtrl vers PC2

la commande a saisir sur PC1:

netsh interface portproxy add v4tov4 listenport=5201 listenaddress=IP_PC1_LAN connectaddress=IP_PCtrl_LAN2 connectport=5201 protocol=tcp

=> PC1 va écouter sur le port 5201 tcp et renvoyer tout ce qui y arrive sur IP_PCtrl_LAN2 (= PCtrl via wifi via PC2).

sur PCtrl on lance un serveur IPerf en écoute:
iperf3 -s   (on peut limiter l'IP d'écoute avec -B si on souhaite)
et sur PCtrl on lance un client IPerf vers PC1 (et via le portproxy ca nous revenir via PC2).
iperf3 -c IP_PC1_LAN -i 1
Je n'ai pas tester mais "ca devrait marcher" sauf oubli/erreur de ma part. Le débit sera éventuellement limité  par le CPU de PC1 mais bon le wifi risque d’être le maillon lent avant (surveiller quand meme la conso CPU de PC1).

portproxy fonctionne aussi en IPv6 et v4tov6 et v6tov4. mais pas en UDP.

pour supprimer la redirection :
netsh interface portproxy delete v4tov4 listenport=5201 listenaddress=IP_PC1_LANou carrèment:
netsh interface portproxy reset
pour voir la ou les redirections actives:
netsh interface portproxy show all
« Modifié: 12 janvier 2016 à 02:04:53 par kgersen »

sygirard

  • Abonné FAI autre
  • *
  • Messages: 6
Iperf client/serveur sur le même PC
« Réponse #11 le: 12 janvier 2016 à 10:32:27 »
Ce que je cherche à faire ...

Aujourd'hui, on a un banc de test composé de :
    - 2 PC fixes (client iperf, serveur iperf)
    - 2 PC portables (avec un pont effectué entre le port ethernet et le port Wifi), ou autre appareils (téléphone, bornes wifi, etc ....)
Le but du banc de test est d'obtenir les performances réseau des appareils (2 portables ou autres appareils) en fonction de certaines contraintes
imposés sur le Wifi (ou autre techno de communication selon appareil testé).

Notre client voudrait réaliser la même manipulation, mais il ne veut qu'un seul PC fixe (iperf client et serveur).

En schéma, voir pièce jointe.