Project

General

Profile

QOS Exterieur

ATTENTION, pour l'instant ces scripts sont fournis à titre expérimental.

http://dev-eole.ac-dijon.fr/issues/8479
http://eoleng.ac-dijon.fr/pub/Outils/QOS/

Ces scripts fonctionnent en divisant la bande passante totale en 3 canaux/priorités :
  • HTB : on affecte un pourcentage de la bande passante totale à un canal et on définit quel IP/réseau
  • PRIO : on définit quel IP/réseau ont quelle priorité
Avertissement :
  • Les 2 scripts sont exclusifs, on ne peut pas les utiliser en même temps.
  • Ces 2 scripts agissent sur eth0 et créent une interface virtuelle ifb0.
  • Si vous avez de la QOS dans Era, tant que celle-ci n'est pas sur eth0, elle est compatible avec les 2 scripts. Cela-dit, il vaut mieux désactiver entièrement la QOS dans ERA pour éviter tout effet de bord.

qos_htb.sh

http://eoleng.ac-dijon.fr/pub/Outils/QOS/qos_htb.sh

Ce script fonctionne sur une principe de débit minimum garantie.
  • la bande passante totale est divisée en 3 canaux
  • un pourcentage de la bande passante totale est affecté à chaque canal
  • affectation d'une IP ou d'un réseau à un canal
    Par défaut tout le trafic va dans canal 2.

Lorsqu'un canal n'est pas utilisé, ou qu'il n'utilise pas toute la bande passante qui lui est réservé, elle est répartie entre les autres canaux.
Dès que le canal a besoin à nouveau de toute sa bande passante, sa partie réservée lui est rendue.

qos_prio.sh

http://eoleng.ac-dijon.fr/pub/Outils/QOS/qos_prio.sh

Ce script fonctionne sur une principe de priorité simple sans minimum garantie
  • 3 priorités :
  • haute (1)
  • normale (2)
  • basse (3)
  • affectation d'une IP ou d'un réseau à une priorité
    Par défaut tout le trafic va dans priorité 2.

Tant que la priorité 1 a des paquets à transmettre, rien n'est transmis pour les priorités 2 et 3.
Si la priorité 1 n'a plus rien à transmettre alors la priorité 2 est traitée.
La priorité 3 est traitée quand les deux autres n'ont plus rien à transmettre.

Configuration et utilisation des scripts :

Il faut les éditer pour y renseigner :

  • La capacité de la connexion Internet (à mesurer car il faut le débit réel)
  • Le pourcentage de bande passante réservé à chaque canal (HTB seulement)
  • Les IP/Réseaux à prioriser/à ralentir (Par défaut, Youtube, Rutube, vimeo et dailymotion sont déjà renseignés en canal3/prio3)

Pour les appliquer il suffit de faire :

 bash qos_htb.sh

ou
 bash qos_prio.sh

Cela survie à un reconfigure (si aucune QOS ERA sur eth0) mais pas à un reboot (on peut patcher /etc/rc.local pour appeler le script au boot).

Quel que soit le script utilisé, pour surveiller l'utilisation des différents canaux, on peut utiliser la commande :

 tc -s qdisc ls dev ifb0
 tc -s class ls dev ifb0

ou :
 watch -n 1 "tc -s qdisc ls dev ifb0 ; echo ; tc -s class ls dev ifb0" 

Pour surveiller la bande passante utilisée par chaque connexion on peut utiliser la commande :

 jnettop

(à installer avec 'apt-eole install jnettop')