Je voudrais faire un peu de QOS sous LINUX … je n ai pas encore lu tout les howto sur la chose, mais y a qd meme des trucs que je capte pas.
Mon but est juste de gerer et limiter le traffic maximale, et eventuellement des priorites.
IPTABLE peut il faire du QOS ?
j ai bien trouve un -l limit, mais quand je l active, rien n est vraiment limite.
j ai joue avec trickle … mais AUCUN resultat .
J ai lance les demons a chaud … est ce que les effets sont valables instantanement ou uniquement sur les nouvelles connections ? faut il rebooter ?
avec trickle, j ai pris soin de lancer mes aplis gourmandes apres lancement du demon, et l apli ne subissait aucune limitation …. donc trickle, meme sur les nouvelle connections : aucun resultat.
# docum.org
Posté par Stibb . Évalué à 2.
Tiens moi au courant si tu arrives a faire qque chose de bien je n'ai jamais réussit a faire une bonne gestion des limitations, surtout en download.
[^] # Re: docum.org
Posté par doublehp (site web personnel) . Évalué à 0.
voire rc.firewall-2.4-stronger ...
ce script est base sur une reduction de rc.firewall-2.4-stronger.
rc.firewall-2.4-stronger est le meilleur script d IPTABLES que je conaisse.
rc.firewall-2.4-stronger.open est une version laxiste qui NAT sur 3 interfaces.
ce qui suis assure en plus une limitation de debit a 20ko sur le traffic venant de eth0 et vers ppp0, tout en me(la passerelle) laissant utiliser toute la pb si je le souhaite.
chezmoicamarche.com
tc qdisc del dev ppp0 root
$IPTABLES -P INPUT ACCEPT
$IPTABLES -F INPUT
$IPTABLES -P OUTPUT ACCEPT
$IPTABLES -F OUTPUT
$IPTABLES -P FORWARD ACCEPT
$IPTABLES -F FORWARD
$IPTABLES -F -t nat
# this one is dirty but works.
#$IPTABLES -A FORWARD -s 192.168.0.133 -m limit --limit 15000/s -j DROP
$IPTABLES -t mangle -A FORWARD -i eth0 -o ppp0 -j MARK --set-mark 22
$IPTABLES -A FORWARD -s $UNIVERSE -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A FORWARD -s $INTNET1 -j ACCEPT
$IPTABLES -A FORWARD -s $INTNET2 -j ACCEPT
$IPTABLES -A FORWARD -j drop-and-log-it
echo " - NAT: Enabling SNAT (MASQUERADE) functionality on $EXTIF"
$IPTABLES -t nat -A POSTROUTING -o $EXTIF -j MASQUERADE
$IPTABLES -t nat -A POSTROUTING -s $INTNET1 -j MASQUERADE
$IPTABLES -t nat -A POSTROUTING -s $INTNET2 -j MASQUERADE
#note that rates are in k BITS ...
#declare the QoS htb (token bucket) on ppp0
tc qdisc add dev ppp0 root handle 1: htb
#create daughter class !:22 from 1:, and limit it at 20kB
tc class add dev ppp0 parent 1: classid 1:22 htb rate 160kbit ceil 200kbit burst 160k
# declare that paquets marqued 22 will be threated with class 1:22
tc filter add dev ppp0 parent 1:0 protocol ip handle 22 fw flowid 1:22
# for an other example of tc, see http://shinobufan.free.fr/forumz/qos3.html(...)
echo -e "\nDone.\n"
# LARTC
Posté par Jeremy SALMON (site web personnel) . Évalué à 2.
Les sources sont nombreuses pour apprendre a faire de la QOS mais la référence reste l'incontournable : http://lartc.org/(...) .
Merci a tous les contributeurs de ce fantastique document.
# Quelques pointeurs
Posté par Maillequeule . Évalué à 4.
L'introduction :
http://linux.regit.org/article.php3?id_article=13(...)
Le développement :
http://okki666.free.fr/docmaster/articles/linux133.html(...)
La référence :
http://www.linuxfr-france.org.invalid/prj/inetdoc/guides/lartc/(...)
Tu peux aussi commencer avec WonderShaper qui permet de mettre en place des règles de base facilement.
http://www.lartc.org/wondershaper/(...)
M
# Un (mauvais ?) exemple parmis d'autres
Posté par shinobufan (site web personnel) . Évalué à 1.
http://shinobufan.free.fr/forumz/qos3.html(...)
On voit bien l'idée : marquage du trafic avec iptables, puis gestion des files d'attente, de leur priorité et de leurs limites avec tc. Ici des fonctions simplificatrices addfilter et addqdisc sont utilisées.... Je me suis inspiré des exemples à droite à gauche, et d'un script posté ici sur linuxfr y'a un moment déjà. Il est surement pas nominal, voire même y'a peut-être des bêtises, mais ca marche déjà très bien pour moi.
Bien sûr ceci ne concerne que le trafic en "upload", pour le "download" c'est plus délicat et inefficace (comprendre je n'ai jamais réussi à faire marcher ingress convenablement).
Avec iptables, les modifications sont prises en compte tout de suite.
[^] # Re: Un (mauvais ?) exemple parmis d'autres
Posté par doublehp (site web personnel) . Évalué à -1.
Si je ne sais pas si tu declare ca avant les INPUT, apres les FORWARD ou apres les POSTROUTING, ben je peux pas inclure ton truc dans le mien.
Bref; un _extrait_ est inutile. Merci de me donner le tout la prochaine fois.
[^] # Re: Un (mauvais ?) exemple parmis d'autres
Posté par shinobufan (site web personnel) . Évalué à 1.
# question bete
Posté par doublehp (site web personnel) . Évalué à 1.
dans mon cas particulier, j ai une ADSL 1M : 1024/256 (ppp0), et du NAT vers eth0. Mon colloc utilise Emule a outrance ... et par default Emule utilise toute la pb possible - A noter que Emule sature plus facilement le lien ppp0 sortant que l entrant. Parfois, il dl un truc en http, et me prend tout le dl.
Tout ce que jeux, c est garder pour moi 5k en up(ppp0) et 10k en down, juste pour ecouter la radio sur le net, et un peu de VOIP.
en pratique, ce n est pas mon up ppp0 que je veux limiter, mais le download de eth0 c est a dire l autre face de la meme piece de monaie: ce qui sort du pc de mon colloc vers Emule ... pour me garder mes 5k.
A noter que je ne peux pas brider bruptalement ce que je down via eth0, sinon les echanges en LAN vont en patire gravement : je ne veux pas d un lan a 20k sur des cartes 100mb !!!
A noter qu il n y a qu un seul PC sur eth0 ( pas de hub), ce qui peut aider le marquage des paquets ...
[^] # Re: question bete
Posté par EppO (site web personnel) . Évalué à 2.
Parce que tu peux contrôler ce que tu envoies mais pas ce que tu reçois. tu peux toujours accélerer le traitement de ce que tu reçois par un qdisc CBQ ou HTB mais ca ne permet pas pour autant de "libérer la connec" de ces paquets qui sont déjà arrivés à destination.
Donc, pour PPP c'est pas possible ou peu utile. Par contre si tu peux contrôler l'envoi de la machine sur qui tu dl (la machine de ton copain donc), c'est bon. Au hasard, tu lui demandes de mettres une limite d'upload sur son emule, ca marche plutôt pas mal normalement. Si t'as pas confiance en lui, tu peux limiter son upload sur certains ports de destinations (mais certains changent ces ports, donc là aussi ça ne dépend pas que de toi).
[^] # Re: question bete
Posté par doublehp (site web personnel) . Évalué à 0.
si tu set ce bit sur des trames provenant de certaines IP, ou que tu ne les ack jamais, l emeteur original sera oblige de baisser le flux: si tu ack jamais les trames, ou que une sur deux ... je te promet que te flux va baisser ...
le tout est de toujours acker ce que tu aime bien, et moins souvent les autres ...
[^] # Re: question bete
Posté par doublehp (site web personnel) . Évalué à 1.
ajouter au script :
$IPTABLES -t mangle -A FORWARD -i ppp0 -o eth0 -j MARK --set-mark 24
[...]
tc qdisc add dev eth0 root handle 3: htb
tc class add dev eth0 parent 3: classid 3:24 htb rate 100kbps ceil 110kbps burst 100k
tc filter add dev eth0 parent 3:0 protocol ip handle 24 fw flowid 3:24
et le mec ne depasse plus : ce qui me laisse mes 10k/5k garentis pour ecouter mes radios live et mon VOIP.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.