Comment fonctionne notre ami le switch? Démonstration!

7

Le switch ou commutateur est un équipement réseau largement déployé dans les réseaux locaux des entreprises et chez les citoyens.

Votre box est un modem/routeur/switch. Derrière celle-ci se trouve plusieurs ports sur lesquels vous pouvez branchez vos PC, imprimante réseau… vous avez bien un switch chez vous!

Comme précisé dans le chapitre de présentation du modèle OSI, le switch n’a besoin que des couches 1 et 2 pour fonctionner. En fait, lorsque le switch reçoit des données d’un PC, il va analyser le contenu de l’entête de la couche 2, qui dans un réseau local est l’entête du protocole Ethernet.

Fonctionnement

Prenons l’exemple ci dessous ou quatre PC sont branchés physiquement sur les switchs SW1 et SW2:

Dans chaque switch se trouve une base de données appelée “table MAC” pour Medium-Access-Control ou “table CAM” pour Content-Addressable-Memory.

Cette table fait le lien entre les ports physiques du switch (E0, E1, E2) et les adresses MAC sources qui arrivent sur ces ports. Forcément, lorsqu’on démarre un switch, ce dernier ne peut pas savoir quel PC est connecté sur tel ou tel port, la table est donc logiquement 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 destination = DDDD.DDDD.DDDD
  2. la trame arrive sur le port E0 du switch SW1
    • le switch extrait l’adresse MAC source et l’insère dans sa table (cf schéma). Maintenant le switch sait que pour joindre cette adresse MAC (AAAA.AAAA.AAAA), il doit commuter les trames vers le port E0. Cette information lui servira donc pour le retour de la trame.
    • puis le switch extrait l’adresse MAC destination (DDDD.DDDD.DDDD) et la compare à sa table: aucune entrée trouvée donc ne sachant pas où envoyer la trame, il la diffuse sur tous les ports excpetés le port de réception E0.
  3. la trame arrive sur le port E2 du switch SW2
    • le switch extrait l’adresse MAC source et l’insère dans sa table (cf schéma). Maintenant le switch sait que pour joindre cette adresse MAC (AAAA.AAAA.AAAA), il doit commuter les trames vers le port E2. Cette information lui servira donc pour le retour de la trame.
    • puis le switch extrait l’adresse MAC destination (DDDD.DDDD.DDDD) et la compare à sa table: aucune entrée trouvée donc ne sachant pas où envoyer la trame, il la diffuse sur tous les ports excpetés le port de réception 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 fonctionnement est le même que précédemment. On remarque 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 destination (AAAA.AAAA.AAAA) et la compare à 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’à commuter la trame UNIQUEMENT sur le port en question.

Trames envoyées par les différents PC

 

En générant petit à petit du trafic entre les différents PC, les tables MAC des switchs sont se remplir. L’objectif est de ne plus diffuser les trames vers tous les ports mais uniquement vers un seul port, celui où se situe le PC de destination.

 

L’avantage dans un environnement Microsoft est que les PC sont très verbeux, avant même qu’on ouvre une session Windows, plusieurs trames sont envoyées dans le réseau. Donc les switchs remplissent très rapidement leur table MAC.

 

On dit que le switch a convergé quand sa table MAC contient toutes les adresses MAC se trouvant dans le réseau (des PC, des imprimantes, des bornes Widi, des serveurs,…).

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

Au final, lorsqu’une trame arrive sur SW1 ou SW2, ils sauront exactement où commuter cette trame.

Remarques importantes:

  • la table MAC est effacée à chaque reboot du switch
  • la table MAC a une taille finie. Par exemple, sur un Cisco 2950, c’est 8000 entrées. Large…
  • ce fonctionnement d’apprentissage des adresses MAC est vulnérable à certaines attaques comme par exemple la saturation de table MAC

Pour visualiser le contenu de la table sur un switch Cisco, il faut faire

Switch# show mac-address-table
PARTAGER SUR

7 COMMENTAIRES

  1. J’ai suivi plein de cours sur les switch etc mais le tiens est juste limpide.
    Je ne comprenais pas tout pourtant j’utilise actuellement GNS3 et paquet tracer.
    Merci à toi.
    Ton site est dans mes favoris 🙂

LAISSER UNE RÉPONSE