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 équi­pe­ment réseau lar­ge­ment déployé dans les réseaux locaux des entre­prises et chez les citoyens.

Votre box est un modem/routeur/switch. Der­rière celle-ci se trouve plu­sieurs ports sur les­quels vous pou­vez bran­chez vos PC, impri­mante réseau… vous avez bien un switch chez vous !

Comme pré­ci­sé dans le cha­pitre de pré­sen­ta­tion du modèle OSI, le switch n’a besoin que des couches 1 et 2 pour fonc­tion­ner. En fait, lorsque le switch reçoit des don­nées d’un PC, il va ana­ly­ser le conte­nu 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

Pre­nons l’exemple ci des­sous ou quatre PC sont bran­chés phy­si­que­ment sur les switchs SW1 et SW2 :

Dans chaque switch se trouve une base de don­nées appe­lée « table MAC » pour Medium-Access-Control ou « table CAM » pour Content-Addressable-Memory.

Cette table fait le lien entre les ports phy­siques du switch (E0, E1, E2) et les adresses MAC sources qui arrivent sur ces ports. For­cé­ment, lors­qu’on démarre un switch, ce der­nier ne peut pas savoir quel PC est connec­té sur tel ou tel port, la table est donc logi­que­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’a­dresse MAC source et l’in­sère dans sa table (cf sché­ma). Main­te­nant le switch sait que pour joindre cette adresse MAC (AAAA.AAAA.AAAA), il doit com­mu­ter les trames vers le port E0. Cette infor­ma­tion lui ser­vi­ra donc pour le retour de la trame.
    • puis le switch extrait l’a­dresse 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ù envoyer la trame, il la dif­fuse sur tous les ports exc­pe­tés le port de récep­tion E0.
  3. la trame arrive sur le port E2 du switch SW2 
    • le switch extrait l’a­dresse MAC source et l’in­sère dans sa table (cf sché­ma). Main­te­nant le switch sait que pour joindre cette adresse MAC (AAAA.AAAA.AAAA), il doit com­mu­ter les trames vers le port E2. Cette infor­ma­tion lui ser­vi­ra donc pour le retour de la trame.
    • puis le switch extrait l’a­dresse 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ù envoyer la trame, il la dif­fuse sur tous les ports exc­pe­tés le port de récep­tion E2.
  4. la trame arrive sur la carte réseau du PC4 : gagné pour la trame aller !

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

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

Puis ils extraient l’a­dresse 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­mu­ter la trame UNIQUEMENT sur le port en question.

Trames envoyées par les différents PC

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

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

On dit que le switch a conver­gé quand sa table MAC contient toutes les adresses MAC se trou­vant dans le réseau (des PC, des impri­mantes, des bornes Widi, des serveurs,…).

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

Au final, lors­qu’une trame arrive sur SW1 ou SW2, ils sau­ront exac­te­ment où com­mu­ter cette trame.

Remarques impor­tantes :

  • la table MAC est effa­cée à chaque reboot du switch
  • la table MAC a une taille finie. Par exemple, sur un Cis­co 2950, c’est 8000 entrées. Large…
  • ce fonc­tion­ne­ment d’ap­pren­tis­sage des adresses MAC est vul­né­rable à cer­taines attaques comme par exemple la satu­ra­tion de table MAC

Pour visua­li­ser le conte­nu 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 connaît-elle l’a­dresse MAC du PC4 (DDDD.DDDD.DDDD) ?

    • Le pro­to­cole ARP (Address Reso­lu­tion Pro­to­col) est uti­li­sé par le PC1 pour décou­vrir l’a­dresse MAC asso­ciée à une adresse IP spé­ci­fique de PC4. Dans le cas du PC1, lors­qu’il sou­haite com­mu­ni­quer avec PC4, il envoie une requête ARP pour obte­nir l’a­dresse MAC cor­res­pon­dant à l’a­dresse IP de PC4.
      Un article sur le pro­to­cole ARP sera rédi­gé bientôt 🙂

  2. J’ai une question :
    Un switch 6 ports par exemple (6 Gbps) . Ce switch est connec­té à 2 PC (ou 2 tes­ters) qui envoient des trames en per­ma­nence (ADDR MAC Dest, et source …) sur 2 ports . Le switch ne connait pas les MAC address des­ti­na­tion, donc il va dif­fu­ser 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 sui­vi plein de cours sur les switch etc mais le tiens est juste limpide.
    Je ne com­pre­nais pas tout pour­tant j’u­ti­lise actuel­le­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