Dans cet article , nous commencerons par présenter la commutation dite basique , c’est-à-dire de la commutation de niveau 2 ( Modèle OSI ) pour ensuite mettre en exergue les différentes améliorations implantées au cours du temps : commutation multi-couches
(présentation des technologies RouteCaching et CiscoExpressForwarding…).

Fonctionnement d’un Switch de niveau 2

Avant de comprendre les mécanismes de commutation d’un Switch , intéressons à son ancêtre.
Au l’aube de l’ère de l’interconnexion des ordinateurs , il y avait le HUB .Basiquement un HUB est un périphérique de couche 1 agissant comme un répéteur : lorsqu’une trame arrive sur l’un de ces ports , il se contente de le réémettre par tous les autres ports sans mécanismes particuliers de filtrage ou d’inspection : il ne fait que regénéré le signal et le renvoyer : couche 1 du modèle OSI (Physique). Ainsi tous les PC de notre réseau local reçoivent toutes les trames émises , même celle qui ne les concernent pas
De plus un Hub et l’ensemble des périphériques ( ordinateurs , imprimantes.. ) qui y sont connectés constitue un même et unique domaine de collision et de broadcast.

Explicitons ces 2 termes :
- Un domaine de collision est l’ensemble des périphériques dont les trames sont suceptibles de se « heurter » sur un réseau local.Pour une meilleur compréhension , revenons sur le mode de fonctionnement initial des premières cartes réseaux (ethernet).
les premières cartes réseaux ne permettaient aux PC de communiquer qu’en mode HALF DUPLEX :

Typiquement sur un réseau local ( alors construit à l’époque avec de simple HUB ) ,la communication devait se faire dans un sens à la fois : émission OU réception . Plus le nombre de machine connectées augmentait, plus la probabilité que plusieurs machines émettent en même temps grandit et donc le risque de collision croît. Le protocole de communication Ethernet ( largement utilisé aujourd’ hui sur les réseaux LAN ) possède des mécanismes qui permettent de gérer ces problèmes ( protocole CSMA/CD).
Le mode de communication FULL DUPLEX envoi ET reception en même temps , apparût après .

- -Un domaine de collision est l’ensemble des périphériques qui recoivent un message qui a été émis en tant que broadcast dans le réseau ( correspond a une adresse MaC de destination égale à FF.FF.FF.FF.FF.FF , l’ensemble des machines appartenant au sous-réseau de l’émetteur doit tenir compte de ce type de trame ).
Tous les périphériques connectés à un HUB partagent donc la bande passante de celui-ci .
Exemple : 5 pc sont connecté à un HUB de 10mo, chaque pc bénéficiera de 2mo de bande passante.

Vînt ensuite le Pont transparent ! ce périphérique permet de segmenter un réseau local en 2 parties : le pont transparent remplit une table de correspondance Adresse Mac –Port , il connaît ainsi l’emplacement d’un périphérique sur ces ports : la commutation proprement dite est née !

Un Switch de niveau 2 n’est ni plus ni moins qu’un pont transparent multi-ports, cependant certaines caractéristiques propres au Switch ont permis d’accroître la bande passante et de diminuer la latence au sein des réseaux locaux. Cela favorisa donc son essor commercial au détriment du simple HUB .
• Chaque port d’un Switch est un unique domaine de collision : plus de collision de trames

• La bande passante annoncée pour un Switch n’est plus partagé entre les différents périphériques , la valeur annoncée est effective PAR PORT.

• Le principe de la table de correspondance « adresse Mac –PORT » est réutilisé et amélioré afin de suivre l’évolution des réseaux.

Nous venons de présenter les technologies qui définissent la genèse des réseaux ( hub , pont transparent..) , on peut ainsi mieux comprendre les mécanismes de commutations d’un Switch de niveau 2.

Mais qu’est ce que le niveau 2 ?
On parle ici de niveau 2 faisant référence au modèle OSI : la couche liaison de donnée, c’est la couche qui encapsule le paquet IP au sein d’une trame , plusieurs protocoles y opèrent , citons Ethernet , PPP, ATM, Frame Relay .
Dans un réseau local Ethernet, Lorsqu’une trame arrive au niveau du port du Switch , il enregistre dans une table la correspondance entre le port d’arrivé et l’adresse MAC source contenu dans l’entête Ethernet de la Trame. Cette table est appelé la CAM table ( Content Adressable Memory).
Ensuite le Switch , vérifie si il y a une correspondance dans la CAM afin de trouver le port sur lequel renvoyer la trame : pour cela il cherche le port de sortie correspondant à l’Addresse MAC de destination ( dans l’entête Ethernet de la trame ) .
A ce niveau du mécanisme de commutation , il y a 2 options :
• soit il existe une correspondance ( cela veut dire que le destinataire à émis du traffic auparavant et que le Switch a pu mémorisé son adresse Mac ) ,dans ce cas la trame est envoyée sur le port correspondant.
• Si aucune entrée n’est trouvée , le Switch transfert la trame sur tous les ports excepté sur celui par lequel la trame est arrivé : on parle de BEST EFFORT DELIVERY.

Ainsi nous pouvons synthétiser le processus de Switching en 3 grandes étapes :

1) Au cours des communications sur le réseau , on va extraire les adresses Mac ( extraits à partir de l’adresse source dans les entêtes Ethernet de chaque trame afin Construire une table de correspondance .
2) Lorsque l’on doit transférer une trame , la table de correspondance indique le port sur lequel le périphérique destinataire se trouve.
3)si aucune entrée n’existe pour l’adresse Mac donnée , on transfère la trame sur tous les ports excepté le port par lequel la trame est arrivée.

schema_traitement_dune_trame

  • Fonctionnement d’un Switch Multi-couches

On parle de Multi-couche dans la mesure où le processus de commutation ne s’arrête pas au niveau 2 , mais inspecte les informations de couches 3 ( Network ) et 4 ( Transport) du modèle OSI: cela signifie donc que l’on pourra prendre des décisions basées sur les réseaux de source et de destinations , et aussi sur les ports TCP ET UDP ( source et destination ) , la notion de routage apparaît alors : On parle dans ce cas de MultiLayer Switching.
Ce type de périphérique possède est composé de
• la fameuse table de correspondance Mac- port ( la CAM table ).
• une table composés d’ACL ( Access-list )de sécurité et d’ACL spécifique à la QoS ( Qualité de service ) : la TCAM (Ternary Content Adressable Memory ) .
• une base de donnée appelé la Fowarding Information Base (FIB) qui joue le rôle d’une table de routage optimisée où sont stockés les adresses de next-hop de destinations.

Voyons comment sont traités les trames à leurs arrivées dans un Switch MLS :

Plusieurs Composants Hardwares permettent au switch de traiter les paquets à grande vitesse .A l’arrivée d’une trame sur un port ( Ingress port ) , celle-ci est placée dans l’une des 4 files d’attentes qui définissent la priorité de traitement des trames ( Ingress Queue) . Le switch va alors effectuer en parallèle un ensemble de traitement de façon à déterminer :

  • La trame doit – elle être transférée ?
  • Si oui , Comment ?
  • Ou ?

Ces 3 réponses seront apportés par un traitement simultané de la trame :
la trame Ethernet sera désencapsulée , afin d’extraire les informations nécéssaire à son traitement ( on aura besoin des informations de couche comme l’ip de destination du paquet ,lesinformations de ports TCP/UDP deniveau 4 )
On doit vérifier qu’aucune ACL n’interdit la retransmission de la trame, en d’autres termes que les ACL de sécurité ne bloque pas le processus de Forwarding : Pour cela , on va consulter LA TCAM ;
Sur un switch ou un routeur, les Access-lists sont lues de façon séquentielle : chaque entrée de l’access-list sera lue et comparée à la trame , si on trouve une correspondance on sort de la boucle et on applique l’entrée correspondante , sinon on continue le processus entrée par entrée.Comprenez que ce système rajoute un temps de latence lors du traitement des trames lorsque les ACL sont importantes car plus les listes d’access sont longues , plus il y a d’entrée à lire.
Afin d’optimiser ce temps de traitement , la TCAM permet en une seule recherche de trouver l’ACL correspondante , pour cela elle est construite selon une structure particulière qui fera l’objet d’un autre cours.
c’est au sein de cette mémoire que se trouve les ACL de sécurité et de Qos compilés sous une certaine forme.
Les ACL de Qos permettent d’identifier , de marquer et de classer les trames en terme de priorité afin qu’un certain type de traffic puissent être traité de façon prioritaire en cas de congestion du réseau ( exemple : priorité de la Voix par rapport aux données)
Ainsi , après la recherche au sein de la TCAM, le Switch sait s’il doit faire suivre la trame et comment ( Marquage QoS).

La Forwarding Information Base précédemment évoquée , permet quant à elle de répondre à la question Ou ?.Cette base sera remplie au moyen de protocole de routage , par des informations de correspondance vers les prochains sauts pour des réseaux donnés ainsi que les ports de sortie.
une fois le réseau de destination et le port de sortie connus , le paquet IP doit être réencapsulé dans une trame Ethernet , car il faut maintenant réécrire certaines informations au seins des entêtes ( l’adresse MAC source et l’adresseMac de destination du prochain saut , les informations relatives à la QoS… ).Enfin la trame sera placé dans l’une des 4 files d’attentes de sortie (Egress-Queue) du port de sortie (Egress Queue ) en fonction du marquage QoS affecté.

Il existe de 2 Type de Commutations Multi-couches (MLS) :

  • MLS traditionel (NetFlow ou RouteCaching ) : Ici le switch fait intervenir 2 modules complémentaires . Un RouteProcessor et un SwitchingEngine : lorsqu’un nouveau paquet arrive ,le RouteProcessor va prendre une décision de routage afin de transmettre les données correctement ;Le switchEngine va « ecouter » les décisions prises afin de créer un raccourci qui sera gardé en mémoire (mise en cache) afin de traiter les prochaines trames appartenant au même flux sans repasser par le module RouteProcessor.
    Cette technique est aussi connu sous le nom « Route once , Switch Many ».
  • CEF : CiscoExpressForwarding , technologie propriétaire Cisco composé d’un « L3 routing engine » , moteur de niveau 3 ( assurant la fonctionalité de routeur ) qui embarque une table de routage et une table ARP. Ce moteur fonctionne de façon complémentaire avec un « L3 forwarding Engine » , module gérant la transmission des paquets qui embarque une Fowarding Information Base
    ( FIB ) et une table d’adjacence.

CEF est le protocole utilisé par défaut en raison des performances de commutations optimales qu’il délivre.
La FIB est une table de routage optimisée et construite à partir de la table de routage produit par le moteur L3 , cependant les routes sont réorganisés par longueur de préfixe : ainsi les masques les plus long , c’est-à-dire les plus précis sont placés avant les masques plus larges , cela permet de trouver une route plus rapidemment et donc de réduire le délai dans le traitement des trames.