Menu Chiudi

Come cambiare l’indirizzo MAC della porta ethernet di Ubuntu

Indirizzo MAC

Vi sono situazioni nelle quali può essere utile se non indispensabile, per le motivazioni più varie, dover assegnare un indirizzo MAC diverso da quello predefinito nella scheda ethernet del proprio PC o magari di un server che stai installando.

In questo semplice Howto, cercherò di illustrare come fare a cambiare l’indirizzo MAC della porta di rete, modificando alcuni parametri di configurazione in una distribuzione Ubuntu.

Che cosa è l’indirizzo MAC ?

L’indirizzo MAC (Media Access Control) è quello che può essere definito come “Indirizzo Fisico della Porta Etherner”. Non ha nulla a che fare con l’indirizzo IP della macchina (ricordate la pila OSI ? Quella a 7 livelli ? Beh, il MAC sta al livello 2 della pila !).

Per una descrizione dettagliata, c’è questa eloquente pagina di Wikipedia che ne descrive diligentemente i dettagli tecnici.

Fino a qualche anno fa l’indirizzo MAC era scritto direttamente all’interno dell’elettronica che componeva la porta Ethernet di rete. Era cioè un parametro fisso e non modificabile, inserito dal costruttore del componente ed identificava univocamente la porta Ethernet.

Col passare degli anni, ci si è accorti che quel numero di 6 bytes (cioè 48 bits) non poteva certo continuare ad essere univoco a causa dell’enorme numero di schede Ethernet prodotte, e quindi in circolazione nel mondo.

Più ragionevolmente si è optato per una soluzione pratica, nella quale tale identificativo di rete, non è più vincolato ad essere universalmente univoco, bensì univoco solo all’interno della LAN, per l’ovvio indirizzamento dei vari dispositivi fisici collegati. Allo stesso tempo, è stato reso possibile modificare il MAC address all’interno del driver dell’interfaccia, nel caso di Windows, oppure tramite file di configurazione della rete, nel caso di Linux.

Come trovare il MAC Address in Ubuntu

In un sistema Ubuntu, il dispositivo ethernet principale è tipicamente individuato come eth0. Per mostrare l’indirizo MAC di tutte le interfacce ethernet, il comando da utilizzare è ifconfig -a in quale mostra anche moltissime delle informazioni più rilevanti delle interfacce ethernet installate nel sistema.

Leggi anche:   Come fare Cross Compile per Raspberry Pi con Ubuntu X86

L’esempio qui sotto, mostra il risultato del comando ifconfig -a

$ sudo ifconfig -a

eth0      Link encap:Ethernet  HWaddr 52:54:00:d8:91:d9
           inet addr:192.168.122.206  Bcast:192.168.122.255  Mask:255.255.255.0
           inet6 addr: fe80::5054:ff:fed8:91d9/64 Scope:Link
           UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
           RX packets:6251 errors:0 dropped:12 overruns:0 frame:0
           TX packets:2393 errors:0 dropped:0 overruns:0 carrier:0
           collisions:0 txqueuelen:1000 
           RX bytes:4904760 (4.9 MB)  TX bytes:203955 (203.9 KB)
lo        Link encap:Local Loopback  
           inet addr:127.0.0.1  Mask:255.0.0.0
           inet6 addr: ::1/128 Scope:Host
           UP LOOPBACK RUNNING  MTU:65536  Metric:1
           RX packets:322 errors:0 dropped:0 overruns:0 frame:0
           TX packets:322 errors:0 dropped:0 overruns:0 carrier:0
           collisions:0 txqueuelen:0 
           RX bytes:27604 (27.6 KB)  TX bytes:27604 (27.6 KB)
$

Tralasciando per il momento l’interfaccia lo, che non corrisponde di fatto ad una vera e propria interfaccia fisica, puoi notare che l’interfaccia eth0 mostra numerose informazioni. Nella fattispecie, l’indirizzo MAC dell’interfaccia eth0 è quello riportato come HWaddr ed in questo sistema l’attuale indirizzo MAC è 52:54:00:d8:91:d9

Come cambiare l’Indirizzzo MAC

Supponiamo che il nuovo indirizzo MAC che vogliamo assegnare è: 52:54:00:77:88:99. Come già detto più sopra, l’indirizzo MAC è l’indirizzo fisico dell’hardware della scheda ethernet quindi in realtà esso non può essere fisicamente cambiato. Quello che andremo a fare è un cambiamento software dell’indirizzo MAC; per meglio dire: cambieremo l’indirizzo MAC in memoria.

Niente paura. Vedremo come cambiare il MAC sia in modo volatile, sia in modo permanente; in quest’ultimo caso, il nuovo indirizzo MAC verrà sostituito automagicamente ad ogni riavvio del sistema. Continua a leggere.

Cambiare l’indirizzo MAC in Memoria

Per alcuni scopi di test e verifica di alcune caratteristiche dei dispositivi che si trovano sulla nostra LAN, potrebbe essere necessario a volte, cambiare “al volo” il MAC Address, senza però che questo rimanga permanente, ovvero, che tutto venga ripristinato alle condizioni iniziali del sistema al prossimo reboot.

Leggi anche:   Come installare Cygwin su Windows ed emulare Linux

Prima di cambiare il l’indirizzo MAC in memoria è bene sapere preventivamente se l’assegnazione dell’indirizzo IP è ottenuta automaticamente dalla rete (dal DHCP) oppure se l’indirizzo IP è assegnato staticamente.

Indirizzo MAC in memoria con Indirizzo IP Dinamico

In caso di assegnazione dell’indirizzo IP ottenuto automaticamente dal DHCP della LAN, il nuovo IP verrà assegnato automaticamente all’interfaccia ethernet, non appena questa tornerà attiva. Eseguire quindi i comandi:

$ sudo ifconfig eth0 down
$ sudo ifconfig eth0 hw ether 52:54:00:77:88:99 up

L’interfaccia sarà immediatamente disponibile e in un paio di secondi acquisirà il nuovo indirizzo IP fornito dal server DHCP.

Indirizzo MAC in memoria con Indirizzo IP Statico

In caso di indirizzo IP assegnato staticamente (ad esempio, vogliamo assegnare l’indirizzo IP: 192.168.122.123), esso deve essere specificato direttamente sulla linea di comando, insieme alla NetMask. Eseguire quindi i comandi:

$ sudo ifconfig eth0 down
$ sudo ifconfig eth0 hw ether 52:54:00:77:88:99 192.168.122.123 netmask 255.255.255.0 up

Cambiare l’indirizzo MAC in modo permanente

Per cambiare l’indirizzo MAC in modo permanente nel sistema, in modo che ad ogni riavvio venga assegnato il MAC che si desidera, è necessaria un po più di destrezza. Bisognerà infatti modificare il file di configurazione delle interface, nella fattispecie il file /etc/network/interfaces, che contiene le definizioni necessarie alla configurazione di tutte le interfacce di rete.

Anche in questo caso va fatta la medesima distinzione che abbiamo fatto precedentemente, nel caso di cambiamento “al volo” del MAC; ovvero. bisogna tenere conto se l’indirizzamento IP è statico o dinamico.

Indirizzo MAC Permanente con Indirizzo IP Dinamico

Nel caso in cui l’indirizzo IP dell’interfaccia eth0 sia dinamico (assegnato dal server DHCP), il tuo file /etc/network/interfaces conterrà pressappoco queste poche righe:

$ sudo cat /etc/network/interfaces
 auto lo
 iface lo inet loopback

Aprire il file con il tuo editor di testo preferito (da linea di comando puoi utilizzare nano o vi) e modificare il file come mostrato qui di seguito:

$ sudo vi /etc/network/interfaces

… e modificare il contenuto del file come mostrato qui di seguito:

auto lo
 iface lo inet loopback
 #
 auto eth0
 iface eth0 inet dhcp
     hwaddress ether 52:54:00:77:88:99

Salvare, chiudere il file e riavviare il sistema per verificare che sia tutto andato per il verso giusto.

Leggi anche:   Esempio di sviluppo per Raspberry Pi con Windows e Ubuntu

Indirizzo MAC Permanente con Indirizzo IP Statico

Nel caso in cui l’indirizzo IP dell’interfaccia eth0 sia assegnato staticamente (nell’esempio, l’IP è 192.168.122.19), il tuo file /etc/network/interfaces avrà pressappoco questo aspetto:

$ sudo cat /etc/network/interfaces
 auto lo
 iface lo inet loopback
 #
 auto eth0
 iface eth0 inet static
     address 192.168.122.19
     netmask 255.255.255.0

Aprire il file con il tuo editor di testo preferito (da linea di comando puoi utilizzare nano o vi) e modificare il file come mostrato qui di seguito:

$ sudo vi /etc/network/interfaces

… e modificare il contenuto del file come mostrato qui di seguito:

auto lo
 iface lo inet loopback
 #
 auto eth0
 iface eth0 inet static
     address 192.168.122.19
     netmask 255.255.255.0
     hwaddress ether 52:54:00:77:88:99

Salvare, chiudere il file con le nuove modifiche appena apportate.

A questo punto, provare a riavviare la rete con il seguente comando:

$sudo /etc/init.d/networking restart

In alternativa, riavviare il sistema per verificare che sia tutto funzioni correttamente.

Condividi

Disclaimer

Questa pagina potrebbe contenere link di affiliazione. Gli acquisti o gli ordini che effettuerai tramite tali link possono generare commissioni che ci aiutano a sostenere questo sito web.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Moderazione dei commenti attiva. Il tuo commento non apparirà immediatamente.