Réseaux et Fondamentaux

Ethernet, adresses MAC et commutation

Ethernet est la technologie de réseau local la plus répandue. Format de trame, adresses MAC, table de commutation et domaines de diffusion : les mécanismes essentiels pour concevoir et dépanner un LAN.

Commutateur Ethernet apprenant les adresses MAC de plusieurs postes sur ses ports

Ethernet, normalisé par l'IEEE sous la référence 802.3, domine les réseaux locaux filaires depuis des décennies. Il a évolué de 10 Mbit/s sur câble coaxial partagé à des débits de 100, 400 et même 800 Gbit/s sur fibre, mais son format de trame et sa logique d'adressage sont restés remarquablement stables.

Objectif : comprendre la trame Ethernet, l'adresse MAC et le comportement d'un commutateur, afin de concevoir et diagnostiquer un réseau local.

La trame Ethernet

Une trame Ethernet (format Ethernet II, le plus courant pour IP) se compose de :

Champ Taille Rôle
Préambule + SFD 8 octets Synchronisation (géré par la couche physique)
MAC destination 6 octets Destinataire sur le segment
MAC source 6 octets Émetteur
Étiquette 802.1Q (facultative) 4 octets Numéro de VLAN et priorité
EtherType 2 octets Protocole transporté (0x0800 IPv4, 0x86DD IPv6, 0x0806 ARP)
Données 46 à 1 500 octets Paquet IP, etc.
FCS 4 octets Contrôle d'intégrité (CRC 32 bits)

La charge utile maximale standard est de 1 500 octets : c'est l'origine de la MTU Ethernet habituelle. Les « trames jumbo » (souvent 9 000 octets) existent mais ne sont pas normalisées par 802.3 et doivent être configurées de bout en bout. Voir MTU, MSS et fragmentation des paquets.

L'adresse MAC

Une adresse MAC compte 48 bits, généralement écrits en six octets hexadécimaux : 3c:52:82:1a:9f:07 (Linux), 3C-52-82-1A-9F-07 (Windows) ou 3c52.821a.9f07 (Cisco).

  • Les trois premiers octets forment l'OUI (Organizationally Unique Identifier), attribué par l'IEEE à un fabricant.
  • Les trois suivants sont attribués par le fabricant.

Deux bits du premier octet ont une signification particulière :

  • bit I/G (bit de poids faible) : 0 = adresse individuelle, 1 = adresse de groupe (multidiffusion) ;
  • bit U/L : 0 = adresse universelle attribuée par le fabricant, 1 = adresse administrée localement.

L'adresse de diffusion est ff:ff:ff:ff:ff:ff. De nombreux systèmes récents (smartphones, Windows, certaines distributions) utilisent des adresses MAC aléatoires sur les réseaux Wi-Fi pour limiter le pistage : elles ont le bit U/L à 1. Il faut en tenir compte si vous filtrez ou réservez par adresse MAC.

Du concentrateur au commutateur

Les premiers réseaux Ethernet partageaient un même support : toutes les machines recevaient toutes les trames, et deux émissions simultanées provoquaient une collision, gérée par l'algorithme CSMA/CD. Le concentrateur (hub) reproduisait ce comportement : il répétait chaque signal sur tous ses ports.

Le commutateur (switch) a changé la donne :

  • chaque port est un domaine de collision distinct ;
  • en full-duplex, il n'y a plus du tout de collisions : CSMA/CD n'est plus utilisé ;
  • le commutateur ne transmet une trame qu'au port du destinataire.

Comment un commutateur apprend et transmet

Le commutateur maintient une table d'adresses MAC (appelée CAM sur les équipements Cisco) qui associe adresse MAC, port et VLAN.

  1. Apprentissage : à chaque trame reçue, il enregistre l'adresse MAC source et le port d'arrivée.
  2. Transmission : il cherche l'adresse MAC destination dans sa table. - Adresse connue : la trame part uniquement vers le port associé (forwarding). - Adresse inconnue : la trame est envoyée sur tous les ports du VLAN sauf celui d'arrivée (unknown unicast flooding). - Diffusion ou multidiffusion non gérée : envoi sur tous les ports du VLAN. - Destination sur le port d'arrivée : la trame est ignorée (filtering).
  3. Vieillissement : une entrée inutilisée est supprimée après un délai (300 secondes par défaut sur beaucoup d'équipements).
Switch# show mac address-table dynamic
          Mac Address Table
-------------------------------------------
Vlan    Mac Address       Type        Ports
----    -----------       --------    -----
  20    3c52.821a.9f07    DYNAMIC     Gi1/0/5
  20    0050.56a3.11c2    DYNAMIC     Gi1/0/24

Sous Linux, l'équivalent pour un pont logiciel est bridge fdb show.

Modes de commutation

  • Store-and-forward : la trame entière est reçue et son FCS vérifié avant transmission. Mode le plus courant.
  • Cut-through : la transmission commence dès la lecture de l'adresse destination. Latence plus faible, mais les trames corrompues sont propagées.

Domaines de collision et de diffusion

  • Un domaine de collision est l'ensemble des équipements susceptibles d'entrer en collision. Avec des commutateurs en full-duplex, il se réduit à chaque lien.
  • Un domaine de diffusion est l'ensemble des équipements qui reçoivent une diffusion de couche 2. Un commutateur ne le divise pas : tous ses ports d'un même VLAN appartiennent au même domaine. Seuls les routeurs et les VLAN le découpent.

Un domaine de diffusion trop grand (plusieurs centaines ou milliers d'hôtes) gaspille de la bande passante et du temps processeur, et amplifie l'impact d'une tempête de diffusion. C'est l'une des raisons d'être des VLAN.

Débit, duplex et négociation

L'auto-négociation permet aux deux extrémités d'un lien cuivre de s'accorder sur le débit et le mode duplex. Un désaccord de duplex (une extrémité forcée en full, l'autre négociant en half) produit un lien qui fonctionne mal : pertes, collisions tardives, débit effondré. Règle simple : laissez l'auto-négociation des deux côtés, ou forcez les deux côtés de manière identique.

Switch# show interfaces GigabitEthernet1/0/5 status
Port      Name   Status       Vlan  Duplex  Speed Type
Gi1/0/5          connected    20    a-full  a-1000 10/100/1000BaseTX

Le préfixe « a- » indique une valeur obtenue par auto-négociation.

Diagnostic : les compteurs d'interface

Switch# show interfaces GigabitEthernet1/0/5 | include errors|CRC|collisions
     0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored
     0 output errors, 0 collisions, 2 interface resets
ip -s link show eth0          # Linux
ethtool eth0                  # débit, duplex, auto-négociation
ethtool -S eth0               # statistiques détaillées du pilote
  • Erreurs CRC en hausse : câble, connecteur, module optique ou interférences.
  • Collisions tardives : désaccord de duplex.
  • Erreurs de sortie et rejets (drops) : congestion sur le port.

Erreurs courantes

  • Brancher un concentrateur ou un petit commutateur non géré sous un bureau, créant boucles ou comportements imprévisibles.
  • Confondre table ARP (IP→MAC) et table MAC (MAC→port).
  • Réserver des adresses DHCP par MAC pour des appareils qui utilisent des MAC aléatoires.
  • Ignorer une MAC qui « saute » d'un port à l'autre : signe d'une boucle ou d'un équipement dupliqué.

Implications de sécurité

La table MAC a une taille finie : un attaquant peut l'inonder d'adresses factices pour forcer le commutateur à diffuser tout le trafic (MAC flooding). La fonction port security limite le nombre d'adresses par port ; l'authentification 802.1X contrôle qui peut se connecter. Désactivez les ports inutilisés et placez-les dans un VLAN sans accès. Voir Configuration et sécurisation d'un commutateur Cisco.

Conclusion

Un commutateur apprend les MAC sources, transmet selon les MAC destination et diffuse ce qu'il ne connaît pas. Ce comportement simple explique la plupart des phénomènes observés sur un LAN. Pour éviter que les liens redondants entre commutateurs ne créent des boucles, consultez STP et RSTP : prévention des boucles réseau.

Références