Bonjour à tous, J’ai un petit soucis avec de la QOS/ priorisation de flux… après maintes recherches j’ai commencer a réaliser des test via un petit script bash (voir ci-dessous). Je pense avoir suivi les differentes explications que j’ai pu trouver sur internet malgré le peu de documentation par rapport a tc class… malheureusement je ne constate pas de priorisation significative. Voici le script que je tente d’élaborer :
[code]#!/bin/bash
DEV=“eth0”
qosstart () {
iptables -t mangle -A PREROUTING -p tcp --dport 80 -j MARK --set-mark 1
iptables -t mangle -A POSTROUTING -p tcp --sport 80 -j MARK --set-mark 1
iptables -t mangle -A PREROUTING -p tcp --dport 443 -j MARK --set-mark 2
iptables -t mangle -A POSTROUTING -p tcp --sport 443 -j MARK --set-mark 2
Création de la file d’attente principale add handle ffff: before ingress
tc qdisc add dev eth0 root handle 100: cbq bandwidth 100Mbit avpkt 1000 mpu 64
tc qdisc add dev eth1 root handle 100: cbq bandwidth 100Mbit avpkt 1000 mpu 64
tc qdisc add dev eth0 ingress
tc qdisc add dev eth1 ingress
#tc qdisc add dev $DEV handle ffff: ingress
Classe pour priorité haute
tc class add dev eth0 parent 100:0 classid 100:1 cbq bandwidth 100Mbit rate 64Kbit allot 1514 prio 8 maxburst 2 avpkt 200 bounded
tc class add dev eth1 parent 100:0 classid 100:1 cbq bandwidth 100Mbit rate 64Kbit allot 1514 prio 8 maxburst 2 avpkt 200 bounded
Classe pour priorité faible
tc class add dev eth0 parent 100:0 classid 100:2 cbq bandwidth 100Mbit rate 64Kbit allot 1514 prio 1 maxburst 40 avpkt 200 bounded
tc class add dev eth1 parent 100:0 classid 100:2 cbq bandwidth 100Mbit rate 64Kbit allot 1514 prio 1 maxburst 40 avpkt 200 bounded
#Installer les filtres
tc filter add dev eth0 parent 100: protocol ip handle 1 fw flowid 100:1 # HTTP
tc filter add dev eth0 parent 100: protocol ip handle 2 fw flowid 100:2 # HTTPS
tc filter add dev eth1 parent 100: protocol ip handle 1 fw flowid 100:1
tc filter add dev eth1 parent 100: protocol ip handle 2 fw flowid 100:2
}
qosstop (){
tc qdisc del dev eth0 ingress
tc qdisc del dev eth1 ingress
tc qdisc del dev eth0 root
tc qdisc del dev eth1 root
iptables -t mangle -F
}
case “$1” in
start )
qosstart ;
;;
stop )
qosstop ;
;;
restart )
qosstop ;
qosstart ;
;;
*)
echo “Usage : /etc/ init .d/qos ( start | stop | restart )” ;
esac
[/code]
J’utilise ce script sur ma passerelle/firewall qui est en tete de mon réseau.
Si vous avez des éclairsissements sur certains points par rapport à iptables/mangle ou a tc, je suis plus que preneur.
Merci d’avance de votre aide.
Bye