par guiguid » 07 Fév 2004 10:34
Si, je le retrouve ....
<BR>
<BR>Généralité sur la QoS linux : <!-- BBCode auto-link start --><a href="http://www-rp.lip6.fr/~lochin/qos/qoshtml/" target="_blank">http://www-rp.lip6.fr/~lochin/qos/qoshtml/</a><!-- BBCode auto-link end -->
<BR>
<BR>Wondershaper: <!-- BBCode auto-link start --><a href="http://lartc.org/wondershaper/" target="_blank">http://lartc.org/wondershaper/</a><!-- BBCode auto-link end -->
<BR>
<BR>Je l'ai retrouvé :
<BR>
<BR>#!/bin/bash
<BR>
<BR># La configuration ultime pour votre connexion Internet domestique
<BR>#
<BR># Configurez les valeurs suivantes avec des valeurs légèrement inférieures que
<BR># vos vitesses de flux montant et descendant. Exprimé en kilobits.
<BR>DOWNLINK=800
<BR>UPLINK=220
<BR>DEV=ppp0
<BR>
<BR># Nettoie les gestionnaires de sortie et d'entrés, cache les erreurs
<BR>tc qdisc del dev $DEV root 2> /dev/null > /dev/null
<BR>tc qdisc del dev $DEV ingress 2> /dev/null > /dev/null
<BR>
<BR>###### Flux montant (uplink)
<BR>
<BR># installe CBQ à la racine
<BR>
<BR>tc qdisc add dev $DEV root handle 1: cbq avpkt 1000 bandwidth 10mbit
<BR>
<BR># Le trafic est mis en forme à une vitesse de $UPLINK. Ceci évite
<BR># d'énormes files d'attente dans votre modem DSL qui pénalisent le temps de
<BR># latence.
<BR># Classe principale
<BR>
<BR>tc class add dev $DEV parent 1: classid 1:1 cbq rate ${UPLINK}kbit
<BR>allot 1500 prio 5 bounded isolated
<BR>
<BR># classe de priorité supérieure 1:10:
<BR>
<BR>tc class add dev $DEV parent 1:1 classid 1:10 cbq rate ${UPLINK}kbit
<BR> allot 1600 prio 1 avpkt 1000
<BR>
<BR># la classe par défaut et pour le trafic de masse 1:20. Reçoit légèrement
<BR># moins que le trafic et a une priorité plus faible :
<BR># bulk and default class 1:20 - gets slightly less traffic,
<BR># and a lower priority:
<BR>
<BR>tc class add dev $DEV parent 1:1 classid 1:20 cbq rate $[9*$UPLINK/10]kbit
<BR> allot 1600 prio 2 avpkt 1000
<BR>
<BR># Les deux sont gérées par SFQ :
<BR>tc qdisc add dev $DEV parent 1:10 handle 10: sfq perturb 10
<BR>tc qdisc add dev $DEV parent 1:20 handle 20: sfq perturb 10
<BR>
<BR># Démarrage des filtres
<BR># le bit Délai Minimum du champ TOS (ssh, PAS scp) est dirigé vers
<BR># 1:10 :
<BR>tc filter add dev $DEV parent 1:0 protocol ip prio 10 u32
<BR> match ip tos 0x10 0xff flowid 1:10
<BR># ICMP (ip protocol 1) est dirigé vers la classe interactive 1:10 de telle
<BR># sorte que nous pouvons réaliser des mesures et impressionner nos
<BR># amis :
<BR>tc filter add dev $DEV parent 1:0 protocol ip prio 11 u32
<BR> match ip protocol 1 0xff flowid 1:10
<BR>
<BR># Pour accélérer les téléchargements vers l'aval lors de la présence d'un
<BR># flux montant, les paquets ACK sont placés dans la classe
<BR># interactive :
<BR>
<BR>tc filter add dev $DEV parent 1: protocol ip prio 12 u32
<BR> match ip protocol 6 0xff
<BR> match u8 0x05 0x0f at 0
<BR> match u16 0x0000 0xffc0 at 2
<BR> match u8 0x10 0xff at 33
<BR> flowid 1:10
<BR>
<BR># Le reste est considéré 'non-interactif' cad 'de masse' et fini dans 1:20
<BR>
<BR>tc filter add dev $DEV parent 1: protocol ip prio 13 u32
<BR> match ip dst 0.0.0.0/0 flowid 1:20
<BR>
<BR>########## Flux descendant (downlink) #############
<BR># Ralentir le flux descendant à une valeur légèrement plus faible que votre
<BR># vitesse réelle de manière à éviter la mise en file d'attente chez notre
<BR># FAI. Faites des tests pour voir la vitesse maximum à laquelle vous pouvez
<BR># le configurer. Les FAI ont tendance à avoir *d'énormes* files d'attente
<BR># pour s'assurer de la rapidité des gros téléchargements.
<BR>#
<BR># attache la réglementation d'entrée (ingress policer) :
<BR>
<BR>tc qdisc add dev $DEV handle ffff: ingress
<BR>
<BR># Filtre *tout* (0.0.0.0/0), rejette tout ce qui arrive trop
<BR># rapidement :
<BR>
<BR>tc filter add dev $DEV parent ffff: protocol ip prio 50 u32 match ip src
<BR> 0.0.0.0/0 police rate ${DOWNLINK}kbit burst 10k drop flowid :1
<BR>
<BR>
<BR>
<BR>
<BR>Ou Encore mieux : (file HTB)
<BR>
<BR>#!/bin/bash
<BR>
<BR># La configuration ultime pour votre connexion Internet domestique
<BR>#
<BR># Configurez les valeurs suivantes avec des valeurs légèrement inférieures que
<BR># vos vitesses de flux montant et descendant. Exprimé en kilobits.
<BR>DOWNLINK=800
<BR>UPLINK=220
<BR>DEV=ppp0
<BR>
<BR>#Nettoie les gestionnaires de sortie et d'entrés, cache les erreurs
<BR>tc qdisc del dev $DEV root 2> /dev/null > /dev/null
<BR>tc qdisc del dev $DEV ingress 2> /dev/null > /dev/null
<BR>
<BR>###### Flux montant (uplink)
<BR>
<BR># installe HTB à la racine, le trafic ira par défaut vers 1:20 :
<BR>
<BR>tc qdisc add dev $DEV root handle 1: htb default 20
<BR>
<BR># Le trafic est mis en forme à une vitesse de $UPLINK. Ceci évite
<BR># d'énormes files d'attente dans votre modem DSL qui pénalisent le temps de
<BR># latence.
<BR>
<BR>tc class add dev $DEV parent 1: classid 1:1 htb rate ${UPLINK}kbit burst 6k
<BR>
<BR># la classe de haute priorité 1:10 :
<BR>
<BR>tc class add dev $DEV parent 1:1 classid 1:10 htb rate ${UPLINK}kbit
<BR> burst 6k prio 1
<BR>
<BR># bulk & default class 1:20 - gets slightly less traffic,
<BR># and a lower priority:
<BR>
<BR>tc class add dev $DEV parent 1:1 classid 1:20 htb rate $[9*$UPLINK/10]kbit
<BR> burst 6k prio 2
<BR>
<BR># Les deux sont gérées par SFQ :
<BR>tc qdisc add dev $DEV parent 1:10 handle 10: sfq perturb 10
<BR>tc qdisc add dev $DEV parent 1:20 handle 20: sfq perturb 10
<BR>
<BR># le bit Délai Minimum du champ TOS (ssh, PAS scp) est dirigé vers
<BR># 1:10 :
<BR>tc filter add dev $DEV parent 1:0 protocol ip prio 10 u32
<BR> match ip tos 0x10 0xff flowid 1:10
<BR>
<BR># ICMP (ip protocol 1) est dirigé vers la classe interactive 1:10 de telle
<BR># sorte que nous pouvons réaliser des mesures et impressionner nos
<BR># amis :
<BR>tc filter add dev $DEV parent 1:0 protocol ip prio 10 u32
<BR> match ip protocol 1 0xff flowid 1:10
<BR>
<BR># Pour accélérer les téléchargements vers l'aval lors de la présence d'un
<BR># flux montant, les paquets ACK sont placés dans la classe
<BR># interactive :
<BR>
<BR>tc filter add dev $DEV parent 1: protocol ip prio 10 u32
<BR> match ip protocol 6 0xff
<BR> match u8 0x05 0x0f at 0
<BR> match u16 0x0000 0xffc0 at 2
<BR> match u8 0x10 0xff at 33
<BR> flowid 1:10
<BR>
<BR># Le reste est considéré 'non-interactif' cad 'de masse' et fini dans 1:20
<BR>
<BR>
<BR>########## Flux descendant (downlink) #############
<BR># Ralentir le flux descendant à une valeur légèrement plus faible que votre
<BR># vitesse rélle de manière à éviter la mise en file d'attente chez notre
<BR># FAI. Faites des tests pour voir la vitesse maximum à laquelle vous pouvez
<BR># le configurer. Les FAI ont tendance à avoir *d'énormes* files d'attente
<BR># pour s'assurer de la rapidité des gros téléchargements.
<BR>#
<BR># attache la réglementation d'entrée (ingress policer) :
<BR>
<BR>tc qdisc add dev $DEV handle ffff: ingress
<BR>
<BR># Filtre *tout* (0.0.0.0/0), rejette tout ce qui arrive trop
<BR># rapidement :
<BR>
<BR>tc filter add dev $DEV parent ffff: protocol ip prio 50 u32 match ip src
<BR> 0.0.0.0/0 police rate ${DOWNLINK}kbit burst 10k drop flowid :1
<BR>
<BR>
<BR>Biensur il ne te faut pas utiliser ces script comme ca, mais adapter celui d'ipcop !
<BR>
<BR>
<BR>Ou plus simple :
<BR>
<BR><!-- BBCode auto-link start --><a href="http://lea-linux.org/leapro/qos.php3" target="_blank">http://lea-linux.org/leapro/qos.php3</a><!-- BBCode auto-link end -->
<BR>
<BR>(a la fin)
<BR>
<BR>Guillaume
<BR>bon Qos!
<BR>