AccueilCCNACCNA coursComment fonctionne notre ami le switch? Démonstration!

Comment fonctionne notre ami le switch ? Démonstration !

Le switch ou com­mu­ta­teur est un équipement réseau large­ment déployé dans les réseaux locaux des entre­pris­es et chez les citoyens.

Votre box est un modem/routeur/switch. Der­rière celle-ci se trou­ve plusieurs ports sur lesquels vous pou­vez branchez vos PC, imp­ri­mante réseau… vous avez bien un switch chez vous !

Comme pré­cisé dans le chapitre de présen­ta­tion du mod­èle OSI, le switch n’a besoin que des couch­es 1 et 2 pour fonc­tion­ner. En fait, lorsque le switch reçoit des don­nées d’un PC, il va analyser le con­tenu de l’en­tête de la couche 2, qui dans un réseau local est l’en­tête du pro­to­cole Ethernet.

Fonctionnement

Prenons l’ex­em­ple ci dessous ou qua­tre PC sont branchés physique­ment sur les switchs SW1 et SW2 :

Dans chaque switch se trou­ve une base de don­nées appelée « table MAC » pour Medi­um-Access-Con­trol ou « table CAM » pour Content-Addressable-Memory.

Cette table fait le lien entre les ports physiques du switch (E0, E1, E2) et les adress­es MAC sources qui arrivent sur ces ports. For­cé­ment, lorsqu’on démarre un switch, ce dernier ne peut pas savoir quel PC est con­nec­té sur tel ou tel port, la table est donc logique­ment vide.

Trame initiée par PC1 à destination de PC4

  1. la trame sort de la carte réseau de PC1 avec : 
    • adresse MAC source = AAAA.AAAA.AAAA
    • adresse MAC des­ti­na­tion = DDDD.DDDD.DDDD
  2. la trame arrive sur le port E0 du switch SW1 
    • le switch extrait l’adresse MAC source et l’in­sère dans sa table (cf sché­ma). Main­tenant le switch sait que pour join­dre cette adresse MAC (AAAA.AAAA.AAAA), il doit com­muter les trames vers le port E0. Cette infor­ma­tion lui servi­ra donc pour le retour de la trame.
    • puis le switch extrait l’adresse MAC des­ti­na­tion (DDDD.DDDD.DDDD) et la com­pare à sa table : aucune entrée trou­vée donc ne sachant pas où envoy­er la trame, il la dif­fuse sur tous les ports excpetés le port de récep­tion E0.
  3. la trame arrive sur le port E2 du switch SW2 
    • le switch extrait l’adresse MAC source et l’in­sère dans sa table (cf sché­ma). Main­tenant le switch sait que pour join­dre cette adresse MAC (AAAA.AAAA.AAAA), il doit com­muter les trames vers le port E2. Cette infor­ma­tion lui servi­ra donc pour le retour de la trame.
    • puis le switch extrait l’adresse MAC des­ti­na­tion (DDDD.DDDD.DDDD) et la com­pare à sa table : aucune entrée trou­vée donc ne sachant pas où envoy­er la trame, il la dif­fuse sur tous les ports excpetés le port de récep­tion E2.
  4. la trame arrive sur la carte réseau du PC4 : gag­né pour la trame aller !

Trame réponse envoyée par PC4 à destination de PC1

Le fonc­tion­nement est le même que précédem­ment. On remar­que que lorsque la trame arrive sur les switchs, ils insèrent l’adresse MAC source DDDD.DDDD.DDDD dans leur table.

Puis ils extraient l’adresse MAC des­ti­na­tion (AAAA.AAAA.AAAA) et la com­pare à leur table et là ils savent où se situe cette adresse MAC ; port E2 pour le switch SW2 et port E0 pour le switch SW1. Ils n’ont plus qu’à com­muter la trame UNIQUEMENT sur le port en question.

Trames envoyées par les différents PC

En générant petit à petit du traf­ic entre les dif­férents PC, les tables MAC des switchs sont se rem­plir. L’ob­jec­tif est de ne plus dif­fuser les trames vers tous les ports mais unique­ment vers un seul port, celui où se situe le PC de destination.

L’a­van­tage dans un envi­ron­nement Microsoft est que les PC sont très ver­beux, avant même qu’on ouvre une ses­sion Win­dows, plusieurs trames sont envoyées dans le réseau. Donc les switchs rem­plis­sent très rapi­de­ment leur table MAC.

On dit que le switch a con­vergé quand sa table MAC con­tient toutes les adress­es MAC se trou­vant dans le réseau (des PC, des imp­ri­mantes, des bornes Widi, des serveurs,…).

Dans le sché­ma ci dessus, on voit bien que les adress­es des 4 PC sont bien dans cha­cune des tables de SW1 et SW2.

Au final, lorsqu’une trame arrive sur SW1 ou SW2, ils sauront exacte­ment où com­muter cette trame.

Remar­ques importantes :

  • la table MAC est effacée à chaque reboot du switch
  • la table MAC a une taille finie. Par exem­ple, sur un Cis­co 2950, c’est 8000 entrées. Large…
  • ce fonc­tion­nement d’ap­pren­tis­sage des adress­es MAC est vul­nérable à cer­taines attaques comme par exem­ple la sat­u­ra­tion de table MAC

Pour visu­alis­er le con­tenu de la table sur un switch Cis­co, il faut faire

Switch# show mac-address-table

21 Commentaires

  1. Bon­jour, mer­ci pour les expli­ca­tions. C’est très clair.
    J’ai une ques­tion : com­ment la carte réseau du PC1 con­naît-elle l’adresse MAC du PC4 (DDDD.DDDD.DDDD) ?

    • Le pro­to­cole ARP (Address Res­o­lu­tion Pro­to­col) est util­isé par le PC1 pour décou­vrir l’adresse MAC asso­ciée à une adresse IP spé­ci­fique de PC4. Dans le cas du PC1, lorsqu’il souhaite com­mu­ni­quer avec PC4, il envoie une requête ARP pour obtenir l’adresse MAC cor­re­spon­dant à l’adresse IP de PC4.
      Un arti­cle sur le pro­to­cole ARP sera rédigé bientôt 🙂

  2. J’ai une question :
    Un switch 6 ports par exem­ple (6 Gbps) . Ce switch est con­nec­té à 2 PC (ou 2 testers) qui envoient des trames en per­ma­nence (ADDR MAC Dest, et source …) sur 2 ports . Le switch ne con­nait pas les MAC address des­ti­na­tion, donc il va dif­fuser sur tous les ports (sauf le port reçu)…
    Cette dif­fu­sion va créer un encom­bre­ment de la mémoire du switch ?

  3. J’ai suivi plein de cours sur les switch etc mais le tiens est juste limpide.
    Je ne com­pre­nais pas tout pour­tant j’u­tilise actuelle­ment GNS3 et paquet tracer.
    Mer­ci à toi.
    Ton site est dans mes favoris 🙂

LAISSER UN COMMENTAIRE

S'il vous plaît entrez votre commentaire!
S'il vous plaît entrez votre nom ici

Les plus populaires