24/05/2010

Eeegw – part III – Quality Of Service aka QOS

Soyons clairs, la QOS sous GNU/Linux est un cauchemar à gérer.
Autre concept à bien avoir en tête, vous ne pouvez gérer la QOS que de votre lien sortant, en aucun cas vous ne pouvez gérer ce qui rentre via votre lien. Par analogie, vous ne pouvez pas contrôler la pluie qui tombe dans votre piscine, par contre vous pouvez contrôler l’eau que vous enlevez, et l’eau que vous décidez de rajouter.
Il existe quelques bidouilles afin de réussir tout de même à gérer ce trafic entrant, nous allons essayer de vous présenter ça un peu plus loin dans l’article.

Nous allons donc utiliser Mangle de iptables (pour qos.sh) ainsi que la fonction de mark des packets de iptables.
Il faut donc aller activer cela dans le noyau.

#
# QoS and/or fair queueing
#
CONFIG_NET_SCHED=y
CONFIG_NET_SCH_CBQ=m
CONFIG_NET_SCH_HTB=m
CONFIG_NET_SCH_CSZ=m
CONFIG_NET_SCH_PRIO=m
CONFIG_NET_SCH_RED=m
CONFIG_NET_SCH_SFQ=m
CONFIG_NET_SCH_TEQL=m
CONFIG_NET_SCH_TBF=m
CONFIG_NET_SCH_GRED=m
CONFIG_NET_SCH_DSMARK=m
CONFIG_NET_SCH_INGRESS=m
CONFIG_NET_QOS=y
CONFIG_NET_ESTIMATOR=y
CONFIG_NET_CLS=y
CONFIG_NET_CLS_TCINDEX=m
CONFIG_NET_CLS_ROUTE4=m
CONFIG_NET_CLS_ROUTE=y
CONFIG_NET_CLS_FW=m
CONFIG_NET_CLS_U32=m
CONFIG_NET_CLS_RSVP=m
CONFIG_NET_CLS_RSVP6=m
CONFIG_NET_CLS_POLICE=y