Il livello di collegamento dati e Ethernet

Riassunto IA

Il livello di collegamento dati gestisce l'accesso al mezzo e la trasmissione affidabile dei dati tramite frame Ethernet, che includono campi essenziali come gli indirizzi MAC e l'EtherType per l'instradamento e l'identificazione del protocollo. Ethernet, uno standard IEEE 802.3, opera a questo livello dividendo le funzioni tra LLC e MAC per un efficiente trasferimento NIC-to-NIC all'interno delle LAN.

Immagine generata con IA
Immagine generata con IA

Il livello di collegamento dati e Ethernet

Il livello di collegamento dati (Data Link Layer) è il secondo livello del modello OSI. Il suo compito è garantire un trasferimento affidabile dei dati tra due nodi direttamente connessi sulla stessa rete fisica, gestendo l'accesso al mezzo trasmissivo e il rilevamento degli errori.

!Modello ISO-OSI.svg

Dal punto di vista architetturale, il livello 2 si divide in due sotto-livelli distinti:

  • LLC (Logical Link Control): gestisce il controllo del flusso e il multiplexing dei protocolli di livello superiore.
  • MAC (Media Access Control): gestisce l'indirizzamento fisico e l'accesso al mezzo condiviso.

Ethernet, definito dallo standard IEEE 802.3, è il protocollo di livello 2 più diffuso nelle reti locali (LAN). Opera scheda di rete per scheda di rete (NIC-to-NIC) all'interno dello stesso dominio di broadcast, incapsulando i dati in unità chiamate frame.

NIC (Network Interface Card), o scheda di interfaccia di rete.

La struttura del frame Ethernet

Ogni comunicazione Ethernet avviene attraverso frame strutturati. Ogni campo ha una dimensione precisa e una funzione specifica nel processo di consegna e verifica dei dati.

Campo Dimensione Funzione
Preambolo 7 byte Sequenza alternata di 0 e 1 (10101010×7) usata per sincronizzare l'orologio della NIC ricevente con il segnale in arrivo.
SFD (Start Frame Delimiter) 1 byte Byte 10101011 che segnala la fine del preambolo e l'inizio immediato del frame effettivo.
MAC di destinazione 6 byte Indirizzo MAC della NIC di destinazione sulla rete locale. Determina chi deve ricevere il frame.
MAC di origine 6 byte Indirizzo MAC della NIC che ha generato il frame. Usato dallo switch per popolare la MAC address table.
EtherType / Lunghezza 2 byte Se il valore è ≥ 1536 (0x0600), indica il protocollo del payload (es. 0x0800 = IPv4, 0x86DD = IPv6, 0x0806 = ARP). Se < 1536, rappresenta la lunghezza del payload in byte.
Payload (dati) 46–1500 byte Dati incapsulati: tipicamente un pacchetto IP con le relative intestazioni di trasporto (TCP/UDP) e applicazione. Ethernet non interpreta il contenuto.
FCS (Frame Check Sequence) 4 byte Checksum CRC-32 calcolato sul frame. La NIC ricevente ricalcola il CRC: se non corrisponde, il frame viene scartato silenziosamente.

Nota: Il preambolo e l'SFD (8 byte totali) vengono gestiti dall'hardware della NIC e non compaiono nelle catture di pacchetti con strumenti come Wireshark, che mostrano il frame a partire dal campo MAC di destinazione.

Gli indirizzi MAC

Un indirizzo MAC (Media Access Control) è un identificatore hardware a 48 bit (6 byte), rappresentato in notazione esadecimale. Esempio: 00:1A:2B:3C:4D:5E.

L'indirizzo è suddiviso in due blocchi:

  • OUI (Organizationally Unique Identifier) — primi 3 byte: assegnato dall'IEEE al produttore della NIC. Ad esempio, 00:1A:2B identifica un vendor specifico.
  • NIC ID — ultimi 3 byte: assegnato dal produttore per distinguere ogni singola scheda prodotta.

Due bit del primo byte hanno significato speciale:

  • Bit I/G (Individual/Group): se impostato a 1, l'indirizzo è multicast o broadcast; se 0, è unicast.
  • Bit U/L (Universal/Local): se 0, l'indirizzo è assegnato globalmente dall'IEEE (burned-in address); se 1, è stato assegnato localmente in modo amministrativo.

L'indirizzo FF:FF:FF:FF:FF:FF è riservato al broadcast Ethernet: il frame viene consegnato a tutti i dispositivi nel dominio di broadcast.

Hub ed Ethernet switch: architetture a confronto

Prima di analizzare il comportamento degli switch, è utile comprendere perché abbiano sostituito gli hub nelle reti moderne.

Hub Ethernet

Un hub è un dispositivo di livello fisico (Layer 1). Quando riceve un segnale su una porta, lo ripete su tutte le altre porte indiscriminatamente, senza alcuna intelligenza di inoltro. Tutti i dispositivi connessi condividono lo stesso dominio di collisione: se due host trasmettono simultaneamente, si verifica una collisione e i dati vanno persi. Per gestire questo problema, Ethernet su hub utilizza CSMA/CD (Carrier Sense Multiple Access with Collision Detection).

Gli hub operano in modalità half-duplex: un dispositivo può trasmettere o ricevere, ma non entrambe le operazioni contemporaneamente.

Switch Ethernet

Uno switch Ethernet opera al livello 2 del modello OSI. A differenza dell'hub, legge l'intestazione di ogni frame Ethernet e prende decisioni di inoltro intelligenti basate sull'indirizzo MAC di destinazione. Ogni porta dello switch costituisce un dominio di collisione separato, eliminando le collisioni e consentendo comunicazioni full-duplex.

Caratteristica Hub Switch
Livello OSI Layer 1 (Fisico) Layer 2 (Collegamento dati)
Dominio di collisione Unico per tutti i dispositivi Separato per ogni porta
Modalità duplex Half-duplex Full-duplex
Forwarding Broadcast su tutte le porte Selettivo per porta (basato su MAC)
Sicurezza Nessuna (traffico visibile a tutti) Traffico isolato per porta
Scalabilità Bassa (le collisioni aumentano con i nodi) Alta (prestazioni indipendenti dal numero di porte)

Come funziona uno switch Ethernet

La MAC address table

Il cuore operativo di uno switch è la MAC address table (detta anche CAM table — Content Addressable Memory). Questa tabella associa ogni indirizzo MAC noto a una specifica porta fisica dello switch, permettendo l'inoltro selettivo dei frame.

La tabella viene costruita dinamicamente attraverso un processo di apprendimento automatico. Ogni voce ha un timer di aging (default: 300 secondi / 5 minuti): se non arriva traffico da un MAC entro questo intervallo, la voce viene rimossa per mantenere la tabella aggiornata.

Il processo di learning e forwarding

Il comportamento dello switch a ogni frame ricevuto segue tre fasi distinte.

Fase 1 — Learning (apprendimento): Quando lo switch riceve un frame su una porta, esamina l'indirizzo MAC di origine e verifica se è già presente nella tabella. Se non lo è, aggiunge la coppia {MAC sorgente → porta in ingresso}. Se è già presente, aggiorna il timer di aging.

Fase 2 — Lookup (ricerca della destinazione): Lo switch cerca l'indirizzo MAC di destinazione nella tabella. Possono verificarsi due scenari:

  • MAC di destinazione noto: lo switch conosce la porta associata e inoltra il frame esclusivamente su quella porta (forwarding selettivo).
  • MAC di destinazione sconosciuto (unicast flooding): il MAC non è nella tabella. Lo switch invia il frame su tutte le porte attive eccetto quella di ingresso, comportandosi temporaneamente come un hub. Questo è detto unknown unicast flooding.

Fase 3 — Filtering: Una volta che entrambi i MAC (sorgente e destinazione) sono stati appresi, tutti i frame successivi tra quei due host vengono inoltrati solo sulla porta corretta, senza coinvolgere le altre porte. Questo processo di filtraggio è la ragione principale per cui gli switch migliorano drasticamente l'efficienza della rete rispetto agli hub.

Il diagramma seguente mostra l'evoluzione della MAC address table durante una sequenza di scambi tipici:

STATO INIZIALE — Tabella vuota
┌───────────────────────────┐
│ MAC Address Table         │
│ (vuota)                   │
└───────────────────────────┘
H1 (AA:AA) ─── FA0/1 ┐
H2 (BB:BB) ─── FA0/2 ├── [SWITCH]
H3 (CC:CC) ─── FA0/3 ┤
H4 (DD:DD) ─── FA0/4 ┘
PASSO 1 — H1 invia frame a H4 (DD:DD sconosciuto)
  → Learning: AA:AA appreso su FA0/1
  → Flooding: frame inviato su FA0/2, FA0/3, FA0/4
┌───────────────────────────┐
│ MAC           │ Porta     │
│ AA:AA         │ FA0/1     │
└───────────────────────────┘
PASSO 2 — H4 risponde a H1 (AA:AA già noto)
  → Learning: DD:DD appreso su FA0/4
  → Forwarding selettivo: frame inviato solo su FA0/1
┌───────────────────────────┐
│ MAC           │ Porta     │
│ AA:AA         │ FA0/1     │
│ DD:DD         │ FA0/4     │
└───────────────────────────┘
PASSO 3 — H1 invia di nuovo a H4 (entrambi noti)
  → Forwarding selettivo diretto: solo FA0/4
  → H2 e H3 non ricevono nulla

Ispezione pratica dei frame Ethernet

In un contesto professionale, la verifica del comportamento Ethernet a livello di frame avviene tramite strumenti di cattura del traffico. I due più comuni negli ambienti Linux/DevOps sono tcpdump e Wireshark.

Per catturare il traffico su un'interfaccia specifica con tcpdump:

tcpdump -i eth0 -e -n ether host 00:1A:2B:3C:4D:5E

Il flag -e mostra le intestazioni Ethernet (MAC sorgente e destinazione) nell'output. Il flag -n disabilita la risoluzione dei nomi per ottenere output più leggibile in ambienti di produzione.

Per filtrare solo i frame ARP (utile per il debug di problemi di risoluzione MAC):

tcpdump -i eth0 -e arp

Per catturare e salvare su file .pcap per analisi successiva con Wireshark:

tcpdump -i eth0 -w /tmp/capture.pcap

Nei log di tcpdump con il flag -e, un frame Ethernet apparirà nel formato:

HH:MM:SS.ffffff AA:AA:AA:AA:AA:AA > DD:DD:DD:DD:DD:DD ethertype IPv4 (0x0800), length 98

Dove il campo ethertype corrisponde direttamente al campo EtherType del frame descritto in precedenza.

Ethernet nei contesti moderni: VLAN, data center e cloud

I principi del livello 2 descritti fin qui sono la base di infrastrutture di rete molto più complesse. In ambienti professionali moderni, è fondamentale conoscere le seguenti estensioni.

VLAN e 802.1Q tagging

Lo standard IEEE 802.1Q estende il frame Ethernet aggiungendo un tag di 4 byte tra il campo MAC sorgente e il campo EtherType. Questo tag contiene un identificativo di VLAN (VLAN ID, da 0 a 4094) che permette di segmentare logicamente una rete fisica in più reti virtuali isolate. Gli switch gestiti (managed switch) utilizzano le VLAN per separare il traffico di reparti diversi sulla stessa infrastruttura fisica, migliorando sicurezza e gestione del broadcast.

Topologie spine-leaf nei data center

Nei data center moderni, la topologia classica a tre livelli (core-distribution-access) è stata largamente sostituita dalla topologia spine-leaf. In questa architettura ogni switch leaf è connesso a tutti gli switch spine, garantendo percorsi a bassa latenza e alta ridondanza tra tutti i server. Gli switch operano ancora al livello 2 (e spesso anche al livello 3) ma su scala e velocità ordini di grandezza superiori rispetto alle LAN tradizionali.

Overlay network e VXLAN

In ambienti cloud e Kubernetes, i frame Ethernet tradizionali vengono spesso incapsulati all'interno di pacchetti UDP attraverso protocolli overlay come VXLAN (Virtual Extensible LAN), definito nell'RFC 7348. VXLAN estende l'indirizzamento VLAN da 4.094 a oltre 16 milioni di segmenti, indispensabile per la multi-tenancy nei cloud pubblici e privati. La comprensione del frame Ethernet di base rimane prerequisito essenziale per diagnosticare problemi di connettività anche in questi ambienti virtualizzati.

Commenti