Auteur Sujet: Net-test: fichiers de différente taille, pour tester son débit (inclus 5GMark)  (Lu 1112 fois)

0 Membres et 1 Invité sur ce sujet

vivien

  • Administrateur
  • *
  • Messages: 43 044
    • Twitter LaFibre.info
Il s'agit de mettre en place des fichiers de différente taille, utilisés pour tester son débit, comme sur https://appliwave.testdebit.info/ ou https://bouygues.testdebit.info/
Afin d'avoir de hautes performances, les fichiers sont dans un ramdisque.

Ce tutoriel inclut également tout le nécessaire pour que le serveur devienne un serveur officiel de QoSi / MOZARK, l'éditeur de 5GMark.

Tutoriel testé avec Ubuntu version 20.04 et 22.04

Pré-requis :
- Base: Installation et sécurisation d'un serveur Ubuntu (PHP est nécessaire pour le script d'upload de QoSi)
- Base: Installation et sécurisation d'Apache2




1/ Installation de fichiers de test de débit

sudo -s
apt install lz4 liblz4-1

liblz4-1 est une dépendance pour décompresser le fichier. LZ4 a été retenu car c'est l'algorithme qui permet d'voir une décompression très rapide, l’utilisation du CPU est 10 fois plus faible que gzip pour un ratio de compression équivalent.

adduser net-test --disabled-login --gecos net-test
chmod 755 /home/net-test
cd /home/net-test


Mise en place des fichiers qui ne sont pas dans le ramdisque :

wget -O /home/net-test/web.tar.gz https://soft.lafibre.info/download/web/net-test/web.tar.gz
tar -xvzf web.tar.gz
chown www-data:www-data /home/net-test/web
wget -O /home/net-test/ul.tar.gz https://soft.lafibre.info/download/web/net-test/ul.tar.gz
tar -xvzf ul.tar.gz
chown www-data:www-data /home/net-test/ul
wget -O /home/net-test/videos.tar.gz https://test.5gmark.com/videos.tar.gz
tar -xvzf videos.tar.gz
chown www-data:www-data /home/net-test/videos


Téléchargement du logo de l'opérateur de 100 pixels de hauteur :


vivien

  • Administrateur
  • *
  • Messages: 43 044
    • Twitter LaFibre.info
Net-test: fichiers de différente taille, utilisés pour tester son débit
« Réponse #1 le: 14 octobre 2021 à 09:29:11 »
2/ Création du ramdique et télécharger le fichier qui le remplira

mkdir -p /home/net-test/tmpfs
chmod 777 /home/net-test/tmpfs
echo "# RamDisque pour Net-test" >> /etc/fstab


1/ Serveurs avec 32Go de ram (ou plus) : Hébergement en ramdisque de 22 Go qui sera utilisé à 59%
echo "tmpfs   /home/net-test/tmpfs    tmpfs   defaults,size=22G    0 0" >> /etc/fstab
wget -O /home/net-test/net-test.tar.lz4 https://soft.lafibre.info/download/web/net-test/net-test_13815m.tar.lz4


2/ Serveurs avec 8Go de ram (ou plus) : Hébergement en ramdisque de 6 Go qui sera utilisé à 60%
echo "tmpfs   /home/net-test/tmpfs    tmpfs   defaults,size=6G    0 0" >> /etc/fstab
wget -O /home/net-test/net-test.tar.lz4 https://soft.lafibre.info/download/web/net-test/net-test_3815m.tar.lz4


Vérification :
nano /etc/fstab
mount -a
permet de monter tous les systèmes de fichiers déclarés dans le fichier /etc/fstab.
=> Vérifier l'absence d'erreur.


net-test_13815m.tar.lz4 : 13,815 Go Tous les fichiers soit 1 de 10 Go et 3 de chaque taille en-dessous + fichiers QoSi (512-rand.png + 50Mi-rand.zip + 250Mi-rand.zip)

10000000000 10G.zip
 1000000000 1G-rand.zip
 1000000000 1G-zero.zip
 1000000000 1G.zip
  262144000 250Mi-rand.zip
  100000000 100M-rand.zip
  100000000 100M-zero.zip
  100000000 100M.zip
   52428800 50Mi-rand.zip
   50000000 50M-rand.zip
   50000000 50M-zero.zip
   50000000 50M.zip
   10000000 10M-rand.zip
   10000000 10M-zero.zip
   10000000 10M.zip
    5000000 5M-rand.zip
    5000000 5M-zero.zip
    5000000 5M.zip
    1000000 1M-rand.zip
    1000000 1M-zero.zip
    1000000 1M.zip
     500000 500k.jpg
     500000 500k-rand.jpg
     500000 500k-zero.jpg
     100000 100k.jpg
     100000 100k-rand.jpg
     100000 100k-zero.jpg
      50000 50k.jpg
      50000 50k-rand.jpg
      50000 50k-zero.jpg
      10000 10k.jpg
      10000 10k-rand.jpg
      10000 10k-zero.jpg
       5000 5k.jpg
       5000 5k-rand.jpg
       5000 5k-zero.jpg
       1000 1k.jpg
       1000 1k-rand.jpg
       1000 1k-zero.jpg
        512 512-rand.png
        500 500.png
        500 500-rand.png
        500 500-zero.png
        100 100.png
        100 100-rand.png
        100 100-zero.png
         50 50.gif
         50 50-rand.gif
         50 50-zero.gif
         10 10.exe
         10 10-rand.exe
         10 10-zero.exe
          5 5.exe
          5 5-rand.exe
          5 5-zero.exe
          1 1.exe
          1 1-rand.exe
          1 1-zero.exe
          0 0.exe
          0 0-rand.exe
          0 0-zero.exe

net-test_3815m.tar.lz4 : 3,815 Go Idem net-test_13762m.tar.lz4, sans le fichier de 10 Go

net-test_1415m.tar.lz4 : 1,415 Go 5 fichiers "rand" uniquement : 1 Go , 100 Mo + fichiers Arcep/QoSi (512-rand.png + 50Mi-rand.zip + 250Mi-rand.zip) + sha256sum.txt

net-test_1166m.tar.lz4 : 1,166 Go décompressé, seulement 4,6 Mo compressé => 1166 Mo décompressé. 6 fichiers "zero" uniquement : 1 Go, 100 Mo, 50 Mo, 10 Mo, 5 Mo et 1 Mo + sha256sum.txt

net-test_315m.tar.lz4 : 315 Mo. 3 fichiers "rand" : les fichiers Arcep/QoSi (512-rand.png + 50Mi-rand.zip + 250Mi-rand.zip) et sha256sum.txt correspondant

vivien

  • Administrateur
  • *
  • Messages: 43 044
    • Twitter LaFibre.info
Net-test: fichiers de différente taille, utilisés pour tester son débit
« Réponse #2 le: 14 octobre 2021 à 09:29:38 »
3/ Configurer Apache2

Cas où Apache écoute sur toutes les IP : Demander Apache d'écouter sur le port 81 et 444 en plus du port 80 et 443 standard :
echo -e "Listen 80\nListen 81 http\nListen 443\nListen 444 https" > /etc/apache2/ports.conf

Voir en annexe si vous souhaitez que Apache n'écoute que sur une partie des IP du serveur.

Sécurité : Configurer le VirtualHost par défaut pour qu'il écoute sur le port 81 et 444 :
sed -i -e "s/<VirtualHost \*:80>/<VirtualHost \*:80 \*:81>/g" /etc/apache2/sites-available/000-default.conf
sed -i -e "s/<VirtualHost \*:443>/<VirtualHost \*:443 \*:444>/g" /etc/apache2/sites-available/000-default.conf


Configuration du VirtualHost Net-test :
wget -O /etc/apache2/sites-available/net-test.conf https://soft.lafibre.info/download/web/net-test/apache2-net-test-tmp.conf
changer le nom de domaine :
sed -i -e "s/domain-name.com/1.testdebit.info/g" /etc/apache2/sites-available/net-test.conf  (remplacez 1.testdebit.info par le nom de domaine du serveur Net-test)
Vérifiez que les différents nom de domaines sont ok :
nano /etc/apache2/sites-available/net-test.conf
a2ensite net-test.conf ; systemctl restart apache2

vivien

  • Administrateur
  • *
  • Messages: 43 044
    • Twitter LaFibre.info
Net-test: fichiers de différente taille, utilisés pour tester son débit
« Réponse #3 le: 14 octobre 2021 à 09:30:07 »
4/ Installation du certificat Let's Encrypt

On utiliser Certbot, qui doit être déjà installé, cf section 8/ Installation des pré-requis pour avoir un certificat TLS Let's Encrypt.

Demande du certificat : (le DNS doit pointer les IP vers le serveur sans quoi cela sera un échec)
certbot certonly --apache --domains scaleway.testdebit.info,ipv4.scaleway.testdebit.info,ipv6.scaleway.testdebit.info




5/ Mise en place du certificat dans la configuration Apache

wget -O /etc/apache2/sites-available/net-test.conf https://soft.lafibre.info/download/web/net-test/apache2-net-test.conf
changer le nom de domaine :
sed -i -e "s/domain-name.com/1.testdebit.info/g" /etc/apache2/sites-available/net-test.conf  (remplacez 1.testdebit.info par le nom de domaine du serveur Net-test)

vivien

  • Administrateur
  • *
  • Messages: 43 044
    • Twitter LaFibre.info
Net-test: fichiers de différente taille, utilisés pour tester son débit
« Réponse #4 le: 14 octobre 2021 à 09:30:18 »
6/ Fichiers cron pour remplir le ramdisque au démarrage

Le script permet de faire plusieurs choses au démarrage du serveur :
- Décompression et mise en place des fichiers de test
- Mise en place de liens physique afin de mettre à disposition plusieurs extensions pour un même fichier situé dans le ramdisque
- Récupération de la page index.html qui est mise à jour régulièrement. Cette récupération se fait avec le nom du serveur qu'il faut me transmettre, afin que je prépare le script de génération du fichier index.html.

wget -O /home/net-test/net-test-filling-tmpfs.sh https://soft.lafibre.info/download/web/net-test/net-test-filling-tmpfs.sh ; chmod +x /home/net-test/net-test-filling-tmpfs.sh

echo "# Extraction des fichiers Net-test vers le ram disque au reboot" > /etc/cron.d/net-test
echo "@reboot         net-test   sleep 15 ; /home/net-test/net-test-filling-tmpfs.sh" >> /etc/cron.d/net-test

vivien

  • Administrateur
  • *
  • Messages: 43 044
    • Twitter LaFibre.info
Net-test: fichiers de différente taille, utilisés pour tester son débit
« Réponse #5 le: 14 octobre 2021 à 09:30:30 »
7/ Configuration d'iptables

On utilise le script, crée à l'étape 5/ Limitation du nombre de connexion TCP simultanées par IP.

Voici ce que vont faire les commandes ci-dessous :

  • Port 1 > 79 =redirection iptables=> Port 444 (https)
  • Port 80 =on ne fait rien=> Écouté par Apache2 (http)
  • Port 81 =on ne fait rien=> Écouté par Apache2 (http)
  • Port 82 > 442 =redirection iptables=> Port 444 (https)
  • Port 443 =on ne fait rien=> Écouté par Apache2 (https)
  • Port 444 =on ne fait rien=> Écouté par Apache2 (https)
  • Port 445 > 9199 =redirection iptables=> Port 444 (https)
  • Port 9200 > 9222 =on ne fait rien=> Écouté par iPerf3 si installé

nano /root/iptables-rules.sh
Copier / coller le texte ci-dessous à la fin du fichier iptables-rules.sh après avoir fait un recherché / remplacé de a.b.c.d par l'IPv4 et de x:x:x:x:x:x:x:x par l'IPv6:

# Net-test
/usr/sbin/iptables -t nat -A PREROUTING -p tcp -d a.b.c.d --dport 1:79 -j REDIRECT --to 444
/usr/sbin/ip6tables -t nat -A PREROUTING -p tcp -d x:x:x:x:x:x:x:x --dport 1:79 -j REDIRECT --to 444
/usr/sbin/iptables -t nat -A PREROUTING -p tcp -d a.b.c.d --dport 82:442 -j REDIRECT --to 444
/usr/sbin/ip6tables -t nat -A PREROUTING -p tcp -d x:x:x:x:x:x:x:x --dport 82:442 -j REDIRECT --to 444
/usr/sbin/iptables -t nat -A PREROUTING -p tcp -d a.b.c.d --dport 445:9199 -j REDIRECT --to 444
/usr/sbin/ip6tables -t nat -A PREROUTING -p tcp -d x:x:x:x:x:x:x:x --dport 445:9199 -j REDIRECT --to 444


Exemple de configuration plus complexe avec deux IP :
- 45.85.134.187 / 2a05:46c0:100:1007::3/64 : tous les ports écoutent en https sauf le port 80
- 45.85.134.188 / 2a05:46c0:100:1007::4/64 : tous les ports écoutent en http
# Net-test https
/usr/sbin/iptables -t nat -A PREROUTING -p tcp -d 45.85.134.187 --dport 1:79 -j REDIRECT --to 444
/usr/sbin/ip6tables -t nat -A PREROUTING -p tcp -d 2a05:46c0:100:1007::3 --dport 1:79 -j REDIRECT --to 444
/usr/sbin/iptables -t nat -A PREROUTING -p tcp -d 45.85.134.187 --dport 82:442 -j REDIRECT --to 444
/usr/sbin/ip6tables -t nat -A PREROUTING -p tcp -d 2a05:46c0:100:1007::3 --dport 82:442 -j REDIRECT --to 444
/usr/sbin/iptables -t nat -A PREROUTING -p tcp -d 45.85.134.187 --dport 445:9199 -j REDIRECT --to 444
/usr/sbin/ip6tables -t nat -A PREROUTING -p tcp -d 2a05:46c0:100:1007::3 --dport 445:9199 -j REDIRECT --to 444

# Net-test http
/usr/sbin/iptables -t nat -A PREROUTING -p tcp -d 45.85.134.188 --dport 1:79 -j REDIRECT --to 81
/usr/sbin/ip6tables -t nat -A PREROUTING -p tcp -d 2a05:46c0:100:1007::4 --dport 1:79 -j REDIRECT --to 81
/usr/sbin/iptables -t nat -A PREROUTING -p tcp -d 45.85.134.188 --dport 82:9199 -j REDIRECT --to 81
/usr/sbin/ip6tables -t nat -A PREROUTING -p tcp -d 2a05:46c0:100:1007::4 --dport 82:9199 -j REDIRECT --to 81

vivien

  • Administrateur
  • *
  • Messages: 43 044
    • Twitter LaFibre.info
Net-test: fichiers de différente taille, utilisés pour tester son débit
« Réponse #6 le: 14 octobre 2021 à 09:30:41 »
8/ Vérifier que tout est ok

Redémarrer le serveur: reboot

Une fois redémarré depuis 3 minutes, vérifier que tout est ok :

1/ Le ramdisque est bien crée et il est rempli à près de 60%
2/ Le fichier index.html s'est bien téléchargé (il doit faire plus de 100 Ko)
3/ Vérifier les sommes de contrôle :
cd /home/net-test/tmpfs/
sha256sum -c /home/net-test/tmpfs/sha256sum.txt

4/ Aller sur le site pour vérifier que le certificat https fonctionne et est valide
5/ Vérifier que l'upload est bien possible : Tutoriel pour Windows, pour Linux ou pour MacOS.
6/ Vérifications IPtables : sudo iptables -L -t nat

vivien

  • Administrateur
  • *
  • Messages: 43 044
    • Twitter LaFibre.info
Net-test: fichiers de différente taille, utilisés pour tester son débit
« Réponse #7 le: 14 octobre 2021 à 09:30:56 »
Annexes


Fichiers proposés par Net-test

  • net-test_13762m.tar.lz4 => 13 Go 762 Mo décompressé (inclus le fichier de 10 Go)
  • net-test_3762m.tar.lz4 => 3Go 762 Mo décompressé (sans le fichier de 10 Go)
  • net-test_1362m.tar.lz4 => 1Go 362 Mo décompressé : 1G-rand.zip + 250Mi-rand.zip + 100M-rand.zip + sha256sum.txt
  • net-test_1166m.tar.lz4 (4,6 Mo compressé) => 1 Go 166 Mo décompressé : 1G-zero.zip + 100M-zero.zip + 50M-zero.zip + 10M-zero.zip + 5M-zero.zip + 1M-zero.zip + sha256sum.txt
  • net-test_262m.tar.lz4 => 262 Mo uniquement le fichier 250Mi-rand.zip et sha256sum.txt correspondant

Liste des fichiers proposés :
10000000000 10G.zip
 1000000000 1G-rand.zip
 1000000000 1G-zero.zip
 1000000000 1G.zip
  262144000 250Mi-rand.zip
  100000000 100M-rand.zip
  100000000 100M-zero.zip
  100000000 100M.zip
   50000000 50M-rand.zip
   50000000 50M-zero.zip
   50000000 50M.zip
   10000000 10M-rand.zip
   10000000 10M-zero.zip
   10000000 10M.zip
    5000000 5M-rand.zip
    5000000 5M-zero.zip
    5000000 5M.zip
    1000000 1M-rand.zip
    1000000 1M-zero.zip
    1000000 1M.zip
     500000 500k.jpg
     500000 500k-rand.jpg
     500000 500k-zero.jpg
     100000 100k.jpg
     100000 100k-rand.jpg
     100000 100k-zero.jpg
      50000 50k.jpg
      50000 50k-rand.jpg
      50000 50k-zero.jpg
      10000 10k.jpg
      10000 10k-rand.jpg
      10000 10k-zero.jpg
       5000 5k.jpg
       5000 5k-rand.jpg
       5000 5k-zero.jpg
       1000 1k.jpg
       1000 1k-rand.jpg
       1000 1k-zero.jpg
        500 500.png
        500 500-rand.png
        500 500-zero.png
        100 100.png
        100 100-rand.png
        100 100-zero.png
         50 50.gif
         50 50-rand.gif
         50 50-zero.gif
         10 10.exe
         10 10-rand.exe
         10 10-zero.exe
          5 5.exe
          5 5-rand.exe
          5 5-zero.exe
          1 1.exe
          1 1-rand.exe
          1 1-zero.exe
          0 0.exe
          0 0-rand.exe
          0 0-zero.exe


Les étapes de la création d'un fichier :
touch -t 202105010000 *
rm sha256sum.txt
sha256sum * > sha256sum.txt
touch -t 202105010000 *
sha256sum -c sha256sum.txt
tar --create -vf ../net-test.tar *
=> pour avoir la taille non compressée
tar cvf - * | lz4 > ../net-test_13762m.tar.lz4

vivien

  • Administrateur
  • *
  • Messages: 43 044
    • Twitter LaFibre.info
Net-test: fichiers de différente taille, utilisés pour tester son débit
« Réponse #8 le: 14 octobre 2021 à 09:31:18 »
Configuration du /etc/apache2/ports.conf pour que Apache n'écoute pas sur toutes les IP possédées par le serveur.

Cela ne concerne que quelques cas où les serveurs qui ont plusieurs IPv4 et IPv6 ET où ne faut pas que Apache écoute sur toutes ses IP.

Se baser sur ce type de configuration :
nano /etc/apache2/ports.conf

# IP localhost
Listen 127.0.0.1:80
Listen [::1]:80

Listen 127.0.0.1:443
Listen [::1]:443

# IP N°1 : Net-test
Listen xx.xx.xx.2:80
Listen [xx:xx:xx:xx::2]:80

Listen xx.xx.xx.2:443
Listen [xx:xx:xx:xx::2]:443

Listen xx.xx.xx.2:81 http
Listen [xx:xx:xx:xx::2]:81 http

Listen xx.xx.xx.2:444 https
Listen [xx:xx:xx:xx::2]:444 https

# IP N°2 : Service autre (SpeedTest par exemple)
Listen xx.xx.xx.3:80
Listen [xx:xx:xx:xx::3]:80

Listen xx.xx.xx.3:443
Listen [xx:xx:xx:xx::3]:443

# IP N°3 : Service autre
Listen xx.xx.xx.4:80
Listen [xx:xx:xx:xx::4]:80

Listen xx.xx.xx.4:443
Listen [xx:xx:xx:xx::4]:443