Script QoS qui marche partiellement - réseaux et sécurité - Linux et OS Alternatifs
Marsh Posté le 11-12-2007 à 15:18:14
Même pas quelqu'un pour m'indiquer un site ou une mailing list où je pourrai obtenir une réponse ?
Marsh Posté le 13-12-2007 à 15:34:14
ouais tiens c'est vrai ça, t'as essayé ?
Marsh Posté le 13-12-2007 à 23:53:23
en fait je suis pas si sûr que ce soit le problème
Tu as vu wondershaper ?
Marsh Posté le 10-12-2007 à 10:57:43
J'ai fait un petit script de QoS afin d'optimiser le trafic sur mon serveur perso (mail, web, FTP, sauvegardes rsync). Idéalement il devrait créer deux classes :
- la 1:1 pour mes échanges locaux, non limitée en débit
- la 1:2 pour Internet avec des sous classes pour prioriser les différents échanges (IMAP ultra prioritaire par exemple) et que la bande passante soit allouée au mieux.
Petit hic : ça classe bien les paquets mais ça n'utilise pas toutes les classes. Seules la 1:1 (réseau local) et la 1:29 (classe par défaut) sont utilisées. Quelqu'un pourrait me dire pourquoi ça colle pas ? Je soupçonne une mauvaise utilisation de la syntaxe du filtre détectant de quel port on se sert.
# Paramètres (kbps = ko/s)
BPLOCAL=98Mbit
BPINTERNET=100kbps
SSHMIN=5kbps
SSHMAX=90kbps
IMAPMIN=70kbps
IMAPMAX=100kbps
HTTPMIN=50kbps
HTTPMAX=90kbps
FTPMIN=10kbps
FTPMAX=100kbps
DEFAULTMIN=20kbps
DEFAULTMAX=90kbps
# Suppression de toutes les règles de QoS
echo "Chargement de la QoS"
tc qdisc del dev eth0 root
# Définition du lien par défaut (les paquets non classés vont dans la classe 1:29)
tc qdisc add dev eth0 root handle 1: htb default 29
# Classe locale
tc class add dev eth0 parent 1: classid 1:1 htb rate $BPLOCAL prio 10
tc filter add dev eth0 protocol ip parent 1: prio 4 u32 match ip src 192.168.0.3 flowid 1:1
tc filter add dev eth0 protocol ip parent 1: prio 4 u32 match ip dst 192.168.0.3 flowid 1:1
# Classe Internet
tc class add dev eth0 parent 1: classid 1:2 htb rate $BPINTERNET
# Classe SSH
tc class add dev eth0 parent 1:2 classid 1:21 htb rate $SSHMIN ceil $SSHMAX prio 0
tc filter add dev eth0 protocol ip parent 1:2 prio 0 u32 match ip sport 22 0xffff flowid 1:21
# Classe IMAP
tc class add dev eth0 parent 1:2 classid 1:22 htb rate $IMAPMIN ceil $IMAPMAX prio 1
tc filter add dev eth0 protocol ip parent 1:2 prio 1 u32 match ip sport 993 0xffff flowid 1:22
# Classe HTTP
tc class add dev eth0 parent 1:2 classid 1:23 htb rate $HTTPMIN ceil $HTTPMAX prio 2
tc filter add dev eth0 protocol ip parent 1:2 prio 2 u32 match ip sport 443 0xffff flowid 1:23
tc filter add dev eth0 protocol ip parent 1:2 prio 2 u32 match ip sport 80 0xffff flowid 1:23
# Classe FTP
tc class add dev eth0 parent 1:2 classid 1:24 htb rate $FTPMIN ceil $FTPMAX prio 9
tc filter add dev eth0 protocol ip parent 1:2 prio 9 u32 match ip sport 20 0xffff flowid 1:24
tc filter add dev eth0 protocol ip parent 1:2 prio 9 u32 match ip sport 21 0xffff flowid 1:24
# Classe défaut
tc class add dev eth0 parent 1:2 classid 1:29 htb rate $DEFAULTMIN ceil $DEFAULTMAX prio 4