Ogni di­spo­si­ti­vo abilitato alla rete ha almeno un iden­ti­fi­ca­ti­vo hardware univoco in tutto il modo: l’indirizzo Media Access Control (ab­bre­via­to: indirizzo MAC). Di seguito sco­pri­re­te di cosa si tratta e come è possibile de­ter­mi­na­re o ri­scri­ve­re l’indirizzo MAC.

Che cos’è un indirizzo MAC?

Ogni di­spo­si­ti­vo che deve essere integrato in una rete di computer richiede un adat­ta­to­re di rete. Questo adat­ta­to­re riceve dal pro­dut­to­re un numero iden­ti­fi­ca­ti­vo univoco mondiale, l’indirizzo MAC. Ciò consente di iden­ti­fi­ca­re di­spo­si­ti­vi come computer desktop, tablet o telefoni cellulari nella rete e ri­sol­ver­li secondo necessità. Se un di­spo­si­ti­vo ha più adat­ta­to­ri di rete (ad esempio per diverse porte LAN o diversi standard di co­mu­ni­ca­zio­ne come Ethernet, WLAN, FDDI, Bluetooth o Token Ring), è di­spo­ni­bi­le un indirizzo diverso per ogni standard.

De­fi­ni­zio­ne

L’indirizzo MAC (ab­bre­via­zio­ne di indirizzo Media Access Control) è l’indirizzo hardware univoco di una singola scheda di rete in tutto il mondo. Questo indirizzo fisico viene uti­liz­za­to per iden­ti­fi­ca­re un di­spo­si­ti­vo nelle reti di computer.

Poiché gli indirizzi MAC sono assegnati di­ret­ta­men­te dal pro­dut­to­re 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 co­mu­ni­ca­zio­ne. La de­si­gna­zio­ne del di­spo­si­ti­vo, d’altra parte, è poco precisa, dal momento che un di­spo­si­ti­vo può avere diverse schede di rete e quindi diversi indirizzi MAC.

L’indirizzo MAC nella pratica

Gli indirizzi MAC non con­trad­dit­to­ri sono un pre­re­qui­si­to per la co­mu­ni­ca­zio­ne di rete senza errori.

La tra­smis­sio­ne dei dati nelle reti di computer è un processo di co­mu­ni­ca­zio­ne complesso nel quale devono essere sod­di­sfat­ti diversi pre­re­qui­si­ti in materia di af­fi­da­bi­li­tà, sicurezza ed ef­fi­cien­za. Questo può essere vi­sua­liz­za­to usando il modello OSI (ab­bre­via­zio­ne per “Open Systems In­ter­con­nec­tion”) un modello di referenza svi­lup­pa­to dall’ISO (In­ter­na­tio­nal Or­ga­ni­za­tion for Stan­dar­di­za­tion) che associa la co­mu­ni­ca­zio­ne di rete a sette livelli. Come parte del tra­sfe­ri­men­to dei dati, ogni livello del modello OSI viene at­tra­ver­sa­to sia dal mittente che dal ricevente.

Gli indirizzi MAC vengono uti­liz­za­ti al livello di col­le­ga­men­to (Layer 2) del modello OSI, in par­ti­co­la­re al sot­to­li­vel­lo Media Access Controll in­tro­dot­to dall’IEEE (Institute of Elec­tri­cal and Elec­tro­nics Engineers).

N.B.

Nell’esten­sio­ne del modello OSI pro­get­ta­to da IEEE, il livello di col­le­ga­men­to (Layer2) è suddiviso nei sot­to­li­vel­li Media Access Control (2a) e Logical Link Control (2b).

Il livello di col­le­ga­men­to si trova tra il livello fisico (Layer 1) e il livello di com­mu­ta­zio­ne (Layer 3). Mentre il livello fisico fornisce pro­to­col­li e strumenti re­spon­sa­bi­li del man­te­ni­men­to del col­le­ga­men­to fisico, i pro­to­col­li del livello di col­le­ga­men­to con­trol­la­no il modo in cui i diversi sistemi con­di­vi­do­no il mezzo di tra­smis­sio­ne di­spo­ni­bi­le. Le con­nes­sio­ni di sistema sicure sono estratte dalla con­nes­sio­ne fisica. L’effettiva tra­smis­sio­ne dei pacchetti di dati avviene a livello della com­mu­ta­zio­ne via IP.

Se ad esempio si desidera inviare un pacchetto IP in Ethernet, il computer trasmette un frame di dati in­di­riz­za­to all’indirizzo MAC del computer di de­sti­na­zio­ne in base al modello OSI sul livello di col­le­ga­men­to dati.

N.B.

Se il computer di de­sti­na­zio­ne non si trova nella rete locale, viene in­di­riz­za­to 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 in­for­ma­zio­ni che vengono lette ai diversi livelli del modello OSI.

I frame di dati nelle reti IPv4 con­ten­go­no i seguenti com­po­nen­ti:

  • Indirizzo di de­sti­na­zio­ne (gli indirizzi MAC del computer di de­sti­na­zio­ne)
  • Indirizzo sorgente (l’indirizzo MAC del mittente)
  • In­for­ma­zio­ni di controllo per il controllo del flusso dei dati
  • Dati utente (il pacchetto di dati da tra­smet­te­re suc­ces­si­va­men­te sul livello di com­mu­ta­zio­ne)
  • I totali di controllo che ga­ran­ti­sco­no l‘integrità dei dati

Un computer di de­sti­na­zio­ne che riceve un frame di dati lo legge prima sul livello di col­le­ga­men­to e confronta l’indirizzo di de­sti­na­zio­ne del frame con il proprio indirizzo MAC. Se gli indirizzi cor­ri­spon­do­no, il computer di de­sti­na­zio­ne inizia a in­ter­pre­ta­re il frame al livello superiore suc­ces­si­vo.

N.B.

I di­spo­si­ti­vi di rete che vengono uti­liz­za­ti solo per inoltrare pacchetti di dati (repeater) o per gestire parti della rete (ponti e switch), di solito non par­te­ci­pa­no at­ti­va­men­te alla co­mu­ni­ca­zio­ne di rete e quindi non hanno bisogno di un proprio indirizzo MAC.

Per collegare l’as­se­gna­zio­ne dell’indirizzo sul livello di col­le­ga­men­to con l’as­se­gna­zio­ne dell’indirizzo sul livello di scambio, nelle reti IPv4 viene uti­liz­za­to l’Address Re­so­lu­tion Protocol (ARP). Ogni computer della rete locale mantiene una tabella ARP in cui gli indirizzi IP sono assegnati agli indirizzi MAC.

Consiglio

ARP è vul­ne­ra­bi­le a un modello di attacco chiamato ARP-Spoofing. Quale pericolo possa porre lo spoofing ARP e quali con­tro­mi­su­re si possano prendere sono argomenti discussi nell’articolo sul tema.

Il nuovo standard del pro­to­col­lo Internet IPv6 utilizza il Neighbor Discovery Protocol (NDP).

La sintassi dell’indirizzo MAC

Gli indirizzi MAC nelle reti LAN o WLAN sono co­sti­tui­ti da 6 byte (48 bit) e sono scritti in notazione esa­de­ci­ma­le. L’uso di se­pa­ra­to­ri come trattini o due punti tra due byte favorisce la leg­gi­bi­li­tà.

Il seguente esempio mostra l’indirizzo MAC di un computer desktop in formato binario ed esa­de­ci­ma­le:

00110101 01101000 10110100 00000010 00010011 10011000
AC-16-2D-02-C8-19
N.B.

Nel nostro esempio usiamo la rap­pre­sen­ta­zio­ne canonica della sequenza di bit. Ciò cor­ri­spon­de all’ordine in cui gli indirizzi MAC vengono trasmessi in Ethernet. Altri standard di co­mu­ni­ca­zio­ne, come Token Ring, prevedono la tra­smis­sio­ne bit reversed a partire dal bit più si­gni­fi­ca­ti­vo.

La sequenza di bit di ciascun indirizzo MAC è divisa in 4 aree, ognuna delle quali codifica in­for­ma­zio­ni 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 (ab­bre­via­zio­ne di in­di­vi­dual/group). Se I/G = 0, si tratta di un indirizzo Unicast per una singola scheda di rete. Gli indirizzi Multicast sono iden­ti­fi­ca­ti da I/G = 1 e sono in­di­riz­za­ti a più de­sti­na­ta­ri.
  • 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 lo­cal­men­te (local). Il bit è chiamato U/L. Se U/L = =, l’indirizzo è con­si­de­ra­to come Uni­ver­sal­ly Ad­mi­ni­ste­red Address (UAA) valido in tutto il mondo. Gli indirizzi che sono solo lo­cal­men­te unici sono de­no­mi­na­ti Locally Ad­mi­ni­ste­red Address (LAA) e con­tras­se­gna­ti con U/L = 1.
  • Bit 3–24 (iden­ti­fi­ca­zio­ne del pro­dut­to­re): i bit dal 3 al 24 co­di­fi­ca­no un iden­ti­fi­ca­to­re (Or­ga­ni­za­tio­nal­ly Unique Iden­ti­fier, OUI) assegnato da IEEE in modo esclusivo ai pro­dut­to­ri di hardware. L’as­se­gna­zio­ne di OUI è pubblica e può essere de­ter­mi­na­ta tramite database. L’OUI dell’indirizzo di esempio (AC-16-ID) è stato assegnato dall’IEEE al pro­dut­to­re di di­spo­si­ti­vi sta­tu­ni­ten­se Hewlett Packard.
  • Bit 25–48 (Network Adapter Iden­ti­fier): i bit dal 25 al 48 for­ni­sco­no ai pro­dut­to­ri di di­spo­si­ti­vi con 24 bit l’as­se­gna­zio­ne di un’unica iden­ti­fi­ca­zio­ne hardware (Or­ga­ni­za­tio­nal­ly Unique Address, OUA). Così si possono assegnare 224 (= 16.777.216) OUA univoche per ogni OUI.

Tabella: Sottoaree di un indirizzo MAC

In­di­ca­zio­ne I/G U/L OUI OUA
Bit 1. 2. 3.–24. 25.–48.
Funzione Gruppo di de­sti­na­zio­ne Validità Iden­ti­fi­ca­zio­ne del pro­dut­to­re Iden­ti­fi­ca­zio­ne della scheda di rete

Trovare l’indirizzo MAC: ecco come funziona

In tutti i moderni sistemi operativi si possono ri­chie­de­re 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 cor­ri­spon­den­te 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 Pro­fes­sio­nal getmac /v arp -a
Windows (da 2000) ipconfig /all arp -a

Sui di­spo­si­ti­vi mobili è possibile vi­sua­liz­za­re l’indirizzo MAC nelle im­po­sta­zio­ni.

Tabella: de­ter­mi­na­re gli indirizzi MAC sui di­spo­si­ti­vi mobili

Sistema operativo Locale
Android Im­po­sta­zio­ni > In­for­ma­zio­ni telefono > In­for­ma­zio­ni hardware
Apple iOS Im­po­sta­zio­ni > Generali > In­for­ma­zio­ni > Indirizzo Wi-Fi
Windows Phone 7 Im­po­sta­zio­ni > In­for­ma­zio­ni > Ulteriori in­for­ma­zio­ni

Leggere l’indirizzo MAC lo­cal­men­te

Se de­si­de­ra­te leggere gli indirizzi MAC degli adat­ta­to­ri LAN e WLAN del proprio computer Windows, procedete come segue per Windows 10.

Passo 1: aprite il terminale del sistema operativo. Ad esempio uti­liz­za­te le com­bi­na­zio­ni di tasti [Tasto Windows] + [R]. quindi inserite cmd nella finestra “Esegui” e con­fer­ma­te con “OK”.

Passo 2: a partire da Windows 2000, potete uti­liz­za­re il comando ipconfig con l’opzione /all per re­cu­pe­ra­re l’indirizzo MAC di tutte le schede di rete del vostro computer Windows.

Ipconfig /all
Consiglio

Al­ter­na­ti­va­men­te 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 de­ter­mi­na­re gli indirizzi MAC di altri di­spo­si­ti­vi della stessa rete locale. Su Windows e nella maggior parte dei sistemi operativi derivati da Unix, è possibile uti­liz­za­re il comando arp nella riga di comando con l’opzione -a per vi­sua­liz­za­re la tabella ARP del vostro sistema nel terminale.

arp -a

Ri­ce­ve­re­te 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 de­si­de­ra­te leggere re­mo­ta­men­te soltanto l’indirizzo MAC di una specifica scheda di rete, uti­liz­za­te il comando arp -a in com­bi­na­zio­ne con l’indirizzo IPv4 locale della rete di de­sti­na­zio­ne.

arp -a 172.24.0.112

Assegnare l’indirizzo MAC lato software

Gli indirizzi MAC sono assegnati in­va­ria­bil­men­te dai pro­dut­to­ri di di­spo­si­ti­vi e sono “bran­diz­za­ti” nel chip della scheda di rete sul lato hardware. Tuttavia numerosi sistemi operativi offrono la pos­si­bi­li­tà di so­vra­scri­ve­re 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 co­mu­ni­ca­zio­ne, ma un indirizzo MAC definito dall’utente.

Assegnare l’indirizzo MAC su Windows

In Windows è possibile so­vra­scri­ve­re l’indirizzo MAC tramite la gestione pe­ri­fe­ri­che, a patto che il driver della scheda di rete supporti questa funzione.

Passo 1: Aprite le im­po­sta­zio­ni della scheda di rete. Seguite questo percorso di clic: Start -> Im­po­sta­zio­ni -> Rete e Internet -> Ethernet -> Modifica opzioni di rete.

Passo 2: cliccate con il tasto destro del mouse sulla scheda di rete de­si­de­ra­ta e se­le­zio­na­te “Di­sa­bi­li­ta” dal menu con­te­stua­le.

Passo 3: cliccate con il tasto destro del mouse sulla scheda di rete de­si­de­ra­ta e se­le­zio­na­te “Proprietà” dal menu con­te­stua­le. Si apre così la finestra di dialogo “Proprietà scheda di rete”.

Passo 4: fate clic sul pulsante “Configura” nella finestra di dialogo e se­le­zio­na­te la proprietà “Indirizzo ed am­mi­ni­stra­zio­ne locale” in “Avanzate”. Inserite l’indirizzo MAC lato software de­si­de­ra­to alla voce “Valore”.

As­se­gna­zio­ne degli indirizzi MAC nei sistemi operativi derivati da Unix

I derivati da Unix come Linux, macOS, Solaris e i sistemi operativi BSD sup­por­ta­no l’as­se­gna­zio­ne lato software degli indirizzi MAC tramite il terminale.

Tabella: so­vra­scri­ve­re gli indirizzi MAC

Sistema operativo Comando terminale
Linux ip link set dev <Interface> addr XX:XX:XX:XX:XX:XXoi­f­con­fig <Interface> promisce suc­ces­si­va­men­tei­f­con­fig <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

Il­lu­stria­mo la procedura sul derivato Unix più usato, ovvero Linux. Se si desidera ri­scri­ve­re l’indirizzo MAC della scheda di rete sotto Linux, procedete come segue:

Passo 1: aprite il terminale del sistema operativo, ad esempio con la com­bi­na­zio­ne [CTRL]+[ALT]+[T].

Passo 2: de­ter­mi­na­te il nome e l’indirizzo MAC corrente della scheda di rete de­si­de­ra­ta. Immettete il seguente comando nella riga di comando:

ip link
Consiglio

Vi con­si­glia­mo di prendere nota dell’indirizzo hardware assegnato dal pro­dut­to­re 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>
N.B.

Dove c’è <Interface> inserite il nome della scheda di rete de­ter­mi­na­to tramite link ip.

Passo 4: so­vra­scri­ve­te l’indirizzo di rete assegnato dal pro­dut­to­re con una delle opzioni spe­ci­fi­ca­te nella tabella.

ip link set dev <interface> addr XX:XX:XX:XX:XX:XX</interface>
N.B.

Al posto di XX:XX:XX:XX:XX:XX inserite l’indirizzo MAC de­si­de­ra­to.

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’adat­ta­to­re di rete se­le­zio­na­to possa essere raggiunto all’indirizzo MAC se­le­zio­na­to, rileggete le in­for­ma­zio­ni di rete con link ip (vedi passo 1).

Vai al menu prin­ci­pa­le