User Tools

Site Tools


reseau:commutation-principe

Fonctionnement de la commutation

metatoc_4-5

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

Dansq le 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.

Exemple d'environnement

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

PC1 PC3 SW1 SW2 PC2 PC4 E0 E0 AAAA.AAAA.AAAA CCCC.CCCC.CCCC E2 E2 BBBB.BBBB.BBBB DDDD.DDDD.DDDD E1 E1
Switch 1 Switch 2
Interface MAC Interface MAC
E0 E0
E1 E1
E2 E2

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

PC1 PC3 SW1 SW2 PC2 PC4 (1) (3) E0 E0 AAAA.AAAA.AAAA CCCC.CCCC.CCCC E2 E2 (2) BBBB.BBBB.BBBB DDDD.DDDD.DDDD E1 E1 (2) (3)
Switch 1 Switch 2
Interface MAC Interface MAC
E0 AAAA.AAAA.AAAA E0
E1 E1
E2 E2 AAAA.AAAA.AAAA
  • (1) la trame sort de la carte réseau de PC1 avec:
    • adresse MAC source = AAAA.AAAA.AAAA
    • adresse MAC destination = DDDD.DDDD.DDDD
  • 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.(2)
  • 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.(3)
  • 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

PC1 PC3 SW1 SW2 PC2 Réponse de PC4 à PC1 (3) (1) E0 E0 AAAA.AAAA.AAAA CCCC.CCCC.CCCC E2 E2 (2) BBBB.BBBB.BBBB DDDD.DDDD.DDDD E1 E1 PC4
Switch 1 Switch 2
Interface MAC Interface MAC
E0 AAAA.AAAA.AAAA E0
E1 E1 DDDD.DDDD.DDDD
E2 DDDD.DDDD.DDDD E2 AAAA.AAAA.AAAA

Le fonctionnement est le même que précédemment. On note 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

PC1 PC3 SW1 SW2 PC2 PC4 De PC2 vers PC4 E0 E0 AAAA.AAAA.AAAA CCCC.CCCC.CCCC E2 E2 (2) BBBB.BBBB.BBBB DDDD.DDDD.DDDD E1 E1 (1) (3)
Switch 1 Switch 2
Interface MAC Interface MAC
E0 AAAA.AAAA.AAAA E0
E1 BBBB.BBBB.BBBB E1 DDDD.DDDD.DDDD
E2 DDDD.DDDD.DDDD E2 AAAA.AAAA.AAAA
BBBB.BBBB.BBBB

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.

PC1 PC3 SW1 SW2 PC2 PC4 De PC2 vers PC3 (2) (3) E0 E0 AAAA.AAAA.AAAA CCCC.CCCC.CCCC E2 E2 (2) BBBB.BBBB.BBBB DDDD.DDDD.DDDD E1 E1 (1) (3)
Switch 1 Switch 2
Interface MAC Interface MAC
E0 AAAA.AAAA.AAAA E0
E1 BBBB.BBBB.BBBB E1 DDDD.DDDD.DDDD
E2 DDDD.DDDD.DDDD E2 AAAA.AAAA.AAAA
BBBB.BBBB.BBBB

Les switchs remplissent très rapidement leur table MAC.

PC1 PC3 SW1 SW2 PC2 PC4 Réponse de PC3 à PC2 (1) E0 E0 AAAA.AAAA.AAAA CCCC.CCCC.CCCC E2 E2 (2) BBBB.BBBB.BBBB DDDD.DDDD.DDDD E1 E1 (3)
Switch 1 Switch 2
Interface MAC Interface MAC
E0 AAAA.AAAA.AAAA E0 CCCC.CCCC.CCCC
E1 BBBB.BBBB.BBBB E1 DDDD.DDDD.DDDD
E2 DDDD.DDDD.DDDD
CCCC.CCCC.CCCC
E2 AAAA.AAAA.AAAA
BBBB.BBBB.BBBB

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.

* 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.
* 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
show mac-address-table

reseau/commutation-principe.txt · Last modified: 2025/01/24 15:24 by 127.0.0.1