Qualité de Service sur Linux

publicité
Qualité de Service sur Linux
Malik GUILLAUD
Nicolas COUTANT
Plan
2

Problématique

La théorie

L’état de l’art

Notre Solution

Conclusion
Problématique
CONTEXTE
INTERNET
Passerelle Linux
Sous-réseau 1
Sous-réseau 2
4
Vue générale

Monopolisation de la bande passante
–
–

Flux multimédia
–
–

–
–
ssh, telnet, …
http, https, …
Garder une bonne réactivité dans tous les cas
Applications spécifiques
–
5
VoIP, vidéoconférence, radio, vocal
Débit assuré et faible latence
Protocoles interactifs légers
–

Exemple: upload/download ftp
Handicape fortement tout autre flux
Favoriser / handicaper
Vue réseau

Flux parasites
–
p2p


–

Spywares, mises à jour intempestives,…
Partage de la bande passante
–
–
6
Gourmand en ressources (nombre de connexions)
Gourmand en bande passante
Équitablement (connexion partagée en résidence)
Selon une stratégie définie
Qualité de Service – La Théorie
La Théorie

Définition

Les principaux ordonnanceurs

8
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.
9
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.
10
Les Ordonnanceurs
11
Les Architectures d’ordonnancement (1/2)

Class Based Queuing
–
–
12
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
–
13
Même principe que pour CBQ (hiérarchisation
des flux) mais avec un sceau à jeton comme
ordonnanceur.
La Qualité de Service sous Linux
14

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 :
–
15
Grâce à la table MANGLE, qui permet de
marquer n’importe quel paquet grâce à Netfilter.
La Commande TC
16

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 priority filtertype
[ filtertype specific parameters ] flowid flow-id

tc [-s | -d ] qdisc show [ dev DEV ]
tc [-s | -d ] class show dev DEV
tc filter show dev DEV
Les Classifieurs

3 classifieurs :
–
U32

–
Fw

–
Suivant le marquage avec Iptables/NetFilter
Route

17
Trouver un champ dans une trame IP
Suivant le numéro de route dans la table de routage
Les Scripts et Applications existants

Les Script de QoS
–
–

Les Applications
–
–
18
HTBInit et CBQInit
WonderShaper
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,…)
–
19
Inconvénients : Fonctionnalités limitées
Traffic Control Next Generation (1/2)
20

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).
Traffic Control Next Generation (2/2)
21
RCC




22
Très récent (Janvier 2005)
Application Client/Serveur écrite en C
Configuration Graphique
Centralisation des règles de filtrage
Notre Solution
CONTRAINTES

Écrire un script bash
–
–
–
24
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
INTERNET
GROUPE 1
Passerelle Linux
Sous-réseau 1
GROUPE 2
GROUPE 3
Sous-réseau 2
GROUPE 4
25
PRINCIPE DE NOTRE SOLUTION (2/2)
GROUPE 1
Classe mère 1
BANDE PASSANTE:
100 Kbit
Sous-réseau 1
Classe fille PRIO 1
26
Classe fille PRIO 2
Bande passante:
30%
Bande passante:
20%
Paquets:
dest:tcp/80
dest:tcp/110
Paquets:
dest:udp/554
Classe fille PRIO 3
Classe fille PRIO 4
Bande passante:
25%
Bande passante:
20%
Paquets:
default
Paquets:
icmp
Classe fille PRIO 5
Bande passante:
5%
Paquets:
dest:tcp/4661
dest:tcp/4662
src:tcp/4662
CONFIGURATION


27
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:


28
Le pourcentage de bande passante
Les différents trafics (protocole,port,…)
CHOIX D’IMPLEMENTATION

Architecture HTB
–
–
–


Files d’attente SFQ
Classifieur « fw »
–
29
Permet ce découpage en classe
Implémentation plus puissante que CBQ
Exploite les mises à jour du kernel 2.6
Conjointement avec des règles de filtrage Iptables
Conclusion
Conclusion

Bilan
–
–

Ce que le projet nous a apporté:
–
–
31
Configuration légère et évolutive
Répond à la plupart des problèmes de QoS
QoS domaine complexe
Compréhension des problèmes liés aux flux
réseaux
MERCI
Téléchargement