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.
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.
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.
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.
CondividiDisclaimer
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.