Forum Linux.général QOS

Posté par  (site web personnel) .
Étiquettes : aucune
0
30
oct.
2004

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  . Évalué à 2.

    Il y a plein d'info sur le QoS sur docum.org.
    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  (site web personnel) . Évalué à 0.

      je passe sur l entete du script
      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  (site web personnel) . Évalué à 2.

    Bonjour,

    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  . Évalué à 4.

    En francais dans le texte (ce qui ne gache rien )

    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.linux-france.org/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  (site web personnel) . Évalué à 1.

    Voici la parti du script iptables que j'utilise en ce moment concernant la gestion de la qualité de service :

    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  (site web personnel) . Évalué à -1.

      malgres tout l interret de ton script, je ne peux rien en faire, tout simplement PARCEQUE c est un EXTRAIT ... et que tous les bons howtos sur IPTABLES mentionnent que l ordre de declaration des regles est important. Un extrait sans son contexte est donc INUTILE.

      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  (site web personnel) . Évalué à 1.

        Ah désolé, c'était juste pour montrer le principe, et pas noyer avec mes règles de pare-feu et tout. Cela dit, tu peux retourner voir le lien, mon script complet y est maintenant, attention j'ai bien précisé déjà que j'étais pas un pro du iptables et qu'il peut y avoir des bêtises ^^
  • # question bete

    Posté par  (site web personnel) . Évalué à 1.

    En quoi gerer le down est plus dure que gerer l up ?

    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  (site web personnel) . Évalué à 2.

      En quoi gerer le down est plus dure que gerer l up ?

      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  (site web personnel) . Évalué à 0.

      ben je proteste : dans les trames ICMP il y a un bit qui signale que le buffer de reception est sature, et qu il faut reduire le debit ...

      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  (site web personnel) . Évalué à 1.

        bon ben finallement j ai reussi : j a iune cnx 1024, et je peux brider le dl de mon colloc ou je veux. je lui ai donne 110k:

        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.