Indirizzo MAC (Media Access Control)
Ogni dispositivo abilitato alla rete ha almeno un identificativo hardware univoco in tutto il modo: l’indirizzo Media Access Control (abbreviato: indirizzo MAC). Di seguito scoprirete di cosa si tratta e come è possibile determinare o riscrivere l’indirizzo MAC.
Che cos’è un indirizzo MAC?
Ogni dispositivo che deve essere integrato in una rete di computer richiede un adattatore di rete. Questo adattatore riceve dal produttore un numero identificativo univoco mondiale, l’indirizzo MAC. Ciò consente di identificare dispositivi come computer desktop, tablet o telefoni cellulari nella rete e risolverli secondo necessità. Se un dispositivo ha più adattatori di rete (ad esempio per diverse porte LAN o diversi standard di comunicazione come Ethernet, WLAN, FDDI, Bluetooth o Token Ring), è disponibile un indirizzo diverso per ogni standard.
L’indirizzo MAC (abbreviazione di indirizzo Media Access Control) è l’indirizzo hardware univoco di una singola scheda di rete in tutto il mondo. Questo indirizzo fisico viene utilizzato per identificare un dispositivo nelle reti di computer.
Poiché gli indirizzi MAC sono assegnati direttamente dal produttore dell’hardware, questo si riferisce anche agli indirizzi hardware. Su Microsoft Windows, l’indirizzo MAC è chiamato indirizzo fisico. Apple utilizza i termini Ethernet ID, Airport ID o indirizzo Wi-Fi a seconda dello standard di comunicazione. La designazione del dispositivo, d’altra parte, è poco precisa, dal momento che un dispositivo può avere diverse schede di rete e quindi diversi indirizzi MAC.
L’indirizzo MAC nella pratica
Gli indirizzi MAC non contraddittori sono un prerequisito per la comunicazione di rete senza errori.
La trasmissione dei dati nelle reti di computer è un processo di comunicazione complesso nel quale devono essere soddisfatti diversi prerequisiti in materia di affidabilità, sicurezza ed efficienza. Questo può essere visualizzato usando il modello OSI (abbreviazione per “Open Systems Interconnection”) un modello di referenza sviluppato dall’ISO (International Organization for Standardization) che associa la comunicazione di rete a sette livelli. Come parte del trasferimento dei dati, ogni livello del modello OSI viene attraversato sia dal mittente che dal ricevente.
Gli indirizzi MAC vengono utilizzati al livello di collegamento (Layer 2) del modello OSI, in particolare al sottolivello Media Access Controll introdotto dall’IEEE (Institute of Electrical and Electronics Engineers).
Nell’estensione del modello OSI progettato da IEEE, il livello di collegamento (Layer2) è suddiviso nei sottolivelli Media Access Control (2a) e Logical Link Control (2b).
Il livello di collegamento si trova tra il livello fisico (Layer 1) e il livello di commutazione (Layer 3). Mentre il livello fisico fornisce protocolli e strumenti responsabili del mantenimento del collegamento fisico, i protocolli del livello di collegamento controllano il modo in cui i diversi sistemi condividono il mezzo di trasmissione disponibile. Le connessioni di sistema sicure sono estratte dalla connessione fisica. L’effettiva trasmissione dei pacchetti di dati avviene a livello della commutazione via IP.
Se ad esempio si desidera inviare un pacchetto IP in Ethernet, il computer trasmette un frame di dati indirizzato all’indirizzo MAC del computer di destinazione in base al modello OSI sul livello di collegamento dati.
Se il computer di destinazione non si trova nella rete locale, viene indirizzato e assegnato un router per l’inoltro a Internet. Anche i router integrati in una rete locale hanno un indirizzo MAC univoco.
Un frame dati Ethernet contiene varie informazioni che vengono lette ai diversi livelli del modello OSI.
I frame di dati nelle reti IPv4 contengono i seguenti componenti:
- Indirizzo di destinazione (gli indirizzi MAC del computer di destinazione)
- Indirizzo sorgente (l’indirizzo MAC del mittente)
- Informazioni di controllo per il controllo del flusso dei dati
- Dati utente (il pacchetto di dati da trasmettere successivamente sul livello di commutazione)
- I totali di controllo che garantiscono l‘integrità dei dati
Un computer di destinazione che riceve un frame di dati lo legge prima sul livello di collegamento e confronta l’indirizzo di destinazione del frame con il proprio indirizzo MAC. Se gli indirizzi corrispondono, il computer di destinazione inizia a interpretare il frame al livello superiore successivo.
I dispositivi di rete che vengono utilizzati solo per inoltrare pacchetti di dati (repeater) o per gestire parti della rete (ponti e switch), di solito non partecipano attivamente alla comunicazione di rete e quindi non hanno bisogno di un proprio indirizzo MAC.
Per collegare l’assegnazione dell’indirizzo sul livello di collegamento con l’assegnazione dell’indirizzo sul livello di scambio, nelle reti IPv4 viene utilizzato l’Address Resolution Protocol (ARP). Ogni computer della rete locale mantiene una tabella ARP in cui gli indirizzi IP sono assegnati agli indirizzi MAC.
ARP è vulnerabile a un modello di attacco chiamato ARP-Spoofing. Quale pericolo possa porre lo spoofing ARP e quali contromisure si possano prendere sono argomenti discussi nell’articolo sul tema.
Il nuovo standard del protocollo Internet IPv6 utilizza il Neighbor Discovery Protocol (NDP).
La sintassi dell’indirizzo MAC
Gli indirizzi MAC nelle reti LAN o WLAN sono costituiti da 6 byte (48 bit) e sono scritti in notazione esadecimale. L’uso di separatori come trattini o due punti tra due byte favorisce la leggibilità.
Il seguente esempio mostra l’indirizzo MAC di un computer desktop in formato binario ed esadecimale:
00110101 01101000 10110100 00000010 00010011 10011000
AC-16-2D-02-C8-19
Nel nostro esempio usiamo la rappresentazione canonica della sequenza di bit. Ciò corrisponde all’ordine in cui gli indirizzi MAC vengono trasmessi in Ethernet. Altri standard di comunicazione, come Token Ring, prevedono la trasmissione bit reversed a partire dal bit più significativo.
La sequenza di bit di ciascun indirizzo MAC è divisa in 4 aree, ognuna delle quali codifica informazioni diverse.
- Bit 1 (ricevente): il primo bit dell’indirizzo MAC indica se si tratta di un indirizzo singolo o di gruppo. Questo bit è chiamato I/G (abbreviazione di individual/group). Se I/G = 0, si tratta di un indirizzo Unicast per una singola scheda di rete. Gli indirizzi Multicast sono identificati da I/G = 1 e sono indirizzati a più destinatari.
- Bit 2 (validità): il secondo bit dell’indirizzo MAC indica se si tratta di un indirizzo con validità globale (universal) o se l’indirizzo è stato assegnato localmente (local). Il bit è chiamato U/L. Se U/L = =, l’indirizzo è considerato come Universally Administered Address (UAA) valido in tutto il mondo. Gli indirizzi che sono solo localmente unici sono denominati Locally Administered Address (LAA) e contrassegnati con U/L = 1.
- Bit 3–24 (identificazione del produttore): i bit dal 3 al 24 codificano un identificatore (Organizationally Unique Identifier, OUI) assegnato da IEEE in modo esclusivo ai produttori di hardware. L’assegnazione di OUI è pubblica e può essere determinata tramite database. L’OUI dell’indirizzo di esempio (AC-16-ID) è stato assegnato dall’IEEE al produttore di dispositivi statunitense Hewlett Packard.
- Bit 25–48 (Network Adapter Identifier): i bit dal 25 al 48 forniscono ai produttori di dispositivi con 24 bit l’assegnazione di un’unica identificazione hardware (Organizationally Unique Address, OUA). Così si possono assegnare 224 (= 16.777.216) OUA univoche per ogni OUI.
Tabella: Sottoaree di un indirizzo MAC
Indicazione | I/G | U/L | OUI | OUA |
---|---|---|---|---|
Bit | 1. | 2. | 3.–24. | 25.–48. |
Funzione | Gruppo di destinazione | Validità | Identificazione del produttore | Identificazione della scheda di rete |
Trovare l’indirizzo MAC: ecco come funziona
In tutti i moderni sistemi operativi si possono richiedere gli indirizzi MAC senza un grande sforzo tramite il terminale, sia su sistema locale che in remoto nella rete. La seguente tabella mostra cosa inserire nella riga di comando corrispondente per i sistemi operativi più comuni.
Tabella: Leggere l’indirizzo MAC
Sistema operativo | Comando terminale | Lettura remota |
---|---|---|
FreeBSD | ifconfig | arp -a |
NetBSD | ifconfig -a | arp -a |
OpenBSD | ifconfig -a | arp -a |
Linux | ip link | ip neigh |
Mac OS X / macOS | ifconfig | arp -a |
Solaris | ifconfig -a | arp -a |
Windows XP Professional | getmac /v | arp -a |
Windows (da 2000) | ipconfig /all | arp -a |
Sui dispositivi mobili è possibile visualizzare l’indirizzo MAC nelle impostazioni.
Tabella: determinare gli indirizzi MAC sui dispositivi mobili
Sistema operativo | Locale |
---|---|
Android | Impostazioni > Informazioni telefono > Informazioni hardware |
Apple iOS | Impostazioni > Generali > Informazioni > Indirizzo Wi-Fi |
Windows Phone 7 | Impostazioni > Informazioni > Ulteriori informazioni |
Leggere l’indirizzo MAC localmente
Se desiderate leggere gli indirizzi MAC degli adattatori LAN e WLAN del proprio computer Windows, procedete come segue per Windows 10.
Passo 1: aprite il terminale del sistema operativo. Ad esempio utilizzate le combinazioni di tasti [Tasto Windows] + [R]. quindi inserite cmd nella finestra “Esegui” e confermate con “OK”.
Passo 2: a partire da Windows 2000, potete utilizzare il comando ipconfig con l’opzione /all per recuperare l’indirizzo MAC di tutte le schede di rete del vostro computer Windows.
Ipconfig /all
Alternativamente potete ottenere l’indirizzo MAC con il comando getmac /v.
Passo 3: Su Windows l’indirizzo MAC viene mostrato alla voce “indirizzo fisico”.
Lettura remota dell’indirizzo MAC
Grazie all’ARP, nelle reti IPv4 è possibile determinare gli indirizzi MAC di altri dispositivi della stessa rete locale. Su Windows e nella maggior parte dei sistemi operativi derivati da Unix, è possibile utilizzare il comando arp nella riga di comando con l’opzione -a per visualizzare la tabella ARP del vostro sistema nel terminale.
arp -a
Riceverete un output del terminale secondo il seguente schema:
Interfaccia: 172.24.0.113 --- 0x2
Indirizzo Internet Indirizzo fisico Tipo
172.24.0.111 00-80-41-AE-FD-7E dinamico
172.24.0.112 12-34-56-78-9A-BC dinamico
Se desiderate leggere remotamente soltanto l’indirizzo MAC di una specifica scheda di rete, utilizzate il comando arp -a in combinazione con l’indirizzo IPv4 locale della rete di destinazione.
arp -a 172.24.0.112
Assegnare l’indirizzo MAC lato software
Gli indirizzi MAC sono assegnati invariabilmente dai produttori di dispositivi e sono “brandizzati” nel chip della scheda di rete sul lato hardware. Tuttavia numerosi sistemi operativi offrono la possibilità di sovrascrivere gli indirizzi hardware dal lato software. Si parla in questi casi di spoofing, dove un sistema non invia l’indirizzo hardware reale della rete a cui si invia durante la comunicazione, ma un indirizzo MAC definito dall’utente.
Assegnare l’indirizzo MAC su Windows
In Windows è possibile sovrascrivere l’indirizzo MAC tramite la gestione periferiche, a patto che il driver della scheda di rete supporti questa funzione.
Passo 1: Aprite le impostazioni della scheda di rete. Seguite questo percorso di clic: Start -> Impostazioni -> Rete e Internet -> Ethernet -> Modifica opzioni di rete.
Passo 2: cliccate con il tasto destro del mouse sulla scheda di rete desiderata e selezionate “Disabilita” dal menu contestuale.
Passo 3: cliccate con il tasto destro del mouse sulla scheda di rete desiderata e selezionate “Proprietà” dal menu contestuale. Si apre così la finestra di dialogo “Proprietà scheda di rete”.
Passo 4: fate clic sul pulsante “Configura” nella finestra di dialogo e selezionate la proprietà “Indirizzo ed amministrazione locale” in “Avanzate”. Inserite l’indirizzo MAC lato software desiderato alla voce “Valore”.
Assegnazione degli indirizzi MAC nei sistemi operativi derivati da Unix
I derivati da Unix come Linux, macOS, Solaris e i sistemi operativi BSD supportano l’assegnazione lato software degli indirizzi MAC tramite il terminale.
Tabella: sovrascrivere gli indirizzi MAC
Sistema operativo | Comando terminale |
---|---|
Linux | ip link set dev <Interface> addr XX:XX:XX:XX:XX:XXoifconfig <Interface> promisce successivamenteifconfig <Interface> hw ether XX:XX:XX:XX:XX:XX |
Mac OS X / macOS | ifconfig <Interface> ether XX:XX:XX:XX:XX:XX |
Solaris | ifconfig <Interface> ether XX:XX:XX:XX:XX:XX |
FreeBSD | ifconfig <Interface> link XX:XX:XX:XX:XX:XX |
NetBSD | ifconfig <Interface> link XX:XX:XX:XX:XX:XX activate |
OpenBSD | ifconfig <Interface> lladdr XX:XX:XX:XX:XX:XX |
Illustriamo la procedura sul derivato Unix più usato, ovvero Linux. Se si desidera riscrivere l’indirizzo MAC della scheda di rete sotto Linux, procedete come segue:
Passo 1: aprite il terminale del sistema operativo, ad esempio con la combinazione [CTRL]+[ALT]+[T].
Passo 2: determinate il nome e l’indirizzo MAC corrente della scheda di rete desiderata. Immettete il seguente comando nella riga di comando:
ip link
Vi consigliamo di prendere nota dell’indirizzo hardware assegnato dal produttore nel caso in cui vogliate annullare la modifica in seguito.
Passo 3: spegnete la scheda di rete digitando nella riga di comando:
ip link set dev <interface> down</interface>
Dove c’è <Interface> inserite il nome della scheda di rete determinato tramite link ip.
Passo 4: sovrascrivete l’indirizzo di rete assegnato dal produttore con una delle opzioni specificate nella tabella.
ip link set dev <interface> addr XX:XX:XX:XX:XX:XX</interface>
Al posto di XX:XX:XX:XX:XX:XX inserite l’indirizzo MAC desiderato.
Passo 5: riavviate la scheda di rete con il seguente comando nella riga di comando:
ip link set dev <interface> up</interface>
Per garantire che l’adattatore di rete selezionato possa essere raggiunto all’indirizzo MAC selezionato, rileggete le informazioni di rete con link ip (vedi passo 1).