Auteur Sujet: Scripts pour redémarrer régulièrement iPerf3  (Lu 4660 fois)

0 Membres et 1 Invité sur ce sujet

vivien

  • Administrateur
  • *
  • Messages: 47 084
    • Twitter LaFibre.info
Scripts pour redémarrer régulièrement iPerf3
« le: 31 août 2015 à 10:26:33 »
Scripts pour redémarrer régulièrement iPerf3 (en tant que serveur)

Les serveurs iPerf3 publics sont fréquemment indisponibles. Il y a des utilisateurs qui lancent des tests trés long avec iperf, mais aussi des plantages du serveur.

$ iperf3 -c iperf.he.net
iperf3: error - the server is busy running a test. try again later

$ iperf3 -c ping.online.net
iperf3: error - unable to receive control message: Connection reset by peer


La solution que j'ai trouvé est la suivante :
- Ecouter sur 9 ports TCP en // pour permettre de faire un test sur un autre port si le premier est occupé ou planté
- Kill de tous les serveurs iperf toutes les 30 minutes.

Voici le script que j'utilise, auriez-vous des idées pour faire  la chose de façon plus propre ?

Le but est de mettre ensuite le script à disposition de tous, sur la page https://iperf.fr/iperf-servers.php

Fichier /etc/rc.local pour le démarrage initial :
/home/scripts/restart_iperf.sh
Crontab, pour le ré-démarrage toutes les 30 minutes :
# Redémarrer IPERF3
*/30 * * * * /home/scripts/restart_iperf.sh >/dev/null 2>&1

restart_iperf.sh :
#!/bin/dash
/bin/sleep 10
/usr/bin/killall iperf3
/bin/sleep 0.1
/usr/bin/killall -9 iperf3
/bin/sleep 0.1
if [ `ps -C iperf3 | wc -l` = "1" ]
then
  /usr/bin/sudo -u nobody /usr/bin/iperf3 -s -p 5200 -D >/dev/null 2>&1
  /usr/bin/sudo -u nobody /usr/bin/iperf3 -s -p 5201 -D >/dev/null 2>&1
  /usr/bin/sudo -u nobody /usr/bin/iperf3 -s -p 5202 -D >/dev/null 2>&1
  /usr/bin/sudo -u nobody /usr/bin/iperf3 -s -p 5203 -D >/dev/null 2>&1
  /usr/bin/sudo -u nobody /usr/bin/iperf3 -s -p 5204 -D >/dev/null 2>&1
  /usr/bin/sudo -u nobody /usr/bin/iperf3 -s -p 5205 -D >/dev/null 2>&1
  /usr/bin/sudo -u nobody /usr/bin/iperf3 -s -p 5206 -D >/dev/null 2>&1
  /usr/bin/sudo -u nobody /usr/bin/iperf3 -s -p 5207 -D >/dev/null 2>&1
  /usr/bin/sudo -u nobody /usr/bin/iperf3 -s -p 5208 -D >/dev/null 2>&1
  /usr/bin/sudo -u nobody /usr/bin/iperf3 -s -p 5209 -D >/dev/null 2>&1
fi

BadMax

  • Client Free adsl
  • Expert
  • *
  • Messages: 3 481
  • Malissard (26)
Scripts pour redémarrer régulièrement iPerf3
« Réponse #1 le: 31 août 2015 à 10:41:20 »
Modifier le code de iperf pour ajouter une option de sortie après chaque test. Ensuite tu scripts:

while [ 1 ]
do
 /usr/bin/sudo -u nobody /usr/bin/iperf3 -s >/dev/null 2>&1
done

vivien

  • Administrateur
  • *
  • Messages: 47 084
    • Twitter LaFibre.info
Scripts pour redémarrer régulièrement iPerf3
« Réponse #2 le: 27 octobre 2015 à 15:12:24 »
Suite à des abus (il est facile de faire un DDOS avec Iperf sur sa propre IP et avec des débits de 10 Gb/s cela peut impacter beaucoup plus qu'un client, mais un NRA entier ou en hébergement plusieurs baies de serveurs), j'ai désactivé l'UDP.

Voici les 2 règles à rajouter dans le fichier /etc/rc.local :
(je suppose que le serveur n'a pas de script iptables)
/sbin/iptables -A INPUT -p udp --dport 5200:5209 -j DROP
/sbin/ip6tables -A INPUT -p udp --dport 5200:5209 -j DROP
/home/vgu/scripts/restart_iperf.sh