320 likes | 407 Views
Qualité de Service sur Linux. Malik GUILLAUD Nicolas COUTANT. Plan. Problématique La théorie L’état de l’art Notre Solution Conclusion. Problématique. CONTEXTE. Vue générale. Monopolisation de la bande passante Exemple: upload/download ftp Handicape fortement tout autre flux
E N D
Qualité de Service sur Linux Malik GUILLAUD Nicolas COUTANT
Plan • Problématique • La théorie • L’état de l’art • Notre Solution • Conclusion
Vue générale • Monopolisation de la bande passante • Exemple: upload/download ftp • Handicape fortement tout autre flux • Flux multimédia • VoIP, vidéoconférence, radio, vocal • Débit assuré et faible latence • Protocoles interactifs légers • ssh, telnet, … • http, https, … • Garder une bonne réactivité dans tous les cas • Applications spécifiques • Favoriser / handicaper
Vue réseau • Flux parasites • p2p • Gourmand en ressources (nombre de connexions) • Gourmand en bande passante • Spywares, mises à jour intempestives,… • Partage de la bande passante • Équitablement (connexion partagée en résidence) • Selon une stratégie définie
La Théorie • Définition • Les principaux ordonnanceurs • Les architectures d’ordonnancement
Définition • Qualité de service : 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. La qualité de service désigne avant tout un transfert à débit garanti entre l'émetteur et le récepteur des données, et ce avec des temps d'attente (de latence) réduits au minimum.
Définition • Deux approches : • IntServ (Integrated Services) : • Réservation de bout en bout de la bande passante nécessaire • DiffServ (Differenciated Services) : • Séparation des flux en classes grâce à une analyse de la trame.
Les Architectures d’ordonnancement (1/2) • Class Based Queuing • Les différents 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.
La Qualité de Service sous Linux • Les possibilités du noyau Linux 2.6 • La commande TC • Les Scripts et Applications existantes
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 grâce à Netfilter.
La Commande TC • tc qdisc [ add | change | replace | link ] dev DEV [ parent qdisc-id | root ] [ handle qdisc-id ] qdisc [ qdisc specific parameters ] • tc class [ add | change | replace ] dev DEV parent qdisc-id [ classid class-id ] qdisc [ qdisc specific parameters ] • tc filter [ add | change | replace ] dev DEV [ parent qdisc-id | root ] protocol protocol prio priorityfiltertype [ filtertype specific parameters ] flowid flow-id • tc [-s | -d ] qdisc show [ dev DEV ] tc [-s | -d ] classshow dev DEV tc filter show dev DEV
Les Classifieurs • 3 classifieurs : • U32 • Trouver un champ dans une trame IP • Fw • Suivant le marquage avec Iptables/NetFilter • Route • Suivant le numéro de route dans la table de routage
Les Scripts et Applications existants • Les Script de QoS • HTBInit et CBQInit • WonderShaper • Les Applications • TCNG • RCC
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, « prioritisation » de flux internet (http,ftp,…) • Inconvénients : 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).
RCC • Très récent (Janvier 2005) • Application Client/Serveur écrite en C • Configuration Graphique • Centralisation des règles de filtrage
CONTRAINTES • Écrire un script bash • Couvrant un maximum de besoins • Simple à configurer (pour un utilisateur de base) • Utilisant les mises à jours du Kernel 2.6
PRINCIPE DE NOTRE SOLUTION (1/2) • Réseau découpé en groupes de machines
CONFIGURATION • Interface & débit montant maximum • Configuration de base • Les classes filles sont configurées par défaut • Prio1: applications spécifiques à forte priorité • Prio2: ssh, telnet • Prio3: http,https,divers • Prio4: ftp • Prio5: applications spécifiques à faible priorité • Bande passante repartie équitablement
CONFIGURATION • Configuration avancée • Pour chaque classe fille sont configurables: • Le pourcentage de bande passante • Les différents trafics (protocole,port,…)
CHOIX D’IMPLEMENTATION • Architecture HTB • Permet ce découpage en classe • Implémentation plus puissante que CBQ • Exploite les mises à jour du kernel 2.6 • Files d’attente SFQ • Classifieur « fw » • Conjointement avec des règles de filtrage Iptables
Conclusion • Bilan • Configuration légère et évolutive • Répond à la plupart des problèmes de QoS • Ce que le projet nous a apporté: • QoS domaine complexe • Compréhension des problèmes liés aux flux réseaux