CISCO · QOS

QOS – Classification et marquage

Classer puis marquer le trafic : la première brique d’une QOS efficace. NBAR, class-map, policy-map et marquage DSCP, expliqués pas à pas avec la configuration CISCO.

Allons droit au but !

Type de flux et exigences

  • Données (HTTP, FTP)

Ses exigences sont uniques par application (supportent souvent le délai et la perte). Afin de mettre en œuvre une QOS de qualité, il faut bien analyser les applications.

  • Voix (VoIP)

Afin d’avoir une bonne qualité d’appel audio :

  • Delay = 150 ms max.
  • Jitter = 30 ms max.
  • Loss = 1% max.
  • Bandwidth = associé au codec utilisé, la signalisation est estimée à 150 b/s

Attention la voix s’accompagne de la signalisation donc il va falloir gérer les deux flux.

  • Vidéo (Skype, Facetime, Streaming)

Afin d’avoir une bonne qualité d’appel vidéo :

  • Delay = 150 ms max.
  • Jitter = 30-50 ms
  • Loss = 0.1 – 1%
  • Bandwidth = irrégulière donc prévoir 20% supplémentaire à celle de base

Ok on a les critères… C’est cool !

Mais comment connaître les protocoles qui circulent sur mon réseau ?

Analyser sa situation – NBAR – PDLM

Ce n’est pas forcément facile d’analyser une situation déjà en place mais pour ça il existe la fonctionnalité Network Based Application Recognition (NBAR).

  • Dépendant du CEF (à vérifier en début de sh run)
  • S’applique sur une interface
  • Fournit les statistiques de 128 protocoles (les plus utilisés) du trafic entrant et sortant (paquets, octets, bande passante moyenne sur 5 min.)

Syntaxe :

Mise en place de la fonctionnalité R1(config-if)# ip nbar protocol-discoveryVisualisation des statistiques R1# show ip nbar protocol-discovery interface interface

Tips :

Laisser le temps à votre fonctionnalité de récolter la quantité d’information nécessaire à son exploitation (bénéfique à une meilleure QOS).

Il se peut que votre trafic ne soit pas recensé par ces 128 protocoles (vision dans la case unknow lors de la commande de visualisation de la récolte par NBAR). La nature du fichier recensant les protocoles est le Packet Description Language Module (PDLM). Il est possible de le mettre à jour (fichier à télécharger sur www.cisco.com).

R1# show ip nbar versionR1# show ip nbar pdlm

Tips :

Seul un fichier PDLM de version supérieure à celui en place pourra le remplacer.

Maintenant que je sais quels vont être mes critères…

Classifier

class-map
class-map

Comme son nom l’indique nous allons classifier nos groupes dans des « class-map » que l’on peut comparer à des dossiers.

Les class-map sont les éléments moteurs de la QOS, nous allons en créer pour colorer nos flux, gérer la congestion ou encore prévenir celle-ci. Ces class-map seront remplies d’une ou plusieurs conditions (un peu comme une boucle de programme).

Nous pouvons dès le début de la commande indiquer si nous voulons que toutes les conditions soient réunies ou si une seule d’entre elles suffira.

Toutes les conditions présentes doivent être respectées : Router(config)# class-map match-all nameUne des conditions présentes doit être respectée : Router(config)# class-map match-any name

En l’absence de match-all ou match-any l’équipement implémente automatiquement un match-all.

Création de la class-map C_fingerinthenet : Router(config)# class-map C_fingerinthenetMise en place d'un critère via la commande match : Router(config-cmap)# match

Une fois le dossier créé (config-cmap)#, voyons les différents critères possibles :

  • Access-group suit les conditions d’une access list ;
  • Protocol match directement les paquets transportant le protocole sélectionné ;
  • Input-interface : tous les paquets provenant de cette interface ;
  • Destination-MAC-address : tous les paquets ayant cette adresse en destination MAC ;
  • Source MAC adress : tous les paquets ayant cette adresse en destination MAC ;
  • Any : tous les paquets ;
  • Class-map : vous pouvez imbriquer les class-map (attention au manque de lisibilité de la configuration) ;
  • Différentes coloration : cos, ip dscp, ip précédence… (détaillé dans la section « marquer »).

Nous pouvons classifier les flux très précisément en impliquant plusieurs commandes match dans une class-map (une ACL et un autre match par exemple). Si vous ne vous souvenez plus trop des possibilités des ACL je vous invite à aller lire l’article Access-list.

Exemple : classification des flux HTTP et HTTPS en provenance de notre serveur (adresse MAC F I N T)

Nous sommes obligés de créer une ACL pour le protocole HTTPS (ne fait pas partie des possibilités de la commande match protocol) :

Création de l'ACL HTTPS : Router(config)# ip access-list extended HTTPS Router(config-ext-nacl)# permit tcp host any any eq 443 Autorise les paquets de n'importe quelle source IP vers n'importe quelle destination IP utilisant le port 443

Première version, avec deux class-map séparées :

Création de la class-map C_Serveur_HTTPS (match-all par défaut) : Router(config)# class-map C_Serveur_HTTPS Router(config-cmap)# match access-group name HTTPS Router(config-cmap)# match source-MAC-adress F :I :N :T utilisant le port 443 ET qui ont F:I:N:T comme adresse MAC sourceCréation de la class-map C_Serveur_HTTP : Router(config)# class-map C_Serveur_HTTP Router(config-cmap)# match protocol http Router(config-cmap)# match source-MAC-adress F :I :N :T utilisant le protocol HTTP (port 80) ET qui ont F:I:N:T comme adresse MAC source

Deuxième version, pas la plus simple, mais montrant la possibilité d’imbrication :

Création de la class-map C_Prot_Serv : Router(config)# class-map match-any C_Prot_Serv Router(config-cmap)# match access-group name HTTPS Router(config-cmap)# match protocol http utilisant le port 443 OU utilisant le protocole HTTP (port 80)Création de la class-map C_Serveur : Router(config)# class-map C_Serveur Router(config-cmap)# match source-MAC-adress F :I :N :T Router(config-cmap)# match class-map C_Prot_Serv ont F:I:N:T comme adresse MAC source ET qui remplissent les conditions de la C_Prot_Serv

Quelques règles sur la class-map avant de continuer :

  • Par défaut l’équipement applique un match-all
  • 256 class-map par équipement maximum
  • maximum 40 caractères pour le nom de class-map

Marquer

Notre volonté est de peindre les voitures provenant de notre serveur FINT et utilisant les protocoles HTTP et HTTPS. Nous avons appris à trier les voitures (classification), maintenant il faut choisir la bonne couleur.

Il faut créer une stratégie appelée « policy-map » dans laquelle on va :

  • affecter les class-map (identifie les bonnes voitures) ;
  • utiliser la commande set afin de choisir la peinture à appliquer.

Nous n’allons qu’aborder les policy-map, dans le but du marquage. Nous en reparlerons dans la « gestion de la congestion ».

Création de la stratégie fingerinthenet : Router(config)# policy-map fingerthenet Router(config-pmap)# class C_Serveur Router(config-pmap-c)# Implication de la class-map C_Serveur dans la stratégie

La stratégie est créée, nous avons sélectionné les voitures (class-map), maintenant il va falloir choisir la couleur pour ces voitures.

Set

Modification des en-têtes de paquet
Modification des en-têtes de paquet

Qu’est-ce que la couleur ? C’est un changement d’état des bits de champs spécifiques faisant partie de l’en-tête de la couche 2 ou de la couche 3.

Le marquage peut être effectué dans différentes en-têtes de la couche 2 :

  • cos : dans la trame 802.1Q sur 3 bits ;
  • exp : dans la trame MPLS sur 3 bits ;
  • de : dans la trame Frame Relay sur 1 bit ;
  • clp : marquage dans la trame ATM sur 1 bit.

Ces marqueurs seront préservés dans leur propre réseau uniquement (à moins de mettre en place une « class-map » qui match leur coloration – critères des class-map un peu plus haut) !!!!

en-tête IP et position du champ contenant le marquage
en-tête IP et position du champ contenant le marquage

Nous allons nous attarder sur le marquage de la couche 3 :

  • Ip précedence : les 3 bits de poids fort du champ Type Of Service (ToS) ;
  • DSCP (Differentiated Service Code Point) : les 6 bits de poids fort du champ ToS.
Bilan de la coloration couche 3
Bilan de la coloration couche 3

À vous d’organiser votre marquage, mais j’ai quelques conseils :

  • CS7 & CS6 : application sur les échanges des protocoles de routage ;
  • Express Forwarding EF : application sur les flux de VOIP ;
  • cohérence : vis à vis de la totalité de votre réseau.

On sait de quoi est composée la couleur, nous nous étions arrêtés dans la stratégie après avoir impliqué la class-map.

Exemple : modification du champ DSCP

Router(config)# policy-map fingerthenet Router(config-pmap)# class C_Serveur Router (config-pmap-c)# set ip dscp cs4 (ou 32)

Application de la stratégie

On a choisi les voitures, la couleur et préparé nos ateliers de peintures. Nous devons mettre en place cette coloration au plus près des services, soit l’interface directement connectée à mon serveur.

Router(config)# interface fastEthernet 0/1 Router(config-if)# service-policy input fingerinthenet

On remarquera le input, cela signifie que tous les paquets entrant par cette interface seront examinés par la stratégie.

À partir de ce moment, les paquets traversant cette stratégie sont considérés comme des BEHAVIOR AGREGATE “BA”.

Afin de le vérifier :

Router# sh policy-map
policy-map
Mise en place d’une stratégie en input

Comme on peut le remarquer sur l’image, il va falloir installer des marquages à chaque entrée et au plus près de nos services.

Bilan

Bilan classification et marquage

L’étape de classification et marquage est terminée mais ça ne change rien à la congestion existante… Ce n’était que la première étape ! Maintenant on peut :

  • Gérer la congestion ;
  • Faire de la prévention de congestion.
Portrait d'Eric Jouffrion, contributeur du site FingerInTheNet

Eric JOUFFRILLON

Co-auteur de l'article

Expert SATCOM
Technicien Réseau
17 ans d’éxpérience déploiement réseau SATCOM
Spécialisé LFN (Long Fat Network).Diffusion vidéo et QOS.

Photo en noir et blanc de Noël Nicolas

Noël NICOLAS

Auteur de l'article

Expert Réseau
15 ans d’expérience
CCNP Routing and Switching
Fondateur du site FingerInTheNet

Formation CCNA 200-301Formation CCNA

Devenez certifié CCNA 200-301

La formation complète Cisco, à votre rythme et accès à vie.

Voir la formation →

Guide CISCO
🎁 eBook offert · valeur 9,90€

Recevez gratuitement le Guide CISCO

Le guide complet de configuration CISCO, offert à tous les membres de la communauté FITN.

  • Toutes les commandes CISCO essentielles
  • Des exemples concrets pas à pas
  • Téléchargement immédiat en PDF

Presque terminé !

Entrez vos informations pour recevoir le guide.