260 likes | 339 Views
Qualité de Service sur Linux. Malik GUILLAUD Nicolas COUTANT. Plan. Problématique Analyse État de l’art Nos Propositions. Contexte. Qualité de Service (QoS) ? Disponibilité Bande Passante Latence Gigue Pertes Exemples. Les problèmes concrets (1/2). Vue générale
E N D
Qualité de Service sur Linux Malik GUILLAUD Nicolas COUTANT
Plan • Problématique • Analyse • État de l’art • Nos Propositions
Contexte • Qualité de Service (QoS) ? • Disponibilité • Bande Passante • Latence • Gigue • Pertes • Exemples
Les problèmes concrets (1/2) Vue générale • gros download/upload ftp (ralentissement général des autres trafics) • les flux multimédia ex : radio, vidéoconférence, vocal, VoIP • favoriser la réactivité des protocoles interactifs légers ex : ssh, telnet, http, … • favoriser/limiter des applications spécifiques ex : son serveur web, un jeu, messagerie instantanée
Les problèmes concrets (2/2) Vue réseau • limiter les trafics parasites et gourmands (ex : p2p, recherche de MAJ automatique) • contrôler le partage de la bande passante • control suivant des paramètres précis (ex : adresse/masque IP, utilisateur)
Analyse • Les principaux ordonnanceurs et les architectures d’ordonnancement • Les possibilités du noyau Linux 2.6 • La commande TC
Les Architectures d’ordonnancement (1/2) • Class Based Queuing • Les differents flux sont divisés en classes avec des priorités différentes. • Les autres flux sont envoyés en Best-Effort.
Les Architectures d’ordonnancement (2/2) • Heriarchical Token Bucket • Même principe que pour CBQ (hiérarchisation des flux) mais avec un sceau à jeton comme ordonnanceur.
Les possibilités du noyau Linux 2.6 • Marquage par Netfilter/Iptables : • Grâce à la table mangle, qui permet de marquer n’importe quel paquet passant a travers le Netfilter.
La Commande TC • tc qdisc {add | del} dev INTERFACE root cbq [avpkt AVPKT] [bandwidth BP] [cell CELL] [maxburst MAXBURST] [minburst MINBURST] [minidle MINIDLE] [mpu MPU] [rate RATE] • Les classificateurs : • Fw (Firewall) : suivant le marquage par NetFilter. • U32 : peut lire n’importe quel champ d’un paquet IP. • Route : permet de classer les paquet en fonction de leur numéro de route.
État de l’Art • Les Script de QoS • TCNG (Traffic Control Next Generation)
Les Script de QoS • CBQ.init et HTB.init • Avantage : Puissant, Beaucoup de possibilités • Inconvénient : Complexité de configuration • WonderShaper • Avantage : Simplicité de configuration, « priorisation » de flux interactifs légers (ssh,telnet,…) • Inconvénient : Fonctionnalités limitées
Traffic Control Next Generation (1/2) • Génère, à partir d’un pseudo langage du genre C ou Perl et grâce à un compilateur (TCC), plusieurs formes de commandes TC. • Offre aussi la possibilité de simuler différents trafics (TCSIM).
Les contraintes • Utilisable par des personnes ayant les connaissances de bases en réseau (port, adresse IP, bande passante) • Relativement simple à configurer • Couvre un maximum de besoin en QoS
Architecture et files Quelle architecture choisir ? • Implémentation HTB de l’architecture CBQ - la plus performante - exploite les dernières MAJ du kernel Quelles files d’attentes ? htb semble être un bon choix…
La classe mère Intégration d’une « pré-hiérarchie des priorités » : • Forte priorité pour les protocoles interactifs légers : ssh, telnet • Priorité « moyenne » pour http • Priorité « assez faible » pour ftp Hiérarchie bénéfique dans la très grande majorité des cas
Les classe filles (1/2) • Une classe-fille correspond à un groupe de machines Pour chacun de ses groupes sont à configurer: • les adresses des machines du groupe • les applications spécifiques (ports et/ou adresses destinations) à forte priorité • celles à très faible priorité • la bande passante affectée à ce groupe • éventuellement les attributs unbounded et isolated (par défaut à faux pour optimiser le réseau)
Les classe filles (2/2) • Répond à la plupart des problèmes pouvant se poser • Évolutivité • Assez léger à configurer (un seul fichier et un nombre de variables raisonnable) • Nécessité de connaître tous les ports/adresses destinations des applications à configurer
Test du script • pour les priorités, une simple machine sous linux avec accès à internet • pour un 1er test sur les groupes, une passerelle et une machine cliente • tests poussés: hommel ?