RCC : un nouveau logiciel de gestion de QoS pour Linux

Posté par  . Édité par Benoît Sibaud. Modéré par Jaimé Ragnagna.
Étiquettes :
0
8
fév.
2005
Linux
RCC est un outil de configuration de QoS sous Linux et sous licence GPL.

La QoS, ou Quality of Service, est l'ensemble des technologies permettant d'assurer la qualité du service réseau, de contrôler la bande passante ou encore d'assigner des priorités aux flux réseau. Concrètement, avec la QoS, le temps où un utilisateur pouvait s'approprier toute la bande passante avec des applications gourmandes (de type p2p) est révolu.

Grâce à RCC et à son interface GTK2, il sera dorénavant simple de configurer les règles QoS et ainsi de donner la priorité aux applications critiques.
En effet, RCC permet de gérer pour le moment le célèbre gestionnaire de file d'attente HTB et offre :
  • Une gestion centralisée permettant de gérer simultanément tout un parc de machines sous Linux grâce à son architecture client/serveur.
  • De configurer la QoS par le réseau grâce à une Interface graphique distante.
  • De réserver la bande passante pour n'importe quel type de service, permettant aux différent trafics de dépasser leurs limites de bande passante réservé en cas de non utilisation de la bande passante restante.
  • De mettre des priorités sur les différents flux.
  • De gérer l'émission et de la réception (ingress/egress).

La catégorisation du trafic peut être réalisée par rapport :
  • Aux adresses IP ou au range d'adresses IP, source et destination
  • Aux ports ou range de ports, source et destination
  • N'importe quel champ des paquets (TTL, TOS, etc....)

Tous les protocoles de communication RCC sont en XML, de plus ils sont chiffrés et compressés.

Pour connaître ce que permet RCC et avoir plus de détails, nous vous invitons à lire le LARTC HOWTO (Linux Advanced Traffic Control) et plus précisément la partie « gestionnaire de file d'attente HTB » et la partie sur les « filtres U32 » (NdM: remplacement par des liens archive.org).

Aller plus loin

  • # Compliqué ?!

    Posté par  . Évalué à 4.

    Ca m'a l'air tres sympa, mais j'ai un peu de mal a saisir.

    Que l'on m'arrete si je me trompe, on installe le module server sur . .. un server (qu'est-ce que le server ? la machine qui est relié a l'exterieur ?), on installe le module client sur .. . . les clients (qu'est-ce que sont les clients ? chaque machine du lan ? si j'ai 25 machines derriere un router vers le net, je dois l'installer 25 fois ? Comment je fais si j'ai des machines macs, windows ? Toutes les utilisations de QoS que j'avais vu jusque la n'utilisait pas de client specifique !), et enfin l'ihm, bon, bah ca sert a configurer le server, les clients peut etre ?

    Qu'est-ce qu'on peut bien configurer sur un client ?

    Donc au final tout cela me semble un peu lourd, lorsqu'on voit les solutions de QoS que j'avais vu jusque la (bon, c'est vrai que j'avais pas cherché bien loin, mais j'avais cru comprendre que le router se debrouillait tout seul avec ce qui lui arrivait dans la tronche .. . .
    • [^] # Re: Compliqué ?!

      Posté par  . Évalué à 10.

      Bon en fait j'avais rien compris :]

      Pour ceux que ca interesse, en fait ya un server de QoS, des clients qui sont par exemple des routers, et enfin des veritables clients qui utilisent le reseau.

      Sur le Server ya des profiles et les Clients qui s'y connectent, et on assigne des profils aux Clients.

      epistoo \o/
  • # Configuration noyau

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

    Configuration requise :
    - Support de la Qos (forcément)
    - modules HTB

    * Client (must be launch we root privilege) :
    - ethtool (for automatic configuration) otherwise you can edit manually the configuration file : Common/RCCModules/Client/QoSModule-0.3/conf/mod.conf (sample available : Common/RCCModules/Client/QoSModule-0.3/conf/mod.conf.sample)
    - iproute2
    - HTB kernel module

    Je pensais qu'il aurait besoin de plus de modules que ça au niveau Qos. Je me rappelle l'époque où j'avais joué avec la Qos, on avait intérêt à conjuguer plusieurs de ces modules pour obtenir un résultat correct.

    A voir ... L'architecture est en place, ce devrait pas être compliqué de permettre de gérer d'autres modules de la Qos Linux.
    • [^] # Re: Configuration noyau

      Posté par  . Évalué à 2.

      Si je comprend bien ce n'est qu'un debut et ils veulent supporter plus que ca au final.
    • [^] # Re: Configuration noyau

      Posté par  . Évalué à 5.

      Effectivement c'est un petit oubli de ma part.....je met le fichier d'install a jour!

      <<
      * Client (must be launch with root privilege) :

      Packages :
      - ethtool (for automatic configuration)
      otherwise you can edit manually the configuration file :
      Common/RCCModules/Client/QoSModule-0.3/conf/mod.conf
      (sample available :
      Common/RCCModules/Client/QoSModule-0.3/conf/mod.conf.sample)
      - iproute2
      Kernel :
      Networking options :
      - Netlink device emulation
      QoS and/or fair queue :
      - HTB packet scheduler
      - Ingress Qdisc (if you want to be able to
      manage ingress)
      - U32 Classifier
      You can add a lot of other modules to your kernel to enable
      statistics and stuff like that...but not reqire (for the
      moment =) ) by RCC)
      >>

      Mais je vous conseille d'activer les rate estimator, les autres gestionnaires de file d'attente....a la limite tout ce qu'il y a dans "QoS and/or fairing Queue"


      Merci


      Erwan
  • # Application de limitation de bande passante "personnelle"

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

    Puisqu'il faut quelques fois s'intéresser a des logiciels propriétaires existants pour faire avancer les logiciels libres, permettez de parler d'un petit shareware que j'utilisais sous Windows.

    Il s'agit de Netlimiter, un programme destiné aux particuliers qui permet d'afficher la liste des processus et de donner en temps réel une limite d'upload et de download pour chaque processus.

    On peut pas faire plus simple. Sous Linux, c'est certainement plus puissant, mais c'est compliqué, il faut savoir les ports utilisés et tout ça.

    Avec Netlimiter, on définit les quotas directement sur les processus et/ou sur l'interface réseau toute entière et les changements s'effectuent en temps réels. En plus de cela, le programme affiche un joli graphe qui permet de voir le débit d'upload et de download selon chaque processus et on peut encore aller plus loin en développant chaque processus et en appliquant des quotas sur chaque connexion que fait le processus.

    Voila... si on peut faire aussi simple et efficace sous nunux ça pourrait beaucoup m'intéresser ;).
    • [^] # Re: Application de limitation de bande passante "personnelle"

      Posté par  . Évalué à 4.

      Trickle fait tout ça très bien, en userspace (donc c'est dispo sous BSD également), en s'intercalant entre les fonctions réseau de la libc et le(s) programme(s), grâce à LD_PRELOAD.

      D'ailleurs, on en parle ici aussi : http://linuxfr.org/~lucas/10886.html(...)

      http://monkey.org/~marius/pages/?page=trickle(...)
    • [^] # Re: Application de limitation de bande passante "personnelle"

      Posté par  . Évalué à 3.

      Merci Nicolas,

      Surtout il ne faut pas hesiter a poster sur notre site sourceforge.net dans le "rayon" Feature request.....surtout que pour les applis a priori il s'agit "en gros"
      de faire un "$> lsof | grep mon_application" pour recuperer la liste des ports qu'elle utilise.....apres temps reel c'est facile quand tu es sur la machine et que le soft ne gere qu'une seule machine mais apres pour RCC ca ne sera pas possible,
      si RCC commence a generer plus de traffic qu'il n'en regule ce n'est pas etre bon, quoiqu'il en soit on doit pouvoir trouver le juste milieux et laisser l'admin decider de la fequence ou les client enverrons leurs listes de processus et ce n'ai pas pour rien que quand tu crees un profile ya deja des flux et des filtres qui sont crees par defaut (et qu'on ne peux supprimer) pour reguler la bande passante de RCC.
      En tout cas merci de ta suggestion et passe l'envoyer dans "Feature request" quand tu as 2 minutes ;) et ajoute-y les changements de rate en fonction de l'heure.....par contre par exemple....un des defaut de netlimiter....si tu reserver par exemple 2 mbit a une application....et que personne d'autre n'utilise le reste de tes 98 Mbit de ta super connexion.....ton application restera a 2Mbit....pas avec RCC :P

      Merci beaucoup de ton aide!!! L'equipe RCC est toujours ouverte a toutes suggestions!


      Erwan
    • [^] # Re: Application de limitation de bande passante "personnelle"

      Posté par  . Évalué à 3.

      D'après ce que je comprends en te lisant, Netlimiter ne fonctionne qu'en local, c'est-à-dire, sur une seule machine.

      Si on veut mettre en place de la QoS dans un réseau, il faut contrôler le trafic au niveau du routeur de sortie. C'est ce qui est fait avec les modules de gestion de file d'attente et des programmes comme iproute2. Tout ce petit monde cohabite sur une seule et même machine, qui sert en réalité de routeur.

      Pas de configuration nécessaire sur les clients, toute la gestion est centralisée. Et, une fois que tu as réussi à tout régler correctement (ce qui pouvait prendre du temps avant, mais peut-être que RCC est la solution :), tu n'as plus à t'en soucier.
      • [^] # Re: Application de limitation de bande passante "personnelle"

        Posté par  . Évalué à 3.

        D'après ce que je comprends en te lisant, Netlimiter ne fonctionne qu'en local, c'est-à-dire, sur une seule machine.

        Effectivement et niveau technologie QoS pure c'est a la ramasse!

        Si on veut mettre en place de la QoS dans un réseau, il faut contrôler le trafic au niveau du routeur de sortie.

        Ca c'est partiellement vrai, si tu veux mettre en place de la QoS sur ta connexion internet oui!, sinon tu ne controleras pas les flux en interne, pour cela il faut soit acheter des switch/routeur gerant la QoS (la vraie QoS...je ne parle pas ici de fonctionnalites QoS a 2 francs genre routeur Linksys) ou soit tu peux controler la QoS au niveau de chaque client.

        Apres il faut etre realiste et je ne cherche pas a lancer un troll, mais les OS Microsoft sont pour le moment encore a l'age prehistorique niveau QoS comparer aux fonctionnalites offertes par le noyau Linux. C'est d'ailleurs une des raisons qui nous a fait mettre en "standby" notre client windows....d'ailleur le client RCC est (cense) compiler sous windows, il faut juste adapter le module client (donc virer beaucoup de code en resume). Si le besoin ce fait vraiment sentir je ferai le module client pour windows....ce qui ne devrait pas prendre beaucoup de temps vu les fonctionalites disponibles.....l'ideale serais d'avoir un portage de HTB et TC sous windows.

        Maintenant clairement RCC a l'avantage de l'IHM (les wondershapper et autres scripts j'ai deja oublier ce que c'est) de plus le client te genere un fichier de log avec les commandes TC, il ne tiens qu'a toi de les scriptes au demarrage de ta machine, et le fait de pouvoir gerer tes 3/4 (voir beaucoup plus) machines (servers ou poste de travail) sous linux via la meme interface c'est indeniablement pratique que tu ais un petit reseaux Linux chez toi ou bien que tu bosses dans une entreprise qui a compris ce que c'est que Linux =).
  • # Demande d'une fonctionnalité.

    Posté par  . Évalué à 1.

    Je voulais d'abord vous féliciter pour le travail accompli (et celui à venir).

    J'utilise sur mon réseau personnel une passerelle linux avec le patch IMQ :
    Intermediate Queueing Device.
    A l'époque où je l'ai découvert, il n'était plus maintenu et j'ai du mettre
    la main dans le "camboui" pour suivre l'évolution des noyaux 2.4.
    Apparemment, les développeurs ont repris le travail, et désormais
    des patchs sont disponibles pour les noyaux 2.6 -> http://www.linuximq.net/(...) .
    J'ai laissé sur mon site dans la section download les quelques modifications
    que j'avais appporté au patch pour noyau 2.4 .

    IMQ permet la création d'interfaces virtuelles auxquelles
    ont associes des files d'attentes avec les outils fournis par iproute2 .
    Ensuite avec iptables, on va "marquer" les paquets suivant la classification choisie.
    Il y a un exemple de script sur mon site, section Documentation.

    Avant de tester RCC, J'aimerais savoir si IMQ est supporté ou sera supporté par RCC
    sachant que le patch a attiré de nombreuses personnes ces derniers temps,
    les mainteneurs étant tres actifs alors que ce patch a failli disparaitre?
    • [^] # Re: Demande d'une fonctionnalité.

      Posté par  . Évalué à 2.

      Salut,

      Ca fait plaisir de voir que je ne suis pas le seul a avoir mis les mains dans IMQ sur kernel 2.4.

      Si vous voulez de la vraie QoS sous linux avec IMQ et support des flux au niveau applicatif (Layer7) :

      Installez IPCOP avec l'addon IMQ+Layer7 ainsi que l'interface graphique de JBJBJB171717 gérant le tout.

      Rendez-vous sur
      http://forums.fr.ixus.net/viewtopic.php?t=24242(...)

      Cela permet par exemple de limiter l'upload et le download d'un flux applicatif sans pour autant en connaitre les ports.

      (Si un petit malin fait du ftp sur un port xxx, bien pas de problemes...)

      IMQ c'est quoi ?
      http://www.linuxfr-france.org.invalid/prj/inetdoc/guides/Advanced-routing-How(...)
      Layer7 c'est quoi ?
      http://l7-filter.sourceforge.net/index.php.fr(...)
      Les protocoles supportés
      http://l7-filter.sourceforge.net/protocols(...)

      A+
    • [^] # Re: Demande d'une fonctionnalité.

      Posté par  . Évalué à 1.

      A priori IMQ n'est pas dans nos priorites de develeppement qui vont plus etre integrer le marquage iptable des paquets dans l'interface, priorisation des flux par applications, developpement d'un module de stats/monitoring (je suis en relation avec quelqu'un developpant un LKM pour lemonitroring reseaux), ensuite client windows, donc a priori l'ajout de nouveau algos de gestion de file d'attente ce n'est pas pour tout de suite.
      De plus comment il est tres bien dit dans le Howto LARTC :
      Seule la mise en forme du trafic sortant est possible (un gestionnaire d'entrée existe, mais ses possibilités sont très limitées en comparaison des gestionnaires de mise en file basés sur les classes).

      Voila bon courage....mais a priori tu devrais trouver ton bonheur avec le soft de JBJBJB171717
  • # MaJ -> 0.7.1

    Posté par  . Évalué à 2.

    Grace aux gens qui ont teste le produit cela nous a permis de mettre en release une 0.7.1 de rcc avec quelques corections de bugs! Merci a tous ceux qui nous supportent et qui dors et deja utilise rcc!
    En esperant que ca avance!!! Bientot le systeme d'installation dans le systeme sera operationnel. Merci de votre comprehension et comme dirait mon ami Jean-Claude

    Amicalement et librement,

    Erwan
  • # Accès aux sources.

    Posté par  . Évalué à 2.

    Serait-il possible d'avoir un package archivés au lieu d'un fichier à
    exécuter ?

    Ce n'est pas lisible sur une plateforme qui ne dispose pas du shell, et
    c'est parfait pour se retrouver vite fait avec un trojan.

    Merci d'avance.
    • [^] # Re: Accès aux sources.

      Posté par  . Évalué à 0.

      Serait-il possible d'avoir un package archivés au lieu d'un fichier à
      exécuter ?

      A priori c'est possible, je vais le mettre sur sourceforge.....sinon il y a toujours le CVS sourceforge.

      Ce n'est pas lisible sur une plateforme qui ne dispose pas du shell

      Desole je ne savais pas que ca existe :S

      c'est parfait pour se retrouver vite fait avec un trojan.

      Un trojan? ou ca ? il est ou? Effectivement je n'ai pas signe l'installeur numeriquement....ce que j'aurais du faire....mais sur sourceforge tu ne risques pas d'avoir un trojan de la part de l'equipe RCC, de plus l'installeur n'est ni plus ni moins qu'un script shell contenant un TGZ, donc un trojan dans un script shell serais vite detecter!

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.