Cisco – traffic shapping sur un routeur

Le traffic shaping ou lissage de flux permet de contrôler un flow de données sur une interface. Le but est de s’assurer que le débit induit par l’ensemble des flux atteignant la limite définis par une stratégie soit contrôlé et limiter l’impact d’un goulet d’étranglement.

Le shaping des flux peut se montrer relativement intéressant lorsqu’une asymétrie des flux de l’aval vers l’amont est effective, dans ce cas il est nécessaire de réguler le flow d’information en aval afin de prévenir d’un potentiel goulet d’étranglement. Le lissage des flux s’active lorsqu’une congestion apparait sur l’interface, pour palier à cette congestion le principe du shaping est de mettre en mémoire tampon les flux excédant est retarder la transmission afin de permettre un écoulement continue.

Schéma de représentation du traffic shaping :

Cisco permet la mise en œuvre de plusieurs méthodes de lissage des flux:

Generic Traffic Shaping

Le lissage de flux générique ou Generic Traffic Shaping (GTS) réduit le taux du trafic sortant d’une interface afin d’empêcher la congestion en limitant le débit par l’utilisation du mécanisme token bucket.

Le schéma ci-dessous présente le fonctionnement du mécanisme :

Exemple d’implémentation :

La première stratégie applique le shaping pour un certain type de flux

!

L’ACL ci-dessous permet d’identifier la nature du flux pour lequel le shapping sera effectué, en l’occurrence tous les flux UDP depuis le réseau 192.168.1.0 à destination de tous le monde.

Router(config)#access-list 121 permit udp 192.168.1.0 0.0.0.255 any
! On accède à l’interface sur laquelle on souhaite appliquer le mechanisme
Router(config-if)#interface FastEthernet0/0
! On applique la stratégie de shapping
Router(config-if)#traffic-shape group 121 1000000 125000 125000
La seconde stratégie applique le shaping pour l’ensemble des flux transitant sur l’interface
!
Router(config-if)#interface FastEthernet0/1
Router(config-if)#traffic-shape rate 5000000 625000 625000

Cet article sera bientôt complété par la mise en œuvre des méthodes Class-Based Shaping et Distributed Traffic Shaping.

Class-Based Shaping (CBS):

La méthode class-based permet de créer plusieurs class permettant de dissocier les flux en fonction des leurs propriétés. Cette stratégie permet de réaliser du traffic shapping pour un type de flux et non l’ensemble des flux sur une interface.

les étapes:

  1. Créer des « access-list » permettant d’identifier les flux
  2. Créer des « class-map » permettant de dissocier les stratégies en fonction des flux à identifier.
  3. Créer des « class »pour lesquelles il faut indiquer quelle sera la valeur

Exemple de configuration:

! classification des flux
test_qos(config)#access-list 1 permit 10.1.0.0
test_qos(config)#access-list 2 permit 10.2.0.0
test_qos(config)#access-list 101 permit tcp 10.1.1.1 0.0.0.0  any eq 80
test_qos(config)#access-list 101 permit tcp 10.1.1.1 0.0.0.0  any eq 8080
! Création des class-map en fonction de la classification des flux
test_qos(config)#class-map start1
test_qos(config-cmap)#match access-group 1
test_qos(config-cmap)#exit
test_qos(config)#class-map start2
test_qos(config-cmap)#match access-group 2
test_qos(config-cmap)#exit
test_qos(config)#class-map start3
test_qos(config-cmap)#match access-group 2
test_qos(config-cmap)#exit
! créer la politique « dyn-shap-class » et y appliquer la valeur admissible pour chaque « class »
test_qos(config)#policy-map dyn-shap-class
test_qos(config-pmap)#class start1
test_qos(config-pmap-c)#shape average 10000000
test_qos(config-pmap-c)#exit
test_qos(config-pmap)#class start2
test_qos(config-pmap-c)#shape average 5000000
test_qos(config-pmap-c)#exit
test_qos(config-pmap)#class start3
test_qos(config-pmap-c)#shape average 2000000
test_qos(config-pmap-c)#exit
test_qos(config-pmap)#exit
! appliquer la stratégie sur l’interface
test_qos(config)#interface fastEthernet 0/1
test_qos(config-if)#service-policy output dyn-shap-class
test_qos(config-if)#

Distributed Traffic Shaping  (DTS):

principe:

Cette technique est une évolution du CBS (suite à venir)

Implémentation:

(suite à venir)

Vérifier l’application du shaping:

Commande permettant de lister toutes les politiques:

test_qos#show policy-map
Policy Map dyn-shap-class
Class start1
Traffic Shaping
Average Rate Traffic Shaping
CIR 10000000 (bps) Max. Buffers Limit 1000 (Packets)
Class start2
Traffic Shaping
Average Rate Traffic Shaping
CIR 5000000 (bps) Max. Buffers Limit 1000 (Packets)
Class start3
Traffic Shaping
Average Rate Traffic Shaping
CIR 2000000 (bps) Max. Buffers Limit 1000 (Packets)

Commande permettant de lister une politique bien précise:

test_qos#show policy-map dyn-shap-class
Policy Map dyn-shap-class
Class start1
Traffic Shaping
Average Rate Traffic Shaping
CIR 10000000 (bps) Max. Buffers Limit 1000 (Packets)
Class start2
Traffic Shaping
Average Rate Traffic Shaping
CIR 5000000 (bps) Max. Buffers Limit 1000 (Packets)
Class start3
Traffic Shaping
Average Rate Traffic Shaping
CIR 2000000 (bps) Max. Buffers Limit 1000 (Packets)


Commande permettant de lister une class associée à une politique bien précise:

test_qos#show policy-map dyn-shap-class class start1
Class start1
Traffic Shaping
Average Rate Traffic Shaping
CIR 10000000 (bps) Max. Buffers Limit 1000 (Packets)
test_qos#

Laisser une réponse

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *