Ogni componente hardware sulla rete locale ha un indirizzo MAC oltre all'indirizzo IP assegnato dal router o dal server locale. A cosa serve esattamente quell'indirizzo MAC?
La sessione di domande e risposte di oggi ci arriva per gentile concessione di SuperUser, una suddivisione di Stack Exchange, un raggruppamento guidato dalla comunità di siti web di domande e risposte.
La domanda
Il lettore SuperUser Vishnu Vivek è curioso degli indirizzi MAC e della loro funzione:
Capisco che gli indirizzi IP sono gerarchici, in modo che i router in Internet sappiano in quale direzione inoltrare un pacchetto. Con gli indirizzi MAC, non c'è gerarchia e quindi l'inoltro dei pacchetti non sarebbe possibile. Quindi, gli indirizzi MAC non vengono utilizzati per il trasferimento di pacchetti.
Non credo che stia lì senza motivo. Quindi la mia domanda è: dove entra in gioco esattamente un indirizzo MAC durante un trasferimento di pacchetti?
Dove davvero? Qual è la funzione specifica dell'indirizzo MAC?
La risposta
Il collaboratore di SuperUser Werner Henze offre alcune informazioni sulla funzione dell'indirizzo MAC:
A cosa servono gli indirizzi MAC?
Gli indirizzi MAC sono le basi di basso livello che fanno funzionare la tua rete basata su Ethernet.
Ciascuna scheda di rete ha un indirizzo MAC univoco. I pacchetti inviati su Ethernet provengono sempre da un indirizzo MAC e inviati a un indirizzo MAC. Se una scheda di rete riceve un pacchetto, sta confrontando l'indirizzo MAC di destinazione del pacchetto con l'indirizzo MAC dell'adattatore. Se gli indirizzi corrispondono, il pacchetto viene elaborato, altrimenti viene scartato.
Esistono indirizzi MAC speciali, uno ad esempio è ff: ff: ff: ff: ff: ff, che è l'indirizzo di trasmissione e indirizza ogni scheda di rete nella rete.
Come interagiscono gli indirizzi IP e gli indirizzi MAC?
IP è un protocollo utilizzato su un livello superiore a Ethernet. Un altro protocollo, ad esempio, sarebbe IPX.
Quando il tuo computer desidera inviare un pacchetto a un indirizzo IP x.x.x.x, il primo controllo è se l'indirizzo di destinazione si trova nella stessa rete IP del computer stesso. Se x.x.x.x si trova nella stessa rete, l'IP di destinazione può essere raggiunto direttamente, altrimenti il pacchetto deve essere inviato al router configurato.
Fino ad ora le cose sembrano essere peggiorate, perché ora abbiamo due indirizzi IP: uno è l'indirizzo di destinazione del pacchetto IP originale, l'altro è l'IP del dispositivo a cui dovremmo inviare il pacchetto (il prossimo hop, o l'ultimo destinazione o il router).
Poiché Ethernet utilizza indirizzi MAC, il mittente deve ottenere l'indirizzo MAC dell'hop successivo. Esiste un protocollo speciale ARP (address resolution protocol) che viene utilizzato per questo. Una volta che il mittente ha recuperato l'indirizzo MAC dell'hop successivo, scrive quell'indirizzo MAC di destinazione nel pacchetto e invia il pacchetto.
Come funziona ARP?
ARP stesso è un protocollo sopra ethernet, come IP o IPX. Quando un dispositivo desidera conoscere l'indirizzo MAC per un determinato indirizzo IP, invia un pacchetto all'indirizzo MAC di trasmissione chiedendo "Chi ha l'indirizzo IP y.y.y.y?" Tutti i dispositivi ricevono quel pacchetto, ma solo quello con l'indirizzo IP y.y.y.y risponderà con un pacchetto "Sono io". Il dispositivo richiedente riceve la risposta e ora sa che l'indirizzo MAC di origine è l'indirizzo MAC giusto da utilizzare. Ovviamente il risultato verrà memorizzato nella cache, quindi il dispositivo non ha bisogno di risolvere ogni volta l'indirizzo MAC.
Routing
Quasi dimenticavo di dirlo: non esiste un routing basato sugli indirizzi MAC. Gli indirizzi Ethernet e MAC di basso livello possono raggiungere solo tutti i dispositivi su stesso rete (cablata o wireless). Se hai due reti con un router in mezzo, non puoi avere un dispositivo nella rete A inviare un pacchetto all'indirizzo MAC di un dispositivo nella rete B. Nessun dispositivo nella rete A ha l'indirizzo MAC del dispositivo nella rete B, quindi a il pacchetto a questo indirizzo MAC verrà scartato da tutti i dispositivi nella rete A (anche dal router).
L'instradamento viene eseguito a livello IP. Visto semplicemente che il router sta facendo quello che ho descritto sopra nella sezione "Come funzionano gli indirizzi IP e gli indirizzi MAC insieme?". Il router riceverà i pacchetti per il proprio indirizzo MAC ma per un indirizzo IP diverso. Quindi controllerà se può raggiungere direttamente l'indirizzo IP di destinazione. In tal caso, invia il pacchetto alla destinazione. Altrimenti il router stesso ha anche un router upstream configurato e invierà il pacchetto a quel router.
Ovviamente puoi configurare più router. Il router di casa avrà un solo router a monte configurato, ma nella dorsale di Internet i grandi router hanno grandi tabelle di routing in modo che conoscano i modi migliori per tutti i pacchetti.
Altri casi d'uso per indirizzi MAC
- Gli switch di rete memorizzano un elenco di indirizzi MAC visualizzati su ogni porta e inoltrano i pacchetti solo alle porte che devono vedere il pacchetto.
- I punti di accesso wireless utilizzano spesso indirizzi MAC per il controllo degli accessi. Consentono l'accesso solo ai dispositivi noti (l'indirizzo MAC è univoco e identifica i dispositivi) con la passphrase corretta.
- I server DHCP utilizzano l'indirizzo MAC per identificare i dispositivi e fornire ad alcuni dispositivi indirizzi IP fissi.