TPQoS

De Le wiki des TPs RSM
TP
QoS : Mise en œuvre de la qualité de service avec le protocole DiffServ



Cadre général

La salle TP possède un précâblage pour réseau local (cf. figure suivante). Un hub central permet de relier l'ensemble des bancs.

Attention.png L'utilisation d'un hub permet à chaque banc de voir le trafic produit par les autres bancs, si cette configuration n'est pas optimale, elle permet de mieux comprendre les échanges protocolaires. Il faudra par contre faire attention aux adresses source et destination des trames reçues

La configuration des salles est la suivante :

Plan.salle.B27.png   Plan.salle.B30.png
Attention.png Les connecteurs des câbles Ethernet peuvent être endommagés à cause des manipulations fréquentes dans la salle de TP. Lorsque vous câblez un équipement, vérifiez que les LED s'allument correctement des deux cotés.


Question.jpg
Notez le numéro de la salle (B27 ou B30), il sera nécessaire pour la définition du plan d'adressage.

Identification du matériel

L'ensemble du matériel utilisé pour les TPs réseaux est regroupé dans une baie au centre du banc.

Red arrow.png Identifier dans la baie:

  • 4 stations de travail (PC) Dell
  • 1 commutateur (switch) Cisco Catalyst 3560
  • 1 routeur Cisco 1841
  • 1 baie de brassage
  • 1 commutateur (switch) TP-Link
  • 1 commutateur clavier-vidéo-souris (KVM)
  • 1 faisceau de câbles réseaux verts

Baie facade.png

Le commutateur KVM permet de mutualiser l'écran, le clavier et la souris de la position située à droite du banc de travail entre les stations de travail 2,3,4. L’écran de gauche ainsi que le clavier et la souris sont totalement dédiés à la station de travail 1. Dans ce TP, les stations 3 et 4 sont inutilisées. Le commutateur KVM doit donc être en position 2 pour afficher la console du PC2 sur l'écran de droite.

Les équipements réseaux utilisés dans ce TP sont le routeur Cisco 1841 et le commutateur Cisco 3560. Le commutateur TP-Link n'est pas utilisé. Ces équipements seront configuré à travers leur console série, chacune connectée sur une station de travail différente :

  • Console série Commutateur Cisco sur le PC 1 (à gauche)
  • Console série Routeur Cisco sur le PC 2 (à droite)

Afin de faciliter les branchements, les interfaces réseaux à l’arrière des stations de travail sont déportées sur la baie de brassage. Pour connecter l'interface d'un des équipements réseaux (routeur ou switch) à l'une des interfaces des PCs, il suffit de connecter l'un des câbles réseaux verts d'un côté à la prise de l'équipement réseau et de l'autre à la prise de la baie de brassage correspondant à l'interface réseau du PC.

Attention.png Chaque câble réseau est identifié à travers une bague de couleur numérotée à chaque extrémité.

Pour les TPs réseaux, nous n'utiliserons que les deux premières interfaces des PCs 1 et 2. Ces interfaces sont reprises sur la baie de brassage de la façon suivante :

  • PC 1 Interface 0 => Baie de brassage Prise 1
  • PC 1 Interface 1 => Baie de brassage Prise 2
  • PC 2 Interface 0 => Baie de brassage Prise 7
  • PC 2 Interface 1 => Baie de brassage Prise 8

La prise 5 de la baie de brassage permet de connecter l'interface réseau d'un équipement ou d'un PC au réseau d'interconnexion de la salle.

Brassage TP réseau2.png

But du TP

Au cours de ce TP, nous allons paramètrer différents mécanismes dans le routeur pour mettre en place de la qualité de service dans le réseau. Le but est de mettre en place les éléments intervenant dans l'architecture DiffServ et de vérifier la protection offerte par ce protocole.

Architecture du TP

Voici l'architecture réseau que vous allez mettre en place.

Archi TPQoS.png

L'architecture à mettre en oeuvre a pour but de placer le routeur CISCO 1841 au centre des communications. La politique de QoS sera appliqué sur son interface de sortie vers le réseau client. Le rôle du réseau serveur est à la fois d'envoyer le flux vidéo vers le client mais aussi de véhiculer le flux de charge qui devra perturber le réseau. Ces flux seront agrégés dès le commutateur Cisco 3560.

Ces deux réseaux IP seront gérés par un routeur Cisco 1841. Ce routeur sera connecté au réseau d'interconnexion de la salle pour fournir la connectivité IP à votre banc.

Red arrow.png Repérez le routeur Cisco 1841.

Mise en oeuvre

  • le PC 1 - Serveur (à gauche) est déjà connecté au commutateur par la liaison série (bleu clair)
  • le PC 2 - Client (à droite) est déjà connecté au routeur par la liaison série

Red arrow.png Câbler le réseau suivant:

  • le PC 1 - Serveur (à gauche) est connecté au commutateur:
    • par Ethernet entre la carte eth0 et le port 1
    • par Ethernet entre la carte eth1 et le port 8 (cette liaison servira pour analyser le trafic)
  • le PC 2 - Client (à droite) est connecté:
    • au routeur par un câble croisé entre la carte eth0 et l'interface fe0/0
  • le routeur est connecté:
    • au PC2 - Client sur l'interface fe0/0 par un câble croisé
    • au commutateur entre l'interface fe0/1 et le port GigaEthernet de droite (1).

QoS base plan.png

Red arrow.png Connexion sur chacun des PC : ouvrez une nouvelle fenêtre terminal root

    • Pour vous connecter en root taper le mot de passe : pass4user
    • Les outils utiles pour le TP sont présents dans le menu Applications en haut à gauche de l'écran, sous la rubrique TP Réseaux

Câblage

  • le port Fe0/0 du routeur est connecté avec un câble croisé à l'interface eth0 du PC de droite
  • le port Fe0/1 du routeur est connecté au port 1 (GigaEthernet) du commutateur
  • le port 1 (FastEthernet) du commutateur est branché sur l'interface eth0 du PC de gauche
  • le port 8 (FastEthernet) du commutateur est branché sur l'interface eth1 du PC de gauche

Plan d'adressage

Pour le réseau serveur du banc, le plan d'adressage sera le suivant :

  • le premier octet vaut 10
  • le deuxième octet représente le numéro de votre salle de TP (27 ou 30)
  • le troisième octet représente le numéro de votre banc de TP,
  • le dernier octet désigne un des équipements du poste de travail (1 pour le PC et 126 pour le routeur).

Le plan d’adressage choisi pour le réseau client du banc est le suivant:

  • le premier octet vaut 10
  • le deuxième octet représente le numéro de votre salle de TP (27 ou 30)
  • le troisième octet représente le numéro de votre banc de TP,
  • le dernier octet désigne un des équipements du poste de travail (129 pour le PC et 254 pour le routeur).
Stylo.png
Donner l'adresse IP et sa longueur de préfixe pour les équipements suivants :




  • routeur Fe 0/0 :


  • routeur Fe 0/1 :


  • commutateur :


  • PC de gauche :


  • PC de droite :


Stylo.png
Quel est le préfixe et netmask associé au :
  • réseau serveur de votre banc :


  • au réseau de votre banc :


Red arrow.png Paramètrez les PCs :

Paramètrez l'adresses du client, la route par défaut et la route vers le réseau du serveur grâce aux instructions ifconfig et route. Faites pareil pour le serveur.
Pour voir l'utilisation des commandes, utilisez la commande man.

# ifconfig eth0 10.TP._._/25

(ou #ifconfig eth0 10.TP._._ netmask _._._._)

Configuration du Cisco

Red arrow.png sur le PC2, ouvrez une nouvelle fenêtre terminal root et lancez la commande minicom :

Would you like to enter the initial configuration dialog? [yes/no]: no


Press RETURN to get started!
...

Paramètrez l'adresse des interfaces FastEthernet du routeur.

Router>enable
Router# configure terminal
Router(config)#interface fastEthernet 0/0
Router(config-if)#ip address 10.TP._._ 255.255.255._
Router(config-if)#no shutdown
Router(config-if)#exit
Router(config)#interface fastEthernet 0/1
Router(config-if)#ip address 10.TP._._ 255.255.255._
Router(config-if)#no shutdown
Router(config-if)#end

Mise en place du routage statique

On aurait pu configurer un IGP pour mettre en oeuvre le routage. Avec notre topologie réduite, nous mettons en place un routage statique pour nous concentrer plutôt sur la configuration de la politique de QoS.

Red arrow.png Visualiser la table de routage du routeur

# netstat -rn

Red arrow.png Paramètrez les routes par défaut sur les PCs :

# ip route add default via  10.TP._._

Red arrow.png Visualiser la table de routage du routeur

# netstat -rn

Red arrow.png Paramètrez les routes côté routeur :

La syntaxe est la suivante :
ip route <prefixe> <netmask> <routeur>}}

Router#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
Router(config)#ip route 10.TP._.0 255.255.255._ FastEthernet0/1
Router(config)#ip route 10.TP._.128 255.255.255._ FastEthernet0/0
Router(config)#end
*...: %SYS-5-CONFIG_I: Configured from console by console
Building configuration...
[OK]


Red arrow.png Visualiser la table de routage du routeur

Router#show ip route

Red arrow.png Vérifiez la connectivité en pingant les PCs

Mise en mode mirroring du commutateur

Pour se connecter au switch:

Red arrow.png Dans la fenêtre du PC serveur, lancer le terminal série pour configurer le switch

# minicom

Red arrow.png Taper retour chariot, si vous voyez les lignes suivantes apparaître, repondez yes pour passer en mode configuration non assistée, sinon vous deviez voir directement l'invite Switch>

Would you like to terminate autoinstall? [yes]: yes


         --- System Configuration Dialog ---

Would you like to enter in the initial configuration dialog? [yes/no]: no
Switch>

Le commutateur est prêt à être configuré.

Pour pouvoir visualiser le trafic sur le commutateur, nous devons placer le port 8 du commutateur en mode mirroring.

Red arrow.png Sur le PC de gauche taper les commandes suivantes :

Switch> enable
Switch# configure terminal
Switch(config)#
Switch(config)#monitor session 1 source vlan 1
Switch(config)#monitor session 1 destination interface Fa0/8
Switch(config)#end
Building configuration...
[OK]

La qualité de service (QoS)

Stylo.png
Sous quelle condition du réseau la qualité de service est-elle utile ?




Stylo.png
Quelle conséquence pour la maquette ? Que faut-il faire pour mettre en évidence les mécanismes de QoS ?




Configuration de la politique de QoS

Mise en place du traffic policing

Le but de cette section est de configurer le contrôle de trafic sur l’interface de sortie du cisco.

Stylo.png
La politique de qualité de service est mise en place sur l’interface de sortie du routeur. Pourquoi ?




Stylo.png
Quelle est le rôle du mécanisme de contrôle de trafic ?




Stylo.png
Quelle est la conséquence pour le flux ?




Stylo.png
Un seau à jeton est-il adapté à ce mécanisme ?




Limitation de la taille du lien

Paramétrer le sceau à jeton pour limiter artificiellement la capacité du réseau. La commande est la suivante :

rate-limit {input | output} bps burst-normal burst-max
conform-action action 
                 exceed-action action
avec
	input/output : indique si on applique le mécanisme aux paquets entrants 
        ou sortants
 	bps : débit moyen du trafic conforme 
	burst-normal : taille de la rafale considérée conforme
	burst-max
 : taille maximale de la rafale
	conform-action : spécifie l’action à appliquer si le flux est conforme 
	exceed-action : spécifie l’action à appliquer si le flux n’est pas conforme
	action : les actions possiblessont :
            continue : on ne fait rien et on évalue la commande rate-limit suivante
            drop : jette les paquets
            set-prec-continue : change le marquage des paquets et applique 
            l’action continue.
            set-prec-transmit new-prec : change le marquage des paquets et applique 
            l’action transmit.
            Transmit : transmets les paquets


Red arrow.png Configurez le seau à jeton et donc le débit en entrée (CAR committed access Rate). Taper dans le shell console du CISCO :

Router# configure terminal
Routerconfig)#interface fastEthernet 0/1
Router(config-if)#rate-limit input 5000000 500000 1000000  conform-action transmit  
exceed-action drop
Router(config-if)#exit
Router(config)#exit
Building configuration...
[OK]


Red arrow.png vérifiez que la commande a bien été exécutée en tapant :

Router# show running-config

Test du trafic de charge

Afin de perturber le réseau, un trafic de charge est introduit grâce à l'application iperf. Il entrera en concurrence avec le flux vidéo sur le réseau.

Red arrow.png Sur le PC client (PC2), activez le client du générateur de trafic iperf qui va recevoir le flux de charge :

# iperf –s –u –p 5000

Red arrow.png L Sur le PC Serveur, lancer la génération d’un trafic  de fond UDP de 10 Mbits/s pendant 10 secondes sur le port 5000 du PC Client

# iperf –c adresse_PC_Client –u –b 10m –t 10 –p 5000
Question.jpg
Quel est le résultat de la commande ? Interprétez les valeurs données par iperf.




Red arrow.png Arrêtez le client iperf sur le PC Client

Etape 2 : Evaluation en mode Best Effort

L'objectif de cette section est de mesurer l'impact du flux de charge sur la diffusion vidéo de manière subjective.

Mesure subjective de la QoS sans perturbation

  • Sur chaque PC lancez l'application VLC (Menu Applications/Son et vidéo/Lecteur Multimédia VL)

Red arrow.png Lancez l'application vlc en réception sur le port 5001 du PC Client

  • Dans l'application VLC :
* Menu Média/Ouvrir un flux réseau.../
* Entrer une URL réseau :  rtp://@:5001

Red arrow.png Lancez vlc sur le PC serveur

# vlc 


Lancez la diffusion de la vidéo :

Red arrow.png Configurez vlc sur le PC serveur pour qu'il envoie un flux vidéo en RTP/MPEG2TS sur le port 5001 du PC Client. Pour cela ouvrez le flux vidéo "Lion_seul.mpg" stocké dans le Desktop et cochez la case de streaming puis configurez les paramètres UDP

  • Dans l'application VLC :
* Menu Média/Flux/
* Sélectionnez le fichier Lion_seul.mpg et cliquez sur Diffuser
* L'écran suivant rappel la source de la diffusion, cliquez sur Suivant
* Dans le menu déroulant Nouvelle Destination, choisissez RTP/MPEG Transport Stream et cliquez sur Ajouter
* La fenêtre demande alors l'adresse à laquelle diffuser le contenu, entrez l'adresse du client (10.TP._.129) et 

confiturez le port de base à 5001, cliquez sur Suivant

* Cliquez sur Diffuser


Question.jpg
Que constatez vous ? Quelle est la qualité de la réception ?




Mesure subjective de la QoS avec la perturbation du flux de charge

Red arrow.png Sur le PC client, activez le client du générateur de trafic iperf qui va recevoir le flux de charge :

# iperf –s –u –p 5000

Red arrow.png Relancez la diffusion de la vidéo par la commande Play

Red arrow.png Quand le flux est en cours de diffusion, lancer le trafic de fond en portant la bande passante occupée par le flux à 4 Mbps :

# iperf –c adresse_PC_Client –u –b 4m –t 10 –p 5000


Question.jpg
Que constatez vous ? Quelle est la qualité de la réception ?




Etape 3 : Mise en place de DiffServ

Stylo.png
Les applications utilisées dans ce TP ne savent pas marquer la classe de service dans les paquets qu’ils envoient. Quel mécanisme faudra-t-il donc employer ?




Le marquage

Dans cette section, vous allez mettre en place les filtres qui permettront d'attribuer la marque aux paquets.

Red arrow.png Taper dans le shell console du CISCO :

Router# configure terminal
Router(config)#access-list 110 permit udp any any eq 5000
Router(config)#access-list 111 permit udp any any eq 5001
Router(config)#access-list 112 permit udp any any eq 5002
Router(config)#exit
Building configuration...
Router#show running-config
[OK]
Question.jpg
Quelles sont les valeurs des champs permettant d'identifier un flux ?




Red arrow.png Lancez Wireshark (mode root) sur le PC Client et configurer la capture pour ne voir que les paquets IP de l'interface eth0

Red arrow.png Lancez trois flux de charge du PC Serveur vers le PC Client respectivement sur les ports 5000, 5001 et 5002 et complétez le tableaux suivant :

{{{9}}}
Flux envoyé sur le port Valeur du champ DSCP Classe de service du paquet
5000





5001





5002





Mise en place du marquage

Maintenant que l’identification des paquets est faite, il faut configurer les classes de services. Pour ce TP nous configurerons 3 classes :

  • UDP pour le trafic de streaming vidéo
  • TCP pour le trafic TCP
  • Background pour le trafic de charge
  • Par défault, tous les autres trafics seront Best Effort

Red arrow.png Tapez dans le shell console du CISCO :

Router# configure terminal
Router(config)#class-map Background
Router(config-cmap)#match access-group 110
Router((config-cmap)# exit
Router(config)#class-map UDP
Router(config-cmap)#match access-group 111
Router((config-cmap)# exit
Router(config)#class-map TCP
Router(config-cmap)#match access-group 112
Router((config-cmap)# end
Building configuration...
Router#show running-config
[OK]

Red arrow.png Configurez le marquage en définissant une politique de service :

Router# configure terminal
Router(config)#policy-map Marquage
Router(config-pmap)#class TCP
Router((config-pmap-c)# set dscp ? 
Router((config-pmap-c)# set dscp af11 
Router((config-pmap-c)# exit
Router(config-pmap)#class UDP
Router((config-pmap-c)# set dscp af21 
Router((config-pmap-c)# exit
Router(config-pmap)#class Background
Router((config-pmap-c)# set dscp af31 
Router((config-pmap-c)# exit
Router((config-cmap)# exit
Router(config)#interface fastEthernet 0/0
Router(config-if)#service-policy output Marquage
Router(config-if)#exit
Router(config)#exit
Building configuration...
Router#show running-config
[OK]

Red arrow.png Vérifiez avec Wireshark que la configuration est efficace. Complétez le tableau :

{{{9}}}
Flux envoyé sur le port Valeur du champ DSCP Classe de service du paquet
5000





5001





5002





Étape 4 : La mise en conformité des flux

La mise en conformité d’un flux permet de décrire le comportement nominal du flux et d’indiquer les actions à faire en cas de dépassement de volume du flux. Chez CISCO cela se fait en définissant un CAR : « Committed Access Rate »

Red arrow.png Configurez le CAR :

Router# configure terminal
Router(config)#policy-map CAR
Router(config-pmap)#class TCP
Router((config-pmap-c)# police 500000 
Router((config-pmap-c-police)# conform-action set-dscp-transmit af11 
Router((config-pmap-c-police)# exceed-action set-dscp-transmit af12 
Router((config-pmap-c-police)# violate-action set-dscp-transmit af13
Router((config-pmap-c-police)# exit
Router(config-pmap)#class UDP
Router((config-pmap-c)# police 2000000 
Router((config-pmap-c-police)# conform-action set-dscp-transmit af21 
Router((config-pmap-c-police)# exceed-action set-dscp-transmit af22 
Router((config-pmap-c-police)# violate-action set-dscp-transmit af23
Router((config-pmap-c-police)# exit
Router(config-pmap)#class Background
Router((config-pmap-c)# police 200000 
Router((config-pmap-c-police)# conform-action set-dscp-transmit af31 
Router((config-pmap-c-police)# exceed-action set-dscp-transmit af32 
Router((config-pmap-c-police)# violate-action set-dscp-transmit af33
Router((config-pmap-c-police)# exit
Router(config-pmap-c)#exit
Router(config-pmap)#exit
Router(config)#interface fastEthernet 0/1
Router(config-if)# no rate-limit input 5000000 500000 1000000
 conform-action transmit exceed-action drop
Router(config-if)#service-policy input CAR
Router(config-if)#exit
Router(config)#exit
Building configuration...
Router#show running-config
[OK]

Red arrow.png Refaites un test et regardez le résultat avec Wireshark

Question.jpg
Que constatez vous ?




Étape 5 : La politique de service

Après avoir défini et configuré les classes, il faut configurer la différentiation de service c’est à dire les services spécifiques qui seront offerts à chaque classe par l’intermédiaire d’une politique de service.

Red arrow.png Configurez la politique de service

Router# configure terminal
Router(config)#policy-map QoS
Router(config-pmap)#class TCP
Router((config-pmap-c)#bandwidth percent 10 
Router(config-pmap-c)#exit
Router(config-pmap)#class UDP
Router((config-pmap-c)#bandwidth percent 75 
Router(config-pmap-c)#exit
Router(config-pmap)#class Background
Router((config-pmap-c)#bandwidth percent 5 
Router(config-pmap-c)#exit
Router(config-pmap)#exit
Router(config)#interface fastEthernet 0/0
Router(config-if)#no service-policy output Marquage
Router(config-if)#service-policy output QoS
Router(config-if)#exit
Router(config)#exit
Building configuration...
Router#show running-config
[OK]
Question.jpg
Que constatez vous ?




La raison de ceci est donnée par le constructeur : « The default maximum reservable bandwidth value of 75 percent is designed to leave sufficient bandwidth for overhead traffic, such as routing protocol updates and Layer 2 keepalives. It also covers Layer 2 overhead for packets matching defined traffic classes or the class-default class. »

http://www.cisco.com/en/US/tech/tk543/tk757/technologies_tech_note09186a0080103eae.shtml

« By default, 75 percent of the interface bandwidth can be used for fancy queueing. If this percentage needs to be changed, the max reserved bandwidth command can be used to specify the amount of bandwidth that is allocated to fancy queueing. The formula for calculating the available bandwidth is: 

Available Bandwidth = (max reserved bandwidth * interface bandwidth) - (sum of priority classes)

This formula is used only if the policy map is configured and also the policy map should be applied to the corresponding interfaces. If the policy map is not configured, the formula to calculate the available bandwidth is:

Available Bandwidth = (max reserved bandwidth * interface bandwidth)» http://www.cisco.com/warp/public/121/max_reserved.html

Red arrow.png Configurez la politique de service

Router# configure terminal
Router(config)#interface fastEthernet 0/0
Router(config-if)#max-reserved-bandwidth 95
Router(config-if)#exit
Router(config)#policy-map QoS
Router(config-pmap)#class TCP
Router((config-pmap-c)#bandwidth percent 10 
Router(config-pmap-c)#exit
Router(config-pmap)#class UDP
Router((config-pmap-c)#bandwidth percent 75 
Router(config-pmap-c)#exit
Router(config-pmap)#class Background
Router((config-pmap-c)#bandwidth percent 5 
Router(config-pmap-c)#exit
Router(config-pmap)#exit
Router(config)#interface fastEthernet 0/0
Router(config-if)#service-policy output QoS
Router(config-if)#exit
Router(config)#exit
Building configuration...
Router#show running-config
[OK]

Red arrow.png Refaites le test d’envoi de streaming vidéo avec du trafic de charge iperf en concurrence

Question.jpg
Que constatez vous ?
  • Pour le streaming ?




  • Avec Wireshark ?




  • Avec iperf ?




Étape 6 : Le contrôle de congestion dans les files d’attentes

Stylo.png
Quel mécanisme est utilisé dans les files d’attente pour gérer la congestion ? Que doit faire ce mécanisme ?


Stylo.png
Comment cela va-t-il se traduire pour les différents types de paquets marqués qui vont passer dans la file d’attente ?



Remise à zéro des bancs

Red arrow.png Déconnectez tous les câbles réseaux entre les équipements et la baie de brassage.

Red arrow.png Sur le routeur et le commutateur, effacez les configurations avec la commande suivante :

Switch#write erase
Erasing the nvram filesystem will remove all configuration files! Continue? [confirm] <return>
[OK]
Erase of nvram: complete
Switch#
3d23h: %SYS-7-NV_BLOCK_INIT: Initialized the geometry of nvram
Switch#reload

System configuration has been modified. Save? [yes/no]: no
Proceed with reload? [confirm]<return>
...
Would you like to terminate autoinstall? [yes]: yes


        --- System Configuration Dialog ---

Would you like to enter the initial configuration dialog? [yes/no]: no
Switch>

Red arrow.png Eteignez les PCs avec la commande :

# shutdown

Broadcast message from root@pc-b27-21 (pts/3) (Mon Aug 11 17:44:28 2008): 

The system is going down for reboot NOW!
Outils personnels