Comment un commutateur apprend-il les adresses Mac ?
Course Contents
1. Introduction
Comment un commutateur apprend-il les adresses MAC ? Il s’agit d’un concept fondamental pour tous ceux qui se préparent à l’examen CCNA. Un commutateur est décrit comme un appareil intelligent, mais que se passe-t-il exactement lorsqu’il reçoit une trame ?
Découvrons-le ensemble à l’aide d’un exemple simple.

Dans le schéma ci-dessus, trois appareils sont connectés à un commutateur appelé SW1.
Chaque appareil possède une adresse MAC simplifiée :
- PC1 → Adresse MAC AAA
- PC2 → Adresse MAC BBB
- PC3 → Adresse MAC CCC
Pour comprendre comment le commutateur apprend les adresses MAC, supposons que PC1 veuille envoyer une trame à PC3.

PC1 créera une trame Ethernet avec :
- Source MAC: AAA (sa propre adresse)
- Destination MAC: CCC (l’adresse MAC du PC3)
Lorsque cette trame arrive au commutateur sur le port G0/1, le commutateur lit l’en-tête Ethernet et constate que le MAC AAA a été reçu sur l’interface G0/1.

À ce stade, le commutateur vérifie sa table d’adresses MAC.
Cette table stocke les adresses MAC et les ports auxquels elles sont associées.
Ce tableau est en fait une liste qui indique au commutateur :
« Cette adresse MAC est connectée à ce port.
Mais pour l’instant, la table est vide et l’interrupteur n’a encore rien appris !
Que fait-il donc ?
Il lit la trame Ethernet envoyée par PC1 et regarde l’adresse MAC source: c’est AAA.
Et comme c’est la première fois que le switch voit cette adresse MAC, il dit :
« Ok, je ne connais pas encore celui-là… mais je viens de le recevoir sur G0/1, alors je m’en souviendrai ! ».
Le commutateur ajoute donc une entrée à sa table :
Adresse MAC AAA → G0/1
C’est exactement de cette manière qu’un commutateur apprend les adresses MAC: en associant le MAC source des trames entrantes au port sur lequel elles arrivent.
De cette façon, le commutateur peut apprendre l’adresse mac, il recherche l’adresse mac source dans l’en-tête Ethernet et vérifie si le commutateur connaît déjà son adresse.
Le commutateur n’a pas besoin qu’on lui dise où se trouvent les appareils, il le découvre en regardant l’adresse MAC source. C’est la clé pour comprendre comment un commutateur apprend les adresses MAC de manière dynamique.

Mais le commutateur doit maintenant envoyer la trame à sa destination et c’est une autre histoire.
Tout d’abord, le commutateur consulte à nouveau sa table d’adresses MAC, cette fois à la recherche de l’adresse MAC de destination, qui est CCC (c’est-à-dire PC3).
Et c’est là que le bât blesse :
Le commutateur ne sait pas encore où se trouve CCC.
Il n’y a pas d’entrée pour lui dans la table.
Que fait-il donc ?
Eh bien, lorsqu’un commutateur ne sait pas où envoyer une trame, il ne suppose pas qu’il inonde la trame.
Cela signifie que le commutateur envoie la trame hors de tous les autres ports, à l’exception de celui d’où elle provient.
À ce moment-là, l’interrupteur dit en fait :
« Je ne sais pas où se trouve le CCC, alors je vais demander à tout le monde. Voyons qui répondra. »

À ce stade, PC2 et PC3 reçoivent tous deux la trame Ethernet.
PC2 regarde la trame, vérifie l’adresse MAC de destination et réfléchit :
« Hmm… c’est pour CCC, mais mon adresse MAC est BBB, ce n’est pas pour moi. »
PC2 laisse donc tomber la trame.
PC3 répondra parce qu’il voit que l’adresse MAC de destination de la trame correspond à la sienne.
Lorsque le PC3 répondra, la nouvelle trame Ethernet aura :
- Source MAC: CCC
- MAC de destination: AAA

Le commutateur reçoit cette nouvelle trame sur G0/3.
Il examine l’adresse MAC source, qui est CCC, et réfléchit :
« D’accord, je ne connais pas encore ce MAC… mais je viens de l’obtenir sur G0/3, laissez-moi l’enregistrer dans ma table d’adresses MAC ».
Le commutateur ajoute une nouvelle entrée à sa table d’adresses MAC :
Adresse MAC CCC → G0/3

Maintenant, le commutateur sait :
- PC1 (AAA) est sur Gi0/1
- PC3 (CCC) est sur Gi0/3
Ainsi, lorsque le commutateur voit que l’adresse MAC de destination est AAA, il vérifie sa table et constate que AAA est lié à G0/1.
La trame Ethernet est transmise au PC1 via ce port.

💡 Ce qu’il faut retenir, c’est que le commutateur se souviendra de l’adresse MAC source et l’associera au port sur lequel il a reçu la trame Ethernet.
Voyons maintenant quelques commandes Cisco CLI pour voir comment le commutateur construit sa table d’adresses MAC.
2. Observation de l’apprentissage MAC via Cisco CLI
Dans cet exemple, nous utiliserons des adresses MAC réelles pour PC1, PC2 et PC3.

Tout d’abord, nous devons nous assurer que toutes les interfaces sont opérationnelles.
Nous pouvons le vérifier à l’aide de cette commande :
SW1#show interfaces status Port Name Status Vlan Duplex Speed Type Gi0/1 connected 1 auto auto unknown Gi0/2 connected 1 auto auto unknown Gi0/3 connected 1 auto auto unknown
Bien, toutes les interfaces sont en place !
Jetons ensuite un coup d’œil à la table d’adresses MAC actuelle :
SW1# show mac address-table dynamic Vlan Mac Address Type Ports ---- ----------- -------- -----
Comme vous pouvez le constater, la table des adresses MAC est vide.
Aucun trafic n’a encore été observé, le commutateur n’a donc rien appris.
Passons maintenant au processus d’apprentissage de l’adresse MAC à l’aide de la CLI.
Depuis PC1, j’essaie d’envoyer un ping à PC3.
Cela crée une trame Ethernet avec :
- Source MAC : PC1 MAC
- Destination MAC : PC3 MAC
Comme vous le verrez, le commutateur est sur le point d’apprendre l’adresse MAC de PC1 à partir de cette première trame.

Nous pouvons maintenant vérifier sur le CLI que le commutateur a appris l’adresse MAC de PC1 sur G0/1 en utilisant la commande suivante
SW1# show mac address-table dynamic Mac Address Table ------------------------------------------- Vlan Mac Address Type Ports ---- ----------- -------- ----- 1 0011.22aa.33bb DYNAMIC Gi0/1 Total Mac Addresses for this criterion: 1
Ici, l’adresse MAC de PC1 est apprise 0011.22aa.33bb sur l’interface G0/1.
À ce stade, le commutateur ne sait toujours pas où se trouve (PC3 MAC), il inonde la trame de tous les ports sauf celui d’où elle provient.

PC3 reçoit la trame et renvoie une réponse.
Cette réponse permettra au commutateur d’apprendre également l’adresse MAC de PC3.

Vérifions la mise à jour de la table des adresses MAC :
SW1# show mac address-table dynamic Mac Address Table ------------------------------------------- Vlan Mac Address Type Ports ---- ----------- -------- ----- 1 0011.22aa.33bb DYNAMIC Gi0/1 1 0077.88ee.99ff DYNAMIC Gi0/3 Total Mac Addresses for this criterion: 2
Comme vous pouvez le voir, le commutateur a maintenant appris l’adresse mac de PC3 qui est 0077.88ee.99ff.
Le commutateur pourra désormais transmettre la réponse directement à PC1 en utilisant l’interface G0/1.

Gardez à l’esprit :
Sur un réseau de production, vous ne pourrez pas voir les adresses MAC apprises une par une comme ceci.
Comme l’échange de ping est très rapide, le commutateur apprend les deux adresses presque instantanément.
Le point essentiel à retenir sur la manière dont un commutateur apprend les adresses MAC est que les commutateurs sont des dispositifs intelligents qui se souviennent de l’adresse MAC source de la trame reçue sur une interface.
3. Comprendre le vieillissement des MAC et la gestion des tables
Le commutateur ne conserve pas les adresses MAC pour toujours dans sa table d’adresses MAC.
Chaque adresse MAC apprise est mémorisée pendant 300 secondes (soit 5 minutes) par défaut.
C’est ce que nous appelons le temps de vieillissement.
Vous pouvez le vérifier à l’aide de la commande suivante :
SW1# show mac address-table aging-time
Global Aging Time: 300
Vlan Aging Time
---- ----------
⏱️ Par défaut, le temps de vieillissement est fixé à 300 secondes, mais vous pouvez le modifier si nécessaire en fonction de votre environnement réseau.
4. Filtrage de la table des adresses MAC
Imaginez maintenant que vous ayez une table d’adresses MAC avec plus de 100 entrées d’adresses MAC,
. Vous voulez seulement vérifier où se trouve une adresse MAC spécifique, par exemple : 0077.88ee.99ff.
Vous n’avez pas besoin de tout faire défiler, vous pouvez utiliser des filtres pour réduire votre recherche.
Pour filtrer par adresse MAC, vous pouvez utiliser :
SW1# show mac address-table dynamic address 0077.88ee.99ff
Mac Address Table
-------------------------------------------
Vlan Mac Address Type Ports
---- ----------- -------- -----
1 0077.88ee.99ff DYNAMIC Gi0/3
Total Mac Addresses for this criterion: 1
Vous pouvez également filtrer directement par interface :
SW1# show mac address-table dynamic interface Gi0/1
Mac Address Table
-------------------------------------------
Vlan Mac Address Type Ports
---- ----------- -------- -----
1 0011.22aa.33bb DYNAMIC Gi0/1
Total Mac Addresses for this criterion: 1
Savoir comment un commutateur apprend les adresses MAC signifie également savoir comment les effacer pour le dépannage.
Cette commande permet de supprimer toutes les entrées MAC dynamiques de la table :
SW1# clear mac address-table dynamic
Si vous exécutez à nouveau show mac address-table dynamic juste après,
vous verrez que la table est maintenant complètement vide :
SW1# show mac address-table dynamic Mac Address Table ------------------------------------------- Vlan Mac Address Type Ports ---- ----------- -------- -----
5. Apprentissage de plusieurs adresses MAC sur un port
Maintenant que nous avons compris les bases de l’apprentissage des adresses MAC par interface par un commutateur, explorons un cas plus avancé : l’apprentissage de plusieurs MAC sur un seul port.
Jusqu’à présent, nous avons vu que le commutateur apprenait une adresse MAC par port !
Mais saviez-vous qu’un commutateur peut apprendre plusieurs adresses MAC sur le même port ?
Prenons un exemple simple.

Imaginez que SW1 soit connecté à un autre commutateur comme SW2.
Examinons maintenant la table des adresses MAC de SW1 :
SW1# show mac address-table dynamic Mac Address Table ------------------------------------------- Vlan Mac Address Type Ports ---- ----------- -------- ----- 1 fa16.3e12.a1b2 DYNAMIC Gi0/1 ← PC1 1 fa16.3e23.c3d4 DYNAMIC Gi0/2 ← PC2 1 fa16.3e34.e5f6 DYNAMIC Gi0/0 ← PC3 1 fa16.3e45.789a DYNAMIC Gi0/0 ← PC4 Total Mac Addresses for this criterion: 4
Vous pouvez voir que deux adresses MAC ont été apprises sur la même interface : g0/3
C’est parce que PC3 et PC4 sont tous deux connectés à SW2 et que SW2 est connecté à SW1 sur g0/3.
Puisque SW1 peut atteindre PC3 et PC4 en utilisant G0/3, nous pouvons avoir plusieurs adresses mac apprises sur une interface.
Examinons maintenant la table des adresses MAC de SW2 dans la direction opposée :
SW2# show mac address-table dynamic Mac Address Table ------------------------------------------- Vlan Mac Address Type Ports ---- ----------- -------- ----- 1 fa16.3e12.a1b2 DYNAMIC Gi0/0 ← PC1 1 fa16.3e23.c3d4 DYNAMIC Gi0/0 ← PC2 1 fa16.3e34.e5f6 DYNAMIC Gi0/1 ← PC3 1 fa16.3e45.789a DYNAMIC Gi0/2 ← PC4 Total Mac Addresses for this criterion: 4
Même idée ici !
SW2 voit à la fois PC1 et PC2 derrière Gi0/3 parce que SW2 est connecté à SW1 à travers ce port.
« Pour atteindre PC1 ou PC2, je dois faire sortir la trame de Gi0/3.
6. Résumé
Maintenant que vous avez vu comment un commutateur apprend les adresses MAC, mettons en lumière quelques idées fausses courantes.
Un petit récapitulatif des choses les plus importantes à retenir pour votre CCNA ! 🙂
❌ Erreur courante | ✅ Ce qu’il faut vraiment savoir |
---|---|
Le commutateur apprend l’adresse MAC de destination | 🚫 Faux – il n’apprend que l’adresse MAC de la source |
Un port ne peut avoir qu’une seule adresse MAC | 🚫 Faux – un seul port peut apprendre plusieurs MAC, en particulier les liaisons montantes. |
La table d’adresses MAC conserve des entrées pour toujours | 🚫 Faux – les entrées expirent après le délai de vieillissement (par défaut : 300 secondes) |
L’inondation signifie que le commutateur est cassé ou mal configuré. | 🚫 Faux – l’inondation est normale lorsque le MAC de destination est inconnu. |