Vous êtes sur la page 1sur 8

Configuration de la QoS sur un rseau de Campus

Didier Benza
SEMIR, INRIA Sophia-Antipolis
2004, route des Lucioles BP 93 FR 06902 Sophia-Antipolis Cedex
Didier.Benza sophia.inria.fr

Rsum 2 Les services diffrencis


Si les techniques de Qualit de Service ou QoS sont trs L'architecture des Services Diffrencis ou DiffServ,
utilises dans les environnements oprateurs, elles restent dcrite dans la RFC 2475 [1], permet aux quipements
peu utilises sur les rseaux de campus. Le principal rseaux centraux de prendre des dcisions sur l'avenir d'un
usage qui en est fait actuellement est la protection des paquet sans qu'ils aient besoin pour cela de maintenir des
communications tlphoniques. C'est bien sr ncessaire, tables d'tats pour chaque flux. La mise jour et la
mais c'est trs en-dessous de ce que savent faire les conservation de telles tables ne pourraient pas passer
quipements des rseaux de campus. Une configuration l'chelle de l'Internet. Les nuds placs la frontire d'un
globale de la QoS permet de rendre le rseau intelligent domaine effectuent un travail de classification des flux, de
vis--vis des flux qu'il achemine. Cela lui permet de ragir mise en forme du trafic et de marquage des paquets. Le
beaucoup mieux des stress ou des agressions. marquage utilise une valeur numrique (Code Point) qui
Aprs quelques rappels sur DiffServ et l'architecture est insre dans l'en-tte IP. Les nuds placs au cur du
matrielle des quipements de niveau 2, nous montrerons rseau peuvent associer trs rapidement des dcisions
les applications de la QoS au-del de la protection de la d'acheminement aux flux agrgs avec un mme Code
voix et nous dtaillerons les lments qui doivent tre Point. On nomme Per Hop Behavior (PHB), le
configurs. Nous prsenterons aussi un outil dvelopp comportement d'un nud relatif un Code Point donn.
par les moyens informatiques de l'INRIA de Sophia qui Un Domaine DS est un ensemble de nuds contigus
simplifie les tches de configuration de la QoS au niveau 3 ayant le mme ensemble de PHB dfinis. Une Rgion
sur un routeur Cisco. DS est un ensemble de domaines DS contigus, chaque
domaine tablissant des Spcifications de Niveau de
Mots clefs Service avec ses voisins, comme dcrit dans la RFC 3260
[2].
QoS, 802.1p, DSCP, DiffServ, PHB, XMLQoS, Cisco Afin de transporter le Code Point au sein de l'en-tte IP, les
6 bits de l'octet TOS du paquet IPv4 (ou de l'octet Traffic
1 Contexte Class d'IPv6) ont t r-utiliss [3]. Il s'agit du champ
DS . Ces six bits portent les valeurs dites DSCP pour
Le Centre de Recherche INRIA de Sophia-Antipolis a Differentiated Services Code Point. Il y a donc 64 Code
depuis longtemps fait le choix d'avoir une attitude Point diffrents, chacun pouvant tre associ un PHB.
protectionniste sur la gestion de la bande passante. C'est Par extension du PHB, la RFC 3086 [4] dfinit le Per
dire, de limiter les dbits en fonction du type d'usage. Cela Domain Behavior (PDB) qui reprsente le comportement
est d la fois au nombre de rseaux que nous grons, attendu d'un domaine DS vis--vis de flux portant une
mais aussi et surtout au fait que certains de nos rseaux valeur DSCP particulire.
sont utiliss des fins exprimentales ou servent hberger
des organismes (startups, Ercim/W3C) avec lesquels nous La valeur DSCP 0 est associe au PHB Best Effort (BE)
ngocions des contrats de service. Lorsque les valeurs ou Default. Le PHB BE correspond au comportement
issues de la ngociation sont fixes, nous implmentons la par dfaut rserv la grande majorit des paquets. Il
configuration de QoS rsultante sur nos quipements de s'agit d'un acheminement sans garantie en termes de
niveau 3. variation de dlai ou de pertes.
Par ailleurs, nous avons chang les quipements du rseau Les Class Selector Code Point (CS) sont les valeurs
local en 2005. L'appel d'offre se passait quelque temps numriques du champ DSCP ayant une reprsentation
avant la mise en place d'une architecture de tlphonie sur binaire de la forme xxx000. Il y a donc 8 CS diffrents.
IP. Cela nous a rendu particulirement exigeants lors de la La RFC 3662 [5] suggre que le Class Selector 1
rdaction du CCTP et vigilants sur les capacits des (001000) soit utilis pour marquer des paquets devant
quipements lors de l'analyse des rponses, puisque les recevoir une priorit plus basse que la normale (LE :
tlphones devaient tre raccords directement sur les Lower Effort). Le PHB associ cette valeur DSCP est
quipements de niveau 2. Lors de la mise en place de la le suivant : un paquet LE ne devrait tre transmis sur un
maquette qui a prcd la mise en service des nouveaux lien que s'il est inutilis. Cette classe est aussi nomme
quipements, nous avons dcouvert l'tendue et la richesse Scavenger dans la littrature, par analogie avec la classe
de la configuration de la QoS au niveau 2. du mme nom sur Internet 2 [6].
La RFC 2597 [7] standardise les PHB Assured
Forwarding (AF). Ces PHB correspondent la
dfinition de 4 classes AFi o 1 i 4, classes par
ordre de priorit croissante. Chaque classe dispose de 3
Classe de Service DSCP
niveaux de drop precedence ou probabilit de
suppression. On note un PHB AF sous la forme AFij o Network Control CS6
1 j 3. Pour une classe i donne, plus la valeur de j
est grande, plus la probabilit que le paquet soit dtruit, Telephony EF
en cas de congestion, est leve. Les nuds qui
supportent les classes AF doivent limiter la congestion Signaling CS5
sur le long terme en dtruisant des paquets mais
Multimedia Conferencing AF41, AF42, AF43
autorisent des congestions de courte dure provenant de
bursts en retardant des paquets. Real-Time Interactive CS4
Le code DSCP EF (pour Expedited Forwarding), dfini
dans la RFC 3246 [8], correspond au PHB attendu pour Multimedia Streaming AF31, AF32, AF33
le traitement de paquets ncessitant un service de bout
Broadcast Video CS3
en bout avec peu de pertes, de latence et de gigue. Un
paquet marqu avec la valeur EF doit tre expdi le Low-Latency Data AF21, AF22, AF23
plus rapidement possible. Il ne doit tre retard que par
l'acheminement d'autres paquets EF qui le prcdent. OAM CS2
Un nud de priphrie est du type Multi-Field Classifier,
c'est--dire qu'il va considrer des lments tels que le High-Throughput Data AF11, AF12, AF13
protocole, les adresses source et destination et les numros Standard DF (CS0)
de ports pour tablir un marquage DS qui correspondra
un PHB au sein du rseau. Un profil de trafic spcifie les Low-Priority Data CS1
proprits temporelles d'un flux slectionn par un
classifier. Il donne des rgles qui permettent de dterminer Figure 1 - Associations entre Classe de Service et DSCP
si un paquet particulier du flux est dans le profil ou hors
profil. Un flux hors profil est conditionn par shaping ou La RFC 4594 [9] indique aussi des rgles de marquage
par policing : spcifiques pour les flux AF. Un classifier doit utiliser
l'algorithme Single Rate Three Color Marker (srTCM
Le shaping consiste retarder certains ou tous les dfini dans la RFC 2697 [10]). Pour une classe AFi, les
paquets de faon obliger un flux se conformer son paquets respectant le profil de trafic (Committed
profil de trafic. Il ncessite donc une file d'attente. Information Rate) devraient tre marqus en AFi1, les
Quand elle est pleine, les paquets sont dtruits. paquets qui dpassent un premier seuil (Committed Burst
Le policing dtruit certains ou tous les paquets d'un flux Size) devraient tre marqus AFi2 et ceux qui dpassent un
afin qu'il se conforme son profil de trafic second seuil (Excess Burst Size), AFi3.
La RFC 4594 [9] vient de dfinir de faon trs explicite
quel marquage DSCP devrait tre appliqu en fonction du 3 La QoS au niveau 2 (Ethernet)
type de flux. Les principales recommandations sont
reproduites dans la figure 1. La gestion de la QoS sur des liens Ethernet se fait en
utilisant le champ CoS (Class of Service) dfini par la
norme IEEE 802.1p et utilis par les trames 802.1q. Le
champ CoS a une longueur de 3 bits et ne permet donc la
transcription que de 8 classes de services. Des rgles
d'association du code DSCP vers une valeur CoS
approprie sont ncessaires. Ces associations n'ont pas fait
l'objet d'une normalisation.
Postes de travail, tlphones, terminaux

1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

2 2 2 2
Files d'attente
3 3 3 3

Coeur du rseau

Figure 2 - Les diffrents points configurer


La figure 2 montre 3 points o la QoS intervient dans un
quipement rseau. Ces points sont dcrits ci-aprs :
1. La classification et le policing : Tous les paquets issus
de la classification sont marqus d'une valeur DSCP.
2. La gestion de la congestion : (AQM : Active Queue annes, on a vu des vers qui se rpandent trs rapidement et
Management). Il s'agit de rpartir les diffrents PHB gnrent des quantits considrables de trafic. Slammer
utiliss dans les diffrentes files d'attente (gnralement [11] gnrait 54 000 scans par seconde pendant son pic
moins nombreuses) et de programmer la gestion de la d'expansion. Le nombre de machines infectes doublait
congestion afin que la destruction des paquets ne soit pas toutes les 8,5 secondes et le ver gnrait des flux UDP la
alatoire. On trouvera ici des algorithmes tels que vitesse maximum de la carte rseau. Slammer ne visait pas
Weighted Tail Drop (WTD), Random Early Detection un port trs populaire (sinon Internet aurait t bloqu en
(RED), Weighted RED qui prviennent la congestion en quelques minutes) mais russissait infecter une machine
dtruisant prventivement des paquets de la file. WTD avec un seul paquet. Le cur du ver tait une minuscule
permet, par exemple, d'associer une valeur DSCP ou CoS boucle qui gnrait un paquet de 404 octets vers une
un seuil. Une fois que ce seuil de remplissage a t atteint, adresse IP alatoire. Une machine infecte connecte
les trames marques avec cette valeur peuvent tre 100 Mbits/s pouvait envoyer 30 000 paquets par seconde.
dtruites. Une prochaine gnration de ver, au lieu de se propager
3. L'ordonnancement : C'est la faon dont le commutateur alatoirement, pourrait viser l'adressage du rseau de la
choisit, parmi les paquets en attente dans les diffrentes machine infecte. Qui peut dire qu'un ver de ce type ne sera
files, celui qu'il va acheminer. On trouvera ici des pas lanc dans les annes qui viennent ?
algorithmes tels que Shaped Round Robin (SRR), Par ailleurs, on constate une intgration croissante du
Weighted Round Robin (WRR) ou Deficit WRR (DWRR). rseau dans le Systme d'Information : agrgation de ports
SRR, par exemple, fonctionne en deux modes : shaped ou vers des serveurs et configuration du bon algorithme de
shared. Une file d'attente servie en mode shaped dispose rpartition de charge, configuration de Virtuals Servers au
d'une bande passante garantie et borne. Une file d'attente niveau des Data Center, etc. Le rseau est configur au
servie en mode shared est assure de pouvoir disposer d'au plus prs des applications, il constitue une part importante
moins un certain pourcentage de la bande passante restante. de l'infrastructure du SI. Il est ncessaire de doubler les
Si une file en mode shared est vide, les autres files liens, de doubler les alimentations et les CPU des
disposent temporairement de plus de bande passante. Cet quipements rseaux, mais ces mesures ne protgent que de
algorithme permet donc d'viter que les flux prioritaires pannes matrielles, elles ne peuvent rien contre une attaque
monopolisent un lien. Le contrle du profil de bande virale gnralise. L'architecture DiffServ permet
passante est gnralement assur dans les quipements d'augmenter globalement la disponibilit des services jugs
avec un algorithme Leaky Bucket ou Token Bucket. Ce indispensables par l'organisme.
dernier est reprsent dans la figure 3 sous une version Une fois rdige la liste, ncessairement courte, des
image. Des jetons tombent dans un seau toutes les 1/r services indispensables, l'quipe rseau doit mettre en
secondes et le seau ne peut en contenir qu'un nombre limit place une configuration globale de QoS charge de
au total. Quand un paquet de N octets arrive, chaque octet protger les flux correspondant ces services. Elle doit
du paquet est associ un jeton. S'il y a assez de jetons crer un domaine DS au sein de l'tablissement. Cette mise
dans le seau, le paquet peut passer et il emporte avec lui N en place doit se faire en prenant en compte, en mme
jetons. temps, le niveau 3 et le niveau 2.
S'il n'y en a pas assez, le
Afin d'illustrer notre propos, nous allons prendre un
paquet est considr comme
exemple concret d'implmentation d'une politique de QoS
non conforme. srTCM, par
au niveau 2. Il ne s'agit pas de l'architecture mise en place
exemple, utilise 2 token Paquets
Tokens
sur le rseau de Sophia, mais plutt d'une prsentation des
buckets.
possibilits des quipements.
Les commutateurs disposent
d'un nombre variable de On choisit de :
files d'attente en entre et en garantir le fonctionnement de l'ensemble des postes
sortie. Les structures de files tlphoniques ;
d'attente des quipements garantir le fonctionnement des quipements de
Cisco sont dcrites dans la visioconfrence ;
documentation avec des
expressions du type 1PxQyT Figure 3 - L'algorithme du protger les accs quelques applications client/serveur
o 1P indique qu'il y a une interactives (missions, bons de commandes, demandes
token bucket d'interventions aux moyens informatiques...).
file prioritaire, xQ reprsente x files d'attentes non
prioritaires et yT reprsente y seuils par file d'attente. Pour des raisons oprationnelles videntes, nous ajoutons
cette liste d'applications propose par la direction de
l'organisme, la protection du trafic OAM1 (SNMP, ssh sur
4 La QoS sur un rseau de campus les quipements, etc). Bien sr, cette liste de services est un
Une architecture de QoS ne permet pas un rseau exemple, un autre site pourra choisir de protger la
messagerie, un serveur Web ou des sauvegardes.
manifestement sous-dimensionn de bien fonctionner, il
doit tre adapt au trafic achemin. Mais le ratio habituel Nous allons caractriser chaque trafic (type de trafic et
entre le dbit des ports de collecte et celui des liens profil de bande passante par port) et utiliser la figure 1
montant est trop faible dans les rseaux actuels pour qu'ils
soient non bloquant. plusieurs reprises, ces dernires OAM : Operation Administration and Management
1
pour dterminer quel PHB utiliser. Les valeurs de CoS sont mls qos map dscp-cos 46 to 5
choisies arbitrairement quand aucune norme n'existe. mls qos map dscp-cos 16 to 7
mls qos map cos-dscp 0 8 18 40 34 46 47 16
La tlphonie est une application critique qui ne tolre
Nous mettons en place les ACL permettant de classifier les
ni perte, ni latence, ni gigue. Nous utiliserons le PHB
paquets. S'agissant d'ACL tout fait classiques, nous ne les
EF (46). La valeur CoS associe sera 5 selon le standard
dtaillerons pas. Pour l'exemple, voici ce que pourrait tre
IEEE 802.1D [12]. On limite la bande passante
l'ACL de classification des flux OAM :
maximum 128 Kbits/s.
ip access-list extended management
Nous marquerons la signalisation avec le PHB CS5 (40) permit udp any any eq 161
et une CoS de 3. La signalisation qui accompagne une permit tcp any any eq 161
communication tlphonique ne dpasse pas 32 Kbits/s. permit tcp any r.r.r.0 0.0.0.255 eq ssh
Les applications que nous devons protger sont du type On dfinit ensuite des class-maps utilisant les ACL que
low-latency : un humain est devant l'cran et attend une nous venons de dfinir. L encore, nous n'crirons qu'une
rponse. Nous utiliserons donc le PHB AF21 (18) et la seule class-map, pour l'exemple :
valeur CoS 2. Pour cet exemple, le profil normal de class-map match-all management
trafic sera de 5 Mbits/s. Dans la ralit, chaque match access-group name management
application peut disposer d'un profil diffrent. Nous programmons le comportement global de remarquage
La visioconfrence disposera du PHB AF41 (34) et de DSCP pour les paquets dpassant leur profil pour les PHB
la valeur CoS 4. La visioconfrence utilise au maximum BE, CS2, AF21, AF41, CS5 vers le PHB LE :
2 Mbits/s par quipement. mls qos map policed-dscp 0 16 18 34 40 to 8
Le trafic OAM utilisera le PHB CS2 (16) et une CoS de L'action policed-dscp-transmit provoquera un remarquage
7. Son profil est de 1 Mbits/s. du paquet suivant la configuration programme avec la
Tous les autres paquets mis par le poste de travail commande ci-dessus. On cre deux policy-map, charges
seront marqus avec le PHB BE (0), nous utiliserons la de marquer et policer le trafic. Une pour la tlphonie, qui
valeur CoS de 0. Ils disposeront d'un profil de 5 Mbits/s. sera applique sur les ports raccordant des tlphones et
une pour les autres ports. Si on utilise les voice-vlan, qui
Les quipements de collecte, utiliss dans l'exemple, sont
permettent de cascader un PC derrire un tlphone, on
des Cisco Catalyst 3750 et 3750-E. Voici le dtail des
peut se contenter d'une seule policy-map pour les deux
fonctionnalits en chacun des 3 points indiqus dans la
VLANs. Dans la policy-map cre pour le trafic de
figure 2 :
tlphonie, on profile 32 Kbits/s les flux qui ne sont pas
1. Les C3750 sont des Multi-Field Classifiers, ils peuvent de la voix ou de la signalisation et on marque ces paquets
pratiquer du policing ou du shaping en entre et remarquer avec le PHB LE. Ce qui dpasse le profil est dtruit.
ou dtruire les paquets qui ne respectent pas leur profil. Chaque ligne police x y configure un token bucket de dbit
L'architecture matrielle ne permet pas la mise en place de x bits/s admettant des bursts de y octets.
srTCM. En contrepartie, nous marquerons les paquets policy-map telephonie
dpassant leur profil dans la classe Scavenger. la liste class telephonie
des PHB dcids prcdemment, nous ajoutons donc la set dscp 46
classe Scavenger avec le PHB LE (8) et une CoS de 1. police 128000 8000 exceed-action drop
class signalisation
2. Les C3750 disposent de files d'attente du type 1P3Q3T set dscp 40
qui peuvent aussi tre configures sous la forme 4Q3T si police 32000 8000 exceed-action
on souhaite renoncer la priority queue. L'algorithme policed-dscp-transmit
AQM est Weighted Tail Drop (WTD), il faut donc tablir class class-default
des associations entre les valeurs CoS ou DSCP, d'une part set dscp 8
police 32000 8000 exceed-action drop
et des seuils dans des files, d'autre part.
3. L'algorithme d'ordonnancement utilis sur les C3750 est policy-map data
class prioritaire
SRR. set dscp 18
police 5000000 32000 exceed-action
policed-dscp-transmit
Programmation d'un commutateur de collecte class visioconf
Nous activons la QoS au niveau global du commutateur : set dscp 34
mls qos police 2000000 128000 exceed-action
policed-dscp-transmit
partir de cet instant, tout paquet entrant sur le class management
commutateur est systmatiquement remarqu avec le PHB set dscp 16
BE et une CoS de 0 par le commutateur. police 1000000 32000 exceed-action
policed-dscp-transmit
Nous mettons en place les associations DSCP vers CoS et class class-default
CoS vers DSCP que nous avons dfinies : set dscp 0
mls qos map dscp-cos 0 to 0 police 5000000 32000 exceed-action
mls qos map dscp-cos 8 to 1 policed-dscp-transmit
mls qos map dscp-cos 18 to 2 On applique les deux politiques aux interfaces. Disons que
mls qos map dscp-cos 40 to 3
mls qos map dscp-cos 34 to 4
les 12 premiers ports raccordent des tlphones.
interface range FastEthernet1/0/1-12 configurer la file 1 en mode shaped pour le trafic de
service-policy input telephonie tlphonie. On limite ce trafic 1% de la bande passante
interface range FastEthernet1/0/13-48 sur le lien (1/100me). Les autres files sont positionnes en
service-policy input data mode shared et se partageront la bande passante restante.
Nous organisons l'affectation des diffrents PHB dans les 4 On choisit de rpartir la bande passante restante de la faon
files d'attentes du port uplink. Nous avons dfini 7 PHB suivante :
diffrents, certains PHB vont donc devoir partager la mme 70% pour le trafic prioritaire
file d'attente. Les seuils et l'utilisation de l'algorithme WTD 25% pour le trafic BE
permettent d'organiser cette coexistence et de favoriser les
PHB les plus prioritaires. Nous appliquons grossirement 5% pour le trafic Scavenger
la rgle suivante : nous affectons le trafic de tlphonie la Interface gigabitethernet1/0/1
srr-queue bandwidth shape 100 0 0 0
file 1 (configure en file prioritaire), les trafics prioritaires srr-queue bandwidth share 1 70 25 5
la file 2, le trafic BE la file 3 et le trafic Scavenger la queue-set 1
file 4. Nous utilisons les seuils afin d'introduire une priority-queue out
prfrence pour les flux prioritaires dans une file partage. La dernire ligne active le fonctionnement de la file 1 en
Nous programmons les associations DSCP->(file, seuil) de file prioritaire : la file est inspecte aprs chaque
faon cohrente avec les associations CoS->(file, seuil). expdition. Si un paquet attend, il passera toujours le
mls qos srr-queue output cos-map queue 1 premier.
threshold 3 5
mls qos srr-queue output cos-map queue 2
threshold 3 3 Programmation du cur de rseau
mls qos srr-queue output cos-map queue 2
threshold 2 4 Nous avons vu comment configurer les quipements de
mls qos srr-queue output cos-map queue 2 collecte afin qu'ils classent, policent et marquent le trafic
threshold 2 2 entrant sur le rseau. Le cur de rseau ne fait pas de
mls qos srr-queue output cos-map queue 2 marquage, il fait confiance aux valeurs DSCP et CoS qu'il
threshold 1 7
mls qos srr-queue output cos-map queue 3 reoit des commutateurs de collecte. Il agit comme un
threshold 3 0 Behavior Aggregate Classifier dfini en [3]. Par contre, il
mls qos srr-queue output cos-map queue 4 faut programmer les associations (DSCP, CoS) vers les
threshold 3 1 files d'attente, comme nous l'avons fait pour les liens
mls qos srr-queue output dscp-map queue 1 montants des commutateurs de collecte. Cette
threshold 3 46 programmation tant rigoureusement identique, dans le
mls qos srr-queue output dscp-map queue 2 principe, celle des commutateurs de collecte, nous ne la
threshold 3 40 dtaillerons pas. Dans le cas du Cisco Catalyst 6500, qui
mls qos srr-queue output dscp-map queue 2 est l'quipement de cur que nous utilisons, chaque carte
threshold 2 34
mls qos srr-queue output dscp-map queue 2 d'interface dispose d'une architecture qui lui est propre. Par
threshold 2 18 exemple, les cartes 4 ports 10 Gbits disposent d'une
mls qos srr-queue output dscp-map queue 2 architecture 1P7Q8T pour les files (1 file prioritaire, 7 files
threshold 1 16 d'attentes non prioritaires et 8 seuils par file) et l'algorithme
mls qos srr-queue output dscp-map queue 3 d'ordonnancement est DWRR, alors que les cartes 24 et 48
threshold 3 0 ports 1 Gbits ont une architecture 1P3Q8T/DWRR. La
mls qos srr-queue output dscp-map queue 4
threshold 3 8 programmation du Control Plane Policing (CoPP), sur les
quipements de cur ou de bordure, afin de limiter l'accs
Nous devons maintenant programmer les niveaux exacts des trafics indsirables vers leur CPU est au-del du
des seuils. Le seuil n3 est implicitement toujours 100% primtre de ce document. La lecture du document
de la taille de la file. Nous avons utilis ce seuil pour les Deploying Control Plane Policing [13] permettra toutefois
PHB EF, BE et LE qui disposent respectivement de la d'obtenir toutes les informations ncessaires.
totalit des files 1, 3 et 4, nous n'avons donc pas besoin de
programmer les seuils de ces files. Nous avons affect les Dans le cas o des protocoles de routage transitent entre le
PHB AF21, AF41, CS2 et CS5 aux diffrents seuils de la cur de rseau et le routeur WAN, ces flux (TCP) doivent
file 2. Nous devons programmer la valeur des seuils qui absolument tre protgs avec le PHB CS6.
seront utiliss. Cela se fait en programmant un queue-set.
Deux queue-sets sont disponibles sur le commutateur,
chaque interface tant affecte l'un ou l'autre. Nous
programmons les seuils suivants :
50% pour le seuil n 1 (associ aux paquets OAM)
90% pour le seuil n2 (associ aux applications
prioritaires et la visioconfrence)
mls qos queue-set output 1 threshold 2 50 90
100 100
Enfin, nous devons programmer la faon dont l'algorithme
SRR va vider chaque file vers le lien. On choisit de
Remarquage

RENATER BE CS0 CS0


LE CS1 CS1
Figure 5 - Exemple de rgles de remarquages
Nous allons dtailler le remarquage dans le sens Renater
vers Campus, nous ne dtaillerons pas l'autre sens, qui est
similaire. Nous devons programmer une rgle de
remarquage pour les paquets AF41, en mettant en place un
marquage en fonction de la destination, en effet c'est le seul
moyen de slectionner les flux de visioconfrence dans les
flux prioritaires et de leur appliquer un marquage diffrent.
Nous devons aussi faire du policing afin de limiter les flux
des valeurs raisonnables. Disons que nous programmons
10 Mbits/s pour la totalit des visioconfrences et
2 Mbits/s maximum pour chacune. Pour les flux
prioritaires, nous choisissons 10 Mbits/s au total et
5 Mbits/s par flux. On remarque LE les paquets qui
dpassent lgrement la limite et on dtruit les paquets qui
la dpassent trop. On ne dtaille pas les ACL qui
Figure 4 - Vue globale des liens protgs correspondent aux destinations. Voici un exemple de
class-map pour les flux destination des quipements de
La figure 4 schmatise les diffrents points qui sont visioconfrence marqus avec le PHB AF41 :
programms. La figure montre des serveurs et le
class match-all vers-visio
commutateur les distribuant, dont la configuration n'est pas match dscp af41
voque dans cet article. La configuration du commutateur match access-group name vers-visio
pour des serveurs est diffrente de celle pour des postes
On dfinit la politique en entre de RENATER. Chaque
clients dans le sens o on marque les flux qui sortent des
ligne police x y z... configure un srTCM :
serveurs, mais ils ne sont pas polics de la mme faon. Par
policy-map deRENATER
contre, on peut limiter le trafic Scavenger destination des class vers-visio
serveurs des valeurs raisonnables afin qu'ils ne soient pas police 10000000 810000 1280000
affects par du trafic viral. conform-action set-dscp-transmit af41
exceed-action set-dscp-transmit cs1
violate-action drop
Actions au niveau de l'accs WAN police flow 2000000 200000 conform-action
L'accs WAN est une ressource critique, souvent fortement set-dscp-transmit af41
exceed-action drop
dgrade lors d'attaques. C'est aussi le point de contact class vers-prioritaire
entre deux domaines DS, celui de l'oprateur et celui du police 10000000 810000 1280000
campus. Il faut donc mettre en place des rgles de conform-action set-dscp-transmit af21
remarquage et de policing. La plupart des sites exceed-action set-dscp-transmit cs1
universitaires sont raccords des rseaux rgionaux ou violate-action drop
mtropolitains, chacun d'eux ayant son offre de Services police flow 5000000 400000 conform-action
set-dscp-transmit af21
Diffrencis. Pour l'exemple, utilisons les choix de Renater exceed-action drop
qui offre un modle pour l'offre des rseaux rgionaux. Le class bestEffort
document Classes de Services de RENATER [14] liste set dscp default
l'offre disponible pour les ayant droits : class class-default
set dscp cs1
Less than Best Effort, DSCP LE (8), profil non limit ;
interface FastEthernet1
Best Effort, DSCP BE (0), profil non limit ; service-policy input deRENATER
Better than Best Effort, DSCP AF41 (34) profil limit
Il ne serait pas draisonnable de positionner des profils de
10% de l'agrment.
trafic, dans la politique ci-dessus, pour les trafics LE et BE
La tlphonie, la signalisation et les flux OAM n'ont pas
et d'intercepter les paquets marqus avec le DSCP AF41
vocation sortir du campus. On voit dans la figure 5 ce que
qui ne seraient pas rellement destins des applications
pourraient tre les rgles de remarquage pour les autres
prioritaires.
flux.
Dans cet exemple, nous avons donc implment 7 Per
Flux Campus RENATER Domain Behavior diffrents permettant de rpondre aux
demandes de haute disponibilit. Nous avons tabli des
Visioconfrence AF41 AF41 rgles de remarquage prservant ces flux au niveau de
l'oprateur. Dans un cadre de fonctionnement normal, sans
Prioritaires AF21 AF41 congestion, la configuration que nous avons mise en place
aura pour seul effet d'assurer l'acheminement du trafic de
tlphonie avec une latence et une variation de dlai exceed-action drop
minimum. Mais dans le cas d'un stress ou d'une agression, interface interfaceB
comme une attaque virale, le trafic indsirable sera marqu service-policy input policy_B_out
dans la classe Scavenger et il impactera donc moins le On voit que pour cet exemple trs simple, la configuration
trafic lgitime. est dj longue et que la combinatoire allonge les ACL.
C'est trs rapidement difficile maintenir lorsque le
5 XMLQoS nombre de rseaux crot. Chaque modification exige de
repasser sur toutes les ACL et de chercher son impact avec
Depuis quelques annes dj, nous avons dcid les risques d'erreurs qui en dcoulent.
d'implmenter une configuration de QoS sur le routeur
C6500 charg du routage interne. Cette configuration Nous avons donc dcid de rdiger nos rgles simplement,
dcrit trs prcisment une matrice des dbits autoriss via un abstraction layer bas sur XML. Nous utilisons une
pour les flux entre chaque rseau et de dbit maximum par application pour gnrer le code Cisco final. L'exemple
rseau. Mais la maintenance au quotidien de cette prcdent se rdige dans notre langage de la faon
configuration est vite devenue ardue. suivante :
<config>
Pour comprendre le problme, admettons par exemple que <networks>
nous ayons 3 rseaux relis l'Internet A = 10.1.0.0/16, <network name="A">
B = 10.2.0.0/16 et C = 10.3.0.0/16. On veut mettre en <interface name="interfaceA"/>
place du policing pour les flux entre A et B une valeur X, <is>10.1.0.0 0.0.255.255</is>
pour les flux qui vont de A vers l'Internet une valeur Y et </network>
<network name="B">
pour les flux qui vont de B vers l'Internet une valeur Z. <interface name="interfaceB"/>
On ne veut pas policer les flux qui vont vers C. <is>10.2.0.0 0.0.255.255</is>
Comment dcrit-on l'Internet ? Ce n'est ni A, ni B, ni C. </network>
<network name="C">
Voil la configuration qui rsulte de cet exemple simple : <interface name="interfaceC"/>
ip access-list extended from_A_to_any <is>10.3.0.0 0.0.255.255</is>
deny ip any 10.2.0.0 0.0.255.255 <noqos opt="yes"/>
deny ip any 10.3.0.0 0.0.255.255 </network>
permit ip 10.1.0.0 0.0.255.255 any </networks>
<flowmatrix>
class-map match-any from_A_to_any <flow source="A" destination="B" bw="X"
match access-group name from_A_to_any burst="x"/>
ip access-list extended from_A_to_B <flow source="A" destination="any" bw="Y"
permit ip 10.1.0.0 0.0.255.255 10.2.0.0 burst="y"/>
0.0.255.255 <flow source="B" destination="A" bw="X"
burst="x"/>
class-map match-any from_A_to_B <flow source="B" destination="any" bw="Z"
match access-group name from_A_to_B burst="z"/>
policy-map policy_A_out </flowmatrix>
class from_A_to_any </config>
police flow Y y conform-action transmit Au-del de la diffrence de lisibilit vidente entre les deux
exceed-action drop codes, la figure 6 montre une comparaison du nombre de
class from_A_to_B
police flow X x conform-action transmit
lignes de code IOS et XMLQoS ncessaires pour crer une
exceed-action drop configuration proche de celle ci-dessus, en augmentant
rgulirement le nombre de rseaux (contrle de la bande
interface interfaceA passante globale par VLAN en plus).
service-policy input policy_A_out
450
ip access-list extended from_B_to_any 400
deny ip any 10.1.0.0 0.0.255.255 350
Nombre de lignes

deny ip any 10.3.0.0 0.0.255.255 300


permit ip 10.2.0.0 0.0.255.255 any 250

class-map match-any from_B_to_any 200 ACL Cisco


XMLQoS
match access-group name from_B_to_any 150

100
ip access-list extended from_B_to_A 50
permit ip 10.2.0.0 0.0.255.255 10.1.0.0 0
0.0.255.255 3 4 5 6 7

Nombre de rseaux
class-map match-any from_B_to_A
match access-group name from_B_to_A
Figure 6 - Nombre de lignes compar XMLQoS/Cisco
policy-map policy_B_out
class from_B_to_any XMLQoS est compos d'un script PERL et d'une DTD
police flow Z z conform-action transmit XML. Nous utilisons la forge INRIA pour son
exceed-action drop dveloppement et l'application est tlchargeable
class from_B_to_A l'adresse suivante : http://xmlqos.gforge.inria.fr/.
police flow X x conform-action transmit
L'hbergement sur la forge rendant ais le travail Pour chaque application visible de l'Internet, il est possible
collaboratif, toute personne dsirant contribuer de mettre en place un profil de trafic normal. Le trafic
l'volution de XMLQoS est la bienvenue. lgitime n'est pas impact par ce profil et en cas d'attaque,
le trafic abusif est limit un seuil tolrable. Ce mcanisme
6 Bilan et perspectives vient efficacement complter l'ouverture d'ACL et participe
la Politique de Scurit du Systme d'Information.
L'utilisation de XMLQoS nous pargne normment de
temps et de travail de configuration. Elle nous permet Bibliographie
d'viter au quotidien des erreurs de manipulation. Cette
syntaxe simplifie permet de masquer la complexit de la [1] S. Blake, D. Black, M. Carlson, E. Davies, Z. Wang,
configuration et facilite les modifications de celle-ci. W. Weiss, An Architecture for Differentiated
Le script actuel correspond nos besoins. Toutefois le Services, RFC 2475, Dcembre 1998
travail sur la syntaxe XML et le script peut encore tre [2] D. Grossman, New Terminology and Clarifications
poursuivi : for Diffserv, RFC 3260, Avril 2002
le script ne gnre des policy-maps qu'en entre sur les [3] K. Nichols, S. Blake, F. Baker, D. Black, Definition
interfaces, pas en sortie ; of the Differentiated Services Field (DS Field) in the
il ne permet pas de manipuler le champ DSCP, ni de IPv4 and IPv6 Headers, RFC 2474, Dcembre 1998
dfinir un srTCM ; [4] K. Nichols, B. Carpenter, Definition of Differentiated
il ne permet pas de prendre en compte plusieurs types Services Per Domain Behaviors and Rules for their
d'quipements (en fonction de leurs possibilits). Specification , RFC 3086, Avril 2001
[5] R. Bless, K. Nichols, K. Wehrle, A Lower Effort Per-
Domain Behavior (PDB) for Differentiated Services,
La configuration en production sur le rseau de l'INRIA RFC 3662, Dcembre 2003
Sophia utilise une configuration de QoS matrielle de
niveau 2 depuis maintenant 2 ans. Sur ces deux annes [6] Stanislav Shalunov, Benjamin Teitelbaum, QBone
d'exploitation, la tlphonie n'a jamais t impacte par un Scavenger Service (QBSS) Definition, Mars 2001
problme survenu sur le rseau et la qualit des [7] J. Heinanen, F. Baker, W. Weiss, J. Wroclawski,
communications est la mme que celle qui existait sur Assured Forwarding PHB Group, RFC 2597, Juin
l'infrastructure ddie prcdente. Lors de la phase de 1999
maquette, nous avons gnr des flux UDP de 2 gbits/s [8] B. Davie, A. Charny, J.C.R. Bennet, K. Benson, J.Y.
vers des liens de 100 Mbits/s sans impact sur une Le Boudec, W. Courtney, S. Davari, V. Firoiu, D.
communication tlphonique empruntant le mme lien. Stiliadis, An Expedited Forwarding PHB (Per-Hop
Nous avons utilis les techniques de QoS au niveau 2 afin Behavior), RFC 3246, Mars 2002
de rendre prioritaires certains VLANs par rapport [9] J. Babiarz, K. Chan, F. Baker, Configuration
d'autres. Sur la priode d'observation, aucun vnement Guidelines for DiffServ Service Classes, RFC 4594,
majeur n'a dclench l'activation de la QoS. Nous Aot 2006
envisageons une volution de l'architecture de scurit dont [10] srTCM J. Heinanen, R. Guerin, A Single Rate Three
l'une des briques sera la mise en place d'une architecture
Color Marker , RFC 2697, Septembre 1999
proche de celle que nous venons de dcrire.
[11] Jerome H. Saltzer, Slammer : An urgent wake-up call,
Fvrier 2003
L'utilisation de QoS au niveau 3 nous a rendu de prcieux
[12] IEEE, 802.1D, Media Access Control (MAC) Bridges,
services en limitant les consquences d'vnements Table G-2, p 244,
accidentels, par exemple : http://standards.ieee.org/getieee802/download/802.1D
la chute d'une des 3 implantations mondiales du W3C, -2004.pdf, Juin 2004
celle hberge au MIT et la raffectation des [13] Cisco Systems, Deploying Control Plane Policing,
connexions sur les 2 sites restants (INRIA Sophia et White Paper,
Universit de Keio), la limitation programme de la
http://www.cisco.com/application/pdf/en/us/guest/pro
bande passante la valeur ngocie avec le consortium a ducts/ps6642/c1244/cdccont_0900aecd804fa16a.pdf,
vit que toute la bande passante de l'institut soit 2005
utilise ;
[14] RENATER, Classes de Services,
la limitation de la bande passante alloue chaque http://www.renater.fr/spip.php?article389, Juin 2007
visiteur et globalement l'ensemble du rseau visiteur a
vit des propagations rapides de virus ;
la programmation par un doctorant d'un algorithme de
gestion de processus distribus et le lancement d'un test
avec des commandes wget visant le rapatriement de
fichiers ISO aurait pu compltement utiliser la bande
passante du site si les flux n'avaient pas t limits.