Apprentissage MAC et table CAM
Définition
L'apprentissage MAC est le mecanisme par lequel un switch enregistre les adresses MAC sources qu'il observe dans une table CAM (Content Addressable Memory), aussi appelee forward/filter table. Cette table associe chaque MAC a un port physique et un VLAN, permettant au switch de prendre des decisions de forwarding intelligentes.
Contexte
Ce concept est fondamental : sans apprentissage, un switch se comporterait comme un hub en floodant toutes les trames. CCST demande de comprendre le processus, le format de la table et le concept d'expiration (aging).
Details techniques
Processus d'apprentissage etape par etape
Etape 1 : PC-A (MAC AAAA) envoie vers PC-B (MAC BBBB)
PC-A ----[Fa0/1]---- SWITCH ----[Fa0/2]---- PC-B
|
Table CAM : |
AAAA -> Fa0/1 (appris) |
BBBB -> ??? (inconnu) --> FLOOD sur Fa0/2, Fa0/3... Fa0/24
Etape 2 : PC-B repond a PC-A
PC-B ----[Fa0/2]---- SWITCH ----[Fa0/1]---- PC-A
|
Table CAM : |
AAAA -> Fa0/1 |
BBBB -> Fa0/2 (appris) --> FORWARD uniquement sur Fa0/1
Etape 3 : Communication point-a-point
AAAA <-> BBBB : le switch forward directement, sans flood.
Structure de la table CAM
| Champ | Contenu |
|---|---|
| VLAN | VLAN dans lequel la MAC a ete vue |
| MAC Address | Adresse source de la trame recue |
| Type | DYNAMIC (apprise) ou STATIC (configuree manuellement) |
| Port | Interface physique ou la MAC a ete detectee |
| Aging Timer | Compte a rebours avant expiration (300 s par defaut) |
Regles d'apprentissage
- Le switch lit uniquement la MAC source pour l'apprentissage (jamais la destination).
- Si la MAC source est nouvelle : elle est ajoutee a la table avec le port et le VLAN.
- Si la MAC source est deja connue sur le meme port : le timer est reinitialise.
- Si la MAC source est connue mais sur un port different : l'entree est mise a jour (le poste a ete deplace).
- Si le timer expire (300 s sans trafic) : l'entree est supprimee.
Taille de la table CAM
| Gamme de switch | Capacité CAM typique |
|---|---|
| Switch d'acces (Catalyst 2960) | 8 000 – 16 000 entrees |
| Switch de distribution (Catalyst 3850) | 32 000 – 64 000 |
| Switch datacenter (Nexus 9000) | 128 000+ |
Une attaque MAC flooding consiste a envoyer des milliers de trames avec des MAC sources aleatoires pour remplir la table CAM. Quand elle est pleine, le switch ne peut plus apprendre de nouvelles MAC et flood tout le trafic → l'attaquant peut sniffer le trafic de tous les hotes. Contre-mesure : port security.
Port security (contre-mesure)
Switch(config-if)# switchport port-security
Switch(config-if)# switchport port-security maximum 2
Switch(config-if)# switchport port-security violation shutdown
Switch(config-if)# switchport port-security mac-address sticky
Cette configuration limite a 2 MAC par port. Si une 3e MAC est detectee, le port est desactive.
Exemple concret
Un nouveau PC est branche sur le port Fa0/5 d'un switch. Le PC envoie un broadcast ARP pour trouver la passerelle. Le switch apprend la MAC CC:DD:EE:FF:00:11 sur Fa0/5 dans le VLAN 10 et demarre un timer de 300 s. Si le PC est eteint pendant plus de 5 minutes, l'entree expire. A sa prochaine trame, le switch devra re-flood temporairement.