Qual è l'uso esatto di un indirizzo MAC?


124

Capisco che gli indirizzi IP sono gerarchici, in modo che i router su Internet sappiano in quale direzione inoltrare un pacchetto. Con gli indirizzi MAC, non esiste una gerarchia, e quindi l'inoltro dei pacchetti non sarebbe possibile. Pertanto, gli indirizzi MAC non vengono utilizzati per il trasferimento di pacchetti.

Non penso che resti lì senza una ragione. Quindi la mia domanda è, dove esattamente entra in gioco un indirizzo MAC durante un trasferimento di pacchetti?

Risposte:


56

TL; DR & gt; Gli indirizzi MAC sono un componente di basso livello di una rete Ethernet (e alcuni altri standard simili, come il WiFi). Consentono a un dispositivo di comunicare con una macchina sulla rete fisica locale (LAN) e non possono essere instradati su Internet, perché in teoria l'hardware fisico potrebbe essere collegato in qualsiasi parte del mondo.

Al contrario, gli indirizzi IP coprono l'intero Internet ei router li utilizzano per capire dove inviare i dati anche se ha bisogno di più hop per raggiungere la destinazione, ma non sono utili per l'interfaccia con l'hardware fisico sulla rete locale.

Se mai abbiamo trovato uno standard migliore di Ethernet, potrebbe non utilizzare gli indirizzi MAC, ma il traffico IP da Internet potrebbe ancora scorrere attraverso di esso, anche se altre persone su Internet non ne avevano mai sentito parlare.

Se avessimo mai trovato uno standard migliore dell'IP (ad esempio IPv6 se tutti gli indirizzi IPv4 fossero esauriti), la maggior parte dell'hardware Ethernet potrebbe trasportare il nuovo tipo di traffico senza modifiche e un semplice aggiornamento software / firmware risolverebbe la maggior parte del resto.

Gli indirizzi MAC sono necessari per realizzare una rete locale Ethernet (o wifi). Consentono a un dispositivo di rete di attirare l'attenzione di un singolo dispositivo connesso direttamente, anche se la connessione fisica è condivisa. Questo può essere importante quando migliaia di dispositivi sono collegati insieme all'interno di una singola organizzazione. Non servono alcuna funzione su Internet più ampio.

Per comprendere veramente la risposta a questa domanda, è necessario comprendere il OSI (a volte noto come il modello a 7 strati) .

Affinché la comunicazione avvenga tra 2 applicazioni eseguite su macchine separate che non hanno una connessione fisica diretta, a lotto del lavoro deve aver luogo.

Nei tempi passati, ciascuna applicazione sapeva esattamente quali istruzioni del codice macchina dovevano essere eseguite per produrre un segnale appropriato che potesse raggiungere, e potrebbe essere decodificato, l'applicazione all'estremità. Tutte le comunicazioni erano effettivamente point-to-point e il software doveva essere scritto per adattarsi alla situazione esatta in cui doveva essere distribuito. Ovviamente, quello era insostenibile.

Invece di questo, il problema della rete era diviso in livelli, e ogni livello sapeva come parlare al livello corrispondente su una macchina remota, e come comunicare con il livello sottostante (e talvolta sopra) sulla sua macchina locale. Non conosceva assolutamente alcuno degli altri livelli, quindi il tuo browser non ha bisogno di sapere se è in esecuzione su una macchina che utilizza un token ring, una rete ethernet o una rete wifi e sicuramente non ha bisogno di sapere quale hardware la macchina remota utilizza.

Per fare in modo che funzioni, il modello a 7 livelli utilizza un sistema come inviluppi annidati; l'applicazione crea i suoi dati e li avvolge in una busta per il sistema operativo da consegnare. Il sistema operativo lo avvolge in un'altra busta e lo passa al driver di rete. Il driver di rete lo avvolge in un'altra busta e lo mette sul cavo fisico. E così via.

Lo strato inferiore, strato 1 , è il livello fisico. Questo è lo strato di fili e transistor e onde radio, ea questo livello la comunicazione è per lo più solo un flusso di uni e di zeri. I dati vanno ovunque che è fisicamente connesso. Si collega la porta di rete del computer allo switch utilizzando un cavo CAT-5.

Livello 2 è il livello di collegamento dati. Ciò fornisce una certa struttura a quelli e a zero, alcune capacità di rilevamento e correzione degli errori e alcune indicazioni su quale dispositivo fisicamente connesso (le connessioni fisiche qui possono effettivamente essere oltre il wifi) dovrebbero prestare attenzione al messaggio. Questo è il livello in cui entrano in gioco gli indirizzi MAC, e ci torneremo più tardi. Ma gli indirizzi MAC non sono l'unica possibilità a questo livello. Le reti di token ring, ad esempio, necessitano di un'implementazione diversa del collegamento dati.

Livello 3 è il livello di rete. Questo è il livello su cui lavora l'IP (sebbene non sia l'unico protocollo di livello di rete), ed è questo che consente ai computer di inviare un messaggio che può arrivare a qualsiasi computer in qualsiasi punto della "rete". Non è necessario che ci sia una connessione diretta tra le macchine in questione.

Livelli 4-7 sono protocolli di livello superiore. Si allontanano sempre più dall'hardware e si avvicinano all'applicazione. Il protocollo TCP, ad esempio, si trova sopra l'IP e fornisce meccanismi che inviano automaticamente i messaggi quando mancano.

Quindi gli indirizzi MAC funzionano su Layer 2 e consentono a 2 macchine fisicamente connesse l'una con l'altra di inviare messaggi che verranno ignorati da altre macchine che condividono la stessa connessione fisica.

Supponiamo che io abbia un'applicazione che vuole inviare alcuni dati alla macchina con indirizzo IP 8.8.8.8

Il Layer 3 avvolge i dati in una busta che contiene, tra le altre cose, l'indirizzo IP 8.8.8.8 e passa quindi al livello 2.

Il livello 2 esamina questo indirizzo IP e decide a quale macchina a cui è collegato direttamente è in grado di gestire questo messaggio. Avrà una tabella di ricerca di una selezione degli indirizzi IP collegati direttamente insieme al corrispondente indirizzo MAC della scheda di rete in quella macchina. Questa tabella di ricerca è costruita utilizzando un protocollo chiamato ARP, che consente a una scheda di rete di porre domande agli altri dispositivi connessi direttamente. Ethernet riserva uno speciale indirizzo MAC, FF: FF: FF: FF: FF: FF, che consente a un dispositivo di parlare con tutti dispositivi connessi fisicamente.

Se l'indirizzo IP è nella tabella (o può essere risolto tramite ARP), avvolgerà la busta Layer 3 in una busta Layer 2 con l'indirizzo MAC nella nuova intestazione, quindi passerà l'intero bundle all'hardware a livello 1 La scheda di rete con l'indirizzo MAC corrispondente riceverà il messaggio e il driver di rete aprirà la busta Layer 2 e passerà il contenuto fino a qualsiasi parte del sistema operativo si aspetti di ricevere messaggi all'indirizzo IP specifico.

In alternativa, se l'indirizzo IP non è sulla rete locale, la nuova busta avrà l'indirizzo MAC del gateway predefinito (cioè il router) configurato per questa interfaccia di rete e l'hardware trasferirà il pacchetto al router.

Il router rileva il proprio indirizzo MAC nella busta del livello 2 e apre il pacchetto di livello 2. Osserva l'indirizzo IP sulla busta di livello 3 e risolve il punto in cui dovrà passare il messaggio successivo, che probabilmente sarà il router dell'ISP. Se il router utilizza NAT (o simili), potrebbe anche modificare la busta di livello 3 a questo punto, per mantenere privati ​​gli indirizzi IP interni. Quindi avvolgerà la busta di livello 3 in una nuova busta di livello 2 indirizzata all'indirizzo MAC del router dell'ISP e invierà il messaggio lì.

Questo processo di rimuovere la busta esterna e avvolgere il contenuto in una nuova busta indirizzata alla fase successiva della catena continuerà fino a quando il messaggio raggiunge la macchina di destinazione.

Le buste continueranno quindi a essere strappate via quando il messaggio risalirà gli strati fino a raggiungere il destinatario previsto, che sarà un'applicazione da qualche parte che, si spera, saprà cosa fare con il messaggio, ma non avrà idea di come messaggio arrivato lì e in effetti tutti i passaggi necessari per ottenere la risposta alla macchina originale.

Ma funziona tutto, quasi come per magia!

Si noti che gli switch di rete possono utilizzare gli indirizzi MAC per ottimizzare il flusso del traffico di rete. Mentre un hub ethernet inoltra semplicemente tutto il traffico in entrata a tutte le sue porte, al contrario uno switch può inoltrare il traffico solo alla singola porta a cui è connesso l'indirizzo MAC di destinazione del pacchetto. Ciò aumenta l'effettiva larghezza di banda della rete; puntando porte specifiche, lo switch evita l'inoltro del traffico su segmenti non necessari della rete. Lo switch utilizzerà ARP o packet sniffing per identificare quali dispositivi sono connessi a quale porta. Gli switch ignorano completamente il contenuto dei pacchetti Layer 2.


Ciao! Grazie per la risposta. Per quanto ho letto, la tua risposta è la migliore. Sarebbe fantastico se potessi includere altri concetti come ARP e NAT all'interno del tuo scenario.
Vishnu Vivek

1
Aggiunto riferimento a ARP e switch di rete. Non credo che NAT abbia qualcosa a che fare con gli indirizzi MAC, essendo una funzione di livello 3 ...
Bill Michell

@BillMichell: in IPv6 è possibile utilizzare il MAC o un altro ID locale ('hardware') per comporre l'IP.
Luciano

La risposta è Wiki di comunità. Probabilmente puoi modificarlo per includere queste informazioni aggiuntive se pensi che possa aiutarti a rispondere alla domanda dell'OP.
Bill Michell

Questo ha bisogno di un TL; DR.
AJMansfield

114

A cosa servono gli indirizzi MAC?

Gli indirizzi MAC sono le basi di basso livello che fanno funzionare la rete locale basata su ethernet. Locale significa che i dispositivi di rete sono direttamente collegati tramite cavo o WiFi o tramite un hub di rete o switch di rete.

Le schede di rete hanno ciascuna 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 sta ricevendo un pacchetto, sta confrontando l'indirizzo MAC di destinazione del pacchetto con l'indirizzo MAC della scheda stessa. Se gli indirizzi corrispondono, il pacchetto viene elaborato, altrimenti viene scartato.

Esistono indirizzi MAC speciali, uno per esempio è ff: ff: ff: ff: ff: ff, che è l'indirizzo di broadcast e indirizza ogni scheda di rete nella rete.

In che modo gli indirizzi IP e gli indirizzi MAC funzionano insieme?

IP è un protocollo che viene utilizzato su uno strato sopra Ethernet. Un altro protocollo, ad esempio, sarebbe IPX. L'IP consente la connessione di diverse reti locali e quindi la creazione di una rete aziendale o di Internet globale.

Quando il tuo computer vuole inviare un pacchetto ad 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, è possibile raggiungere direttamente l'IP di destinazione, altrimenti il ​​pacchetto deve essere inviato al router configurato.

Fino ad ora le cose sembrano peggiorate, perché ora abbiamo due indirizzi IP: uno è l'indirizzo di destinazione del pacchetto IP originale, l'altro è l'IP del dispositivo a cui dobbiamo inviare il pacchetto (il salto successivo, o il finale destinazione o il router).

Poiché ethernet utilizza gli indirizzi MAC, il mittente deve ottenere l'indirizzo MAC dell'hop successivo. C'è uno speciale protocollo ARP (protocollo di risoluzione degli indirizzi) che viene usato per quello. 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 l'ARP?

ARP stesso è un protocollo sopra Ethernet, come IP o IPX. Quando un dispositivo desidera conoscere l'indirizzo MAC per un dato indirizzo IP, invia un pacchetto all'indirizzo MAC broadcast 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 corretto da utilizzare. Ovviamente il risultato verrà memorizzato nella cache, quindi il dispositivo non ha bisogno di risolvere ogni volta l'indirizzo MAC.

Routing

Ho quasi dimenticato di menzionare: non esiste un routing basato su indirizzi MAC. Gli indirizzi Ethernet e MAC di basso livello possono raggiungere solo tutti i dispositivi su stesso rete (cablata o wireless). Se ci sono due reti con un router intermedio, non è possibile 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 un il pacchetto a questo indirizzo MAC verrà scartato da tutti i dispositivi nella rete A (anche dal router).

Il routing avviene a livello IP. Semplicemente visto il router sta solo facendo quello che ho descritto sopra nella sezione "Come funzionano gli indirizzi IP e gli indirizzi MAC?". Il router riceverà i pacchetti per il proprio indirizzo MAC ma per un diverso indirizzo IP. Verificherà quindi se può raggiungere direttamente l'indirizzo IP di destinazione. Se è così, invia il pacchetto al bersaglio. In caso contrario, il router stesso ha anche configurato un router upstream e invierà il pacchetto a quel router.

Ovviamente è possibile configurare più router. Il tuo router di casa avrà un solo router upstream configurato, ma nel backbone di Internet i grandi router hanno grandi tabelle di routing in modo che conoscano il modo migliore per tutti i pacchetti.

Altri casi d'uso per indirizzi MAC

  1. Gli switch di rete archiviano un elenco di indirizzi MAC visualizzati su ogni porta e inoltrano solo i pacchetti alle porte che devono vedere il pacchetto.

  2. I punti di accesso wireless spesso utilizzano gli indirizzi MAC per il controllo degli accessi. Consentono l'accesso solo per i dispositivi noti (l'indirizzo MAC è univoco e identifica i dispositivi) con la passphrase corretta.

  3. I server DHCP utilizzano l'indirizzo MAC per identificare i dispositivi e fornire ad alcuni dispositivi indirizzi IP fissi.


16
+1 per rispondere effettivamente alla domanda in modo che le persone che non conoscono già la risposta possano capire.
fluffy

Non posso fare a meno di sentire l'impulso di creare un fantastico diagramma / infografica in qualche modo, il modo in cui l'interazione con MAC / IP è piuttosto interessante!
NRGdallas

1
bella risposta solo un dettaglio: gli indirizzi MAC sono anche usati per dispositivi non Ethernet e si descrivono sostanzialmente le prese per qualsiasi strato di collegamento dati usato con uno stack IP
kriss

Vale la pena notare sui MAC Wi-Fi: mentre lo sono generalmente unico e può essere utilizzato per identificare i dispositivi, sono facili da falsificare e inviati in chiaro nell'aria. Se non c'è altra crittografia / autenticazione utilizzata sulla connessione, o se gli altri meccanismi di crittografia / autenticazione sono deboli (ad es .: WEP), è molto banale per un utente malintenzionato di impersonare un dispositivo autorizzato e unirsi alla rete.
Iszi

migliore spiegazione!
minigeek

47

L'indirizzo MAC (indirizzo Media Access Control) in generale è l'identificativo dei dispositivi in ​​una rete. Quindi ogni NIC (controller di interfaccia di rete presente in un router, PC, stampante di rete, server, ecc.) Ha indirizzi MAC. Alcuni server hanno più di una scheda di rete incorporata e quindi hanno più indirizzi MAC. L'indirizzo MAC è lungo 6 byte (6 ottetti). A sinistra il byte più significativo e il byte meno significativo. Come puoi vedere nella figura qui sotto, i primi 3 byte sono i Identificatore univoco dell'organizzazione . Indica il produttore che ha realizzato questo dispositivo.

Ecco una lista di Identificatore univoco dell'organizzazione : Standards.ieee.org

Ecco un'alternativa a quanto sopra: MAC-Vendor-Lookup

Alcuni esempi di produttori noti comuni:

  • 00-05-5D (D-Link Systems Inc.)
  • 00-09-5B (Netgear Inc.)
  • 00-E0-4C (Realtek Semiconductor Corp.)
  • 00-E0-4F (Cisco Systems Inc.)
  • 00-E0-64 (Samsung Electronics)

Gli ultimi 3 byte (3 ottetti) vengono assegnati in modo casuale dal produttore.

Poichè pjc50 ha dichiarato correttamente l'indirizzo MAC in una rete Ethernet aiuta gli switch a decidere quale pacchetto inviare dove. C'è anche un indirizzo MAC broadcast. ff: ff: ff: ff: ff: ff è usato per l'indirizzo MAC broadcast. Nota che l'indirizzo MAC può essere cambiato, quindi fai attenzione ad usarlo come identificatore di dispositivo definito! L'indirizzo MAC viene anche utilizzato con il protocollo ARP (Address Resolution Protocol). Quindi, come funziona, PC A invia una richiesta ARP al PC B con il proprio indirizzo IP, l'indirizzo MAC, l'indirizzo IP del ricevitore e l'indirizzo di trasmissione menzionato sopra (ff: ff: ff: ff: ff : ff). Dopo che PC B controlla se il pacchetto è stato inviato a lui o no. In caso affermativo, PC B invia il proprio indirizzo MAC, l'indirizzo IP, l'indirizzo MAC del ricevitore e l'indirizzo IP del ricevitore. Gli altri dispositivi scartano il pacchetto.

Entrambi i PC A e B di solito salvano la connessione riuscita nel cosiddetto ARP-Cache. Il modo in cui i PC salvano la connessione differisce da dispositivo a dispositivo. Se non si conosce l'indirizzo IP, è possibile ottenere l'indirizzo IP con il protocollo RARP (Reverse Address Resolution Protocol). Con RARP il dispositivo contatta un client centrale e chiede l'indirizzo IP. Ma questo metodo è difficilmente usato al giorno d'oggi.

Le seguenti tecnologie utilizzano il formato identificatore MAC-48:

  • Ethernet
  • Reti wireless 802.11
  • Bluetooth
  • Token Ring IEEE 802.5
  • la maggior parte delle altre reti IEEE 802
  • FDDI
  • ATM (solo connessioni virtuali commutate, come parte di un indirizzo NSAP) Fibre Channel e Serial Attached SCSI (come parte di un nome mondiale)

4
Più precisamente di "ogni dispositivo (...) ha indirizzi MAC.", ogni NIC ha UN Indirizzo MAC . (Non è possibile impostare un indirizzo MAC personalizzato in considerazione.) Non tutte le stampanti dispongono di schede di rete integrate e molti server hanno più di una scheda di rete e quindi più di un indirizzo MAC.
a CVn

2
Diciamo che PC-1 invia un pacchetto a PC-2. Ora lo switch legge solo l'indirizzo MAC di PC-1 e lo salva in una tabella. Se vuoi maggiori informazioni su come funziona, leggi questo: Come funzionano gli switch LAN :)
Meintjes

3
Un altro punto è che l'indirizzo MAC è come la scheda NIC decide cosa scartare e cosa inviare al processore per la gestione. Un frame Ethernet rilevato sul filo ha l'indirizzo MAC di destinazione XOR con l'indirizzo MAC della NIC e se il risultato è tutti 0, allora è un frame destinato a questa NIC.
bbayles

7
-1: La domanda ha chiesto come vengono utilizzati gli indirizzi MAC, non quello che è un indirizzo MAC. L'unica parte della tua risposta che affronta la domanda è la lista dei proiettili alla fine, e non entra in molti dettagli.
Kevin

4
La foto è tratta da wikipedia: en.wikipedia.org/wiki/File:MAC-48_Address.svg , le immagini concesse in licenza con creative commons devono essere attribuite ai loro autori quando vengono utilizzate.
Étienne

24

Essi siamo utilizzato per il trasferimento di pacchetti: su una rete Ethernet, ci sono un certo numero di dispositivi, e l'indirizzo MAC specifica quale dispositivo dovrebbe ricevere il pacchetto. Gli switch Ethernet lo useranno per scegliere su quale porta inviare un pacchetto ricevuto.


5
Può essere interessante notare che Ethernet originariamente era un mezzo bus, in cui tutte le macchine condividevano fisicamente lo stesso supporto (ciò vale anche per le reti wireless). Quindi logicamente funziona così.
LawrenceC

e ancora vero per le reti che usano ancora gli hub :)
Doon

d'ora in poi gli switch sono solo una funzionalità (davvero molto diffusa con le LAN RJ-45) che possiamo e abbiamo reti IP senza di loro (usando hub o 802.11)
kriss

7

Dimentica la gerarchia in questo caso, non è una questione molto importante.

Gli indirizzi MAC sono indirizzi per il livello 2 (livello di collegamento) nei modelli ISO / OSI o TCP / IP. Gli indirizzi IP provengono dal livello 3 (livello di rete) negli stessi modelli.

In una rete di livello 2, ad esempio una rete Ethernet comune, esiste un dominio di collisione, in cui tutte le apparecchiature collegate possono ricevere tutti i frame (livello 2 dati dell'unità) da qualsiasi endpoint. Ma nessuno al di fuori della rete può ricevere questi frame. Gli indirizzi MAC sono indirizzi in questi domini.

I pacchetti sono i dati dell'unità layer 3, in genere, i pacchetti IP. Viaggiano attraverso uno o più domini di collisione. Gli indirizzi IP sono gli indirizzi in questo dominio.

Gli switch sono dispositivi di livello 2 e frame di inoltro utilizzando tabelle di indirizzi MAC. I router sono dispositivi di livello 3 e inoltrano pacchetti utilizzando tabelle di indirizzi IP.


6

Ethernet presuppone che l'altro computer (l'altro MAC) con cui vuole parlare sia direttamente raggiungibile dalla sua scheda di rete. IP no. IP presuppone che possa raggiungere qualsiasi altro IP in tutto il mondo e che se non può raggiungerlo sulla sottorete attuale, un router lo porterà lì, nonostante NAT. La nozione di gateway non esiste in Layer 2 o Ethernet.

Se hai un certo numero di macchine collegate a uno switch e non avrai mai bisogno di scambiare traffico con altre reti / Internet tramite un router, non avrai davvero bisogno di avere IP attivo e funzionante. Ovviamente, un'applicazione dovrebbe implementare o fornire il proprio protocollo sopra il livello 2, dal momento che praticamente tutti i sistemi operativi e le applicazioni presuppongono che si desideri sempre utilizzare il protocollo TCP / IP.

Ricorda sempre che "Internet" in IP significa "internetworking", il che significa in realtà che riguarda il traffico fra reti più di nel una rete, anche se ovviamente può essere (ed è) utilizzata anche per questo.


Il primo paragrafo è la risposta perfetta! Illuminante!
Milind R

6

L'indirizzo MAC viene utilizzato nel trasferimento fisico. Un adattatore ethernet non sa nulla di IP. Quindi l'adattatore ethernet usa l'indirizzo MAC per indirizzare il ricevitore del pacchetto di dati.

Se l'adattatore ethernet sapesse qualcosa su IP, dobbiamo aggiornare tutti i nostri firmware per passare a un nuovo protocollo (come IPv4 a IPV6).

Anche l'indirizzo MAC contiene alcune informazioni sul produttore al suo interno.


3
I router non utilizzano l'indirizzo MAC per instradare nulla. Usano gli indirizzi IP. Gli hub copiano il traffico non modificato dalle loro porte, ma questo sarebbe chiamato bridging, poiché il traffico non attraversa una rete diversa, ma sulla stessa rete.
LawrenceC

5

Viene utilizzato quando ARP (Address resolution protocol) per IPv4 o NDP (Neighbor Discovery Protocol) per IPv6, converte gli indirizzi IP in indirizzi MAC per determinare a quale host univoco i frame devono essere inviati.


Questo è abbastanza vicino, ma non copre tutto l'utilizzo. Ecco come un MAC si riferisce al TCP / IP, ma un MAC è usato per molto più di questo. Questa è la prima risposta che non sto dando un -1 a se (lavorando dal basso verso l'alto della pagina).
Mark Henderson

@ Mark Henderson Grazie per le critiche. Beh, ho solo provato a rispondere alla domanda How MAC addresses were used in packet transfer e quindi ho pensato che fosse su un livello Ethernet. E sì, è una risposta semplice, ma sto rispondendo ad un livello che si adatta al mio stesso livello :)
Jesper Jensen

3

Per completare le risposte di altri, aggiungerei che l'indirizzo MAC è ancora più critico per i router che per gli switch. Cosa intendo più critico è che gli switch non sono realmente necessari per l'esistenza della rete IP. Se guardate indietro di 20 anni (prima della RJ-45) Le reti IP locali funzionavano perfettamente senza che le reti ethernet non instradate fossero semplicemente collegate dispositivi sullo stesso cavo (per esempio, date un'occhiata alla tecnologia X base-T ethernet).

D'altra parte le reti IP sono state inventate per supportare il routing e si basano su schemi di indirizzamento MAC e IP.

L'instradamento dei pacchetti nelle reti IP significa che quando non è possibile accedere direttamente alla macchina di destinazione, questa verrà prima inviata a un'altra macchina (il gateway) più vicina alla destinazione IP finale.

In termini di intestazioni dei pacchetti di rete, significa che un pacchetto inviato a un gateway avrà come destinazione nell'intestazione del livello Ethernet l'indirizzo MAC del gateway, lasciando intatta l'intestazione del livello IP.

Dovresti anche accorgertene Indirizzi MAC di solito significa al giorno d'oggi MAC-48 (indirizzo fisico del dispositivo) o EUI-48 (indirizzo del dispositivo logico) o persino gli 8 byte indirizzi EUI-64 usati nelle reti più grandi. Storicamente il MAC è stato inventato da Xerox per la tecnologia Ethernet e successivamente riutilizzato per altre tecnologie di trasporto di rete (802.11, Bluetooth, FibreChannel, BlueTooth) che necessitano di identificare un dispositivo.

Come ho detto, è possibile utilizzare un altro livello 2 anziché Ethernet, ma la maggior parte utilizza un indirizzo MAC come identificatore di rete e lo schema di corrispondenza MAC / IP sottostante è valido e si può comunque utilizzare ARP. Per quanto ne so, tutti gli stack IP si basano sulla tabella delle corrispondenze tra indirizzi MAC e indirizzi IP.

Esistono altri tipi di identificatori dei nodi dei dispositivi per gli stack non IP. Ad esempio X.25 non si basa su indirizzi MAC, ma su canali virtuali stabiliti su base di connessione, o dispositivi ATM sono identificati nelle reti ATM tramite SNPA. Ma né X.25 né ATM sono stack IP (e persino ATM utilizza il formato MAC come parte del suo SNA, equivalente approssimativo di un indirizzo IP per ATM).


I router non si preoccupano degli indirizzi MAC. Si preoccupano dell'assegnazione di sottorete a ciascuno dei loro almeno 2 NIC, ma non degli indirizzi MAC. Essi inoltrano (cioè copiano) il traffico da un IP all'altro, non da un IP a un MAC o qualcosa del genere.
LawrenceC

4
@ultrasawblade, la tua affermazione è assurdo . Se un router è connesso a una rete Ethernet, deve comunicare utilizzando il protocollo Ethernet. I pacchetti IP saranno incapsulati nel frame Ethernet. Il che significa che è assolutamente necessario conoscere gli indirizzi mac di tutti i ** host Ethernet direttamente **. Un dispositivo di livello 3 non comunica magicamente solo su un protocollo di livello 3, ma incapsula il protocollo di livello 3 all'interno di un protocollo di livello 2, che viene quindi trasmesso sul supporto del livello 1.
Zoredache

3
Non sono d'accordo con la tua prima frase: non sono "più critici" per i router che per gli switch: hanno la stessa importanza su tutta la rete Ethernet.
Mark Henderson

1
Potresti sostituire il livello sottostante 2 con qualcosa di completamente diverso (anche se non so cosa) e IP funzionerà ancora allo stesso modo. Il protocollo IP (Layer 3) non interessa se i singoli host sono indirizzati al di sotto da MAC o da qualche altro schema. Ovviamente c'è bisogno di mantenere la mappatura da IP a MAC - ma è difficile sapere se ARP "appartiene" realmente a Layer 3 o Layer 2. Il punto è che il protocollo di livello 2 non deve essere Ethernet e IP non si cura / ho bisogno di sapere che cos'è il protocollo Layer 2.
LawrenceC

2
@ Mark Henderson: visto che sono vecchio ricordo un periodo in cui non c'erano switch in giro. Non sono davvero un pezzo critico di apparecchiature Le reti IP possono funzionare senza interruttori. Gli switch utilizzavano semplicemente un layout di rete dati preesistente. Se attualmente li abbiamo ovunque, è una conseguenza della tecnologia RJ-punto-punto che sostituisce i vecchi autobus. In altre parole: gli indirizzi MAC non sono stati inventati per far funzionare gli switch. D'altra parte le reti IP sono state inventate per scopi di routing, quindi la relazione tra MAC e IP è critica.
kriss

2

Ripensa ai giorni pre-switch (hub).

Se le persone sono computer, l'indirizzo MAC è il loro nome.

Fingi che molte persone (i computer) siano sulla stessa telefonata. Tutti parlano allo stesso tempo.

TU (un computer) senti TUTTE le chiacchiere, ma non sai cosa dovresti ascoltare, finché qualcuno non dice il tuo nome (il tuo indirizzo MAC) all'inizio di una frase (un pacchetto).

"FRED, THERE IS ICE CREAM!"

Ovviamente, ascolti anche le frasi inviate a indirizzo di trasmissione . Considera che essere qualcuno che urla,

"EVERYONE, THERE IS ICE CREAM!"

Man mano che più persone (computer) ricevono la chiamata in conferenza, più devi filtrare. La tecnologia avanzata e gli switch ci hanno permesso di parlare direttamente con una persona (computer / MAC) in modo che non dovessero lavorare così duramente per filtrare tutto quel rumore (e per liberare più banda).

L'IP è molto simile nell'analogia di base, ma ha più funzioni e livelli in cima all'indirizzamento MAC. Livelli 2 e 3 in Modello OSI , rispettivamente.


Non è necessario ripensare ai giorni pre-passati. Gli indirizzi MAC sono vivi e vengono utilizzati in ogni singolo pacchetto che lascia la tua scheda Ethernet oggi , proprio adesso.
Mark Henderson

Verissimo. Ma aiuta con l'analogia. E le NIC si comportano ancora allo stesso modo.
Randy James

2

L'indirizzo MAC è necessario perché ci sono più indirizzi collegati al "bus" (la rete Ethernet). Un mittente deve essere in grado di identificare il ricevitore e di identificarsi con il ricevitore.

Tutti i bus hardware devono essere indirizzati, perché più mittenti e ricevitori condividono gli stessi fili, i messaggi devono andare a destinatari specifici e anche identificare i mittenti originanti.

I2C, PCI, Ethernet, lo chiami.

Abbiamo più indirizzi in inter-networking (indirizzo IP e indirizzo hardware) perché un indirizzo a livello di hardware è locale solo per una particolare rete fisica. Poiché un datagramma viaggia dalla rete alla rete, tende a mantenere il suo indirizzo a livello di rete, ma cambia gli indirizzi hardware numerose volte lungo la strada. Quando si passa su alcune reti, potrebbe non avere un indirizzo hardware e in alcuni altri potrebbe avere un indirizzo hardware che non è un MAC ethernet. (Gli indirizzi di rete possono essere riscritti da un gateway NAT, ovviamente, ma gli indirizzi hardware vengono rimossi e sostituiti con altri ogni volta che un pacchetto attraversa un router.)


1

Ai vecchi tempi le reti erano autobus condivisi. Ogni dispositivo collegato in rete allo stesso filo o ad un hub significava che ogni pacchetto inviato veniva ricevuto da ogni dispositivo sulla rete.

Il software di rete era più semplice allora. Ogni dispositivo aveva un indirizzo MAC, che era garantito essere unico. Non doveva essere nient'altro - tutto quello che faceva era assicurarsi che non ci fossero due dispositivi sulla stessa rete con lo stesso indirizzo.

Se il dispositivo desidera parlare con un altro dispositivo, invia un pacchetto con l'indirizzo MAC del destinatario e il destinatario lo preleva dalla rete. Tutti gli altri dispositivi lo ignorerebbero: non era indirizzato al loro indirizzo MAC.

Nel corso del tempo le persone hanno collegato troppi dispositivi alla rete e non sono riusciti a tenere il passo con il traffico, quindi hanno iniziato a separare le reti e avrebbero collegato due reti agli switch. Questi switch avevano tabelle enormi che dicevano quali indirizzi MAC erano presenti su ciascuna rete. Se vedevano un pacchetto su una rete indirizzata a un indirizzo MAC sull'altra rete, copiavano il messaggio sull'altra rete. Non avrebbero copiato tutti i messaggi, però, solo quelli che dovevano andare sull'altra rete.

Ciò ha ridotto la congestione e ha consentito il collegamento di più dispositivi in ​​rete e una gestione più generale del traffico. Questo è un rete a commutazione di pacchetto .

Tuttavia, non ha risolto tutti i problemi e ha subito un enorme svantaggio: le tabelle degli scambi si sono ingrandite, le reti hanno rallentato. Se si collegassero 5.000 macchine a 50 reti diverse tutte interconnesse con switch, ogni switch doveva imparare tutti i 5.000 indirizzi MAC e i pacchetti di instradamento basati su quello.

Non è stato un grosso problema fino a quando persone di diverse istituzioni, come le università, volevano collegare le loro reti insieme e le tabelle richieste sarebbero state enormi. Tenere traccia di poche centinaia di migliaia di indirizzi MAC oggi non sembra un grosso problema, ma negli anni '70, quando ciò avveniva, gli switch erano computer stessi, con memoria e velocità limitate, e tenendo traccia di e rapidamente cambiando pacchetti per alcuni cento era un problema.

La soluzione stava andando a una rete IP e usando i router. Questo è costruito sulla rete di pacchetti commutati basata su indirizzo MAC. Piuttosto che dati grezzi, i pacchetti ora contengono un pacchetto IP - un pacchetto all'interno di un pacchetto.

Adesso le reti più grandi sono collegate con i router. Questi aspettano fino a quando vedono un pacchetto con il loro indirizzo MAC, quindi estraggono il pacchetto IP ed esaminano l'indirizzo IP. Quindi re-avvolgono il pacchetto IP in un altro pacchetto con un nuovo destinatario dell'indirizzo MAC e lo inviano su una nuova rete. L'indirizzo MAC è probabilmente su un altro router sulla nuova rete, ma potrebbe anche essere la macchina con l'indirizzo IP.

Nelle reti odierne raramente si vedono hub e bus (tranne che nelle reti wireless, dove il mezzo è intrinsecamente condiviso) e invece la mia macchina si connette direttamente a uno switch, che li collega a un router.

La mia macchina ha una varietà di algoritmi e protocolli quindi sa come viene configurata la rete.

Se invio un pacchetto IP a una macchina sulla mia rete locale, la mia macchina lo inserirà in un pacchetto con l'indirizzo MAC corretto. Gli switch lo commuteranno sulla rete corretta localmente e la macchina a cui sarà destinato lo riceverà perché ha l'indirizzo MAC corretto. Prenderanno il pacchetto IP e verificheranno che anche l'indirizzo IP sia destinato a tale scopo e agiranno di conseguenza.

Se invio un pacchetto IP destinato a una macchina da qualche altra parte su Internet, la mia macchina sa di inviarlo al router, quindi lo inserisce in un pacchetto con l'indirizzo MAC del router. È di nuovo commutato localmente nella mia rete finché non raggiunge la rete su cui è acceso il router, quindi il router lo prende, estrae il pacchetto IP, esamina il pacchetto IP e, in base alla sua conoscenza di Internet, lo invia a un altro router un'altra rete, avvolgendola in un pacchetto con l'indirizzo MAC per il router o il computer di destinazione desiderato.

Ci sono molti piccoli dettagli su cui ho riflettuto, e alcuni algoritmi e protocolli veramente interessanti in gioco che fanno funzionare tutto, ma questa è la storia di base di ciò che l'indirizzo MAC fa per noi, anche oggi.


1
Hai iniziato bene, ma l'hai perso nel mezzo in cui inizi a parlare di reti interconnesse. Gli interruttori non erano comuni fino agli anni '90, ma il routing esisteva 20 anni prima.
Mark Henderson

-1

La differenza principale è che il MAC viene assegnato dal produttore al momento della produzione, mentre l'indirizzo IP viene assegnato al momento della connessione.

MAC è necessario perché può essere utilizzato per identificare un dispositivo prima connessione alla rete; tuttavia, poiché è assegnato staticamente, è distribuito in modo casuale, quindi non è adatto per un routing efficiente su più di una singola rete (così facendo richiederebbe a tutti i dispositivi del pianeta di avere un'enorme tabella di routing per tutti gli altri dispositivi sul pianeta ). Pertanto l'indirizzo IP è necessario perché è assegnato al momento della connessione e il modo in cui è assegnato consente un routing a lunga distanza più efficiente (con IP, la maggior parte dei dispositivi deve conoscere solo le reti adiacenti).

Se esiste solo l'indirizzo IP, i dispositivi a cui non è stato assegnato un indirizzo IP non saranno in grado di stabilire quale messaggio è destinato a loro. Come stabiliresti che questo DHCP è destinato a te e non a qualcun altro che richiede anche l'assegnazione degli indirizzi all'incirca nello stesso momento?

Ovviamente MAC è utilizzato anche per altre parti dell'invio di pacchetti, ma la maggior parte di questi usi è praticamente casuale e può (almeno in teoria) essere sostituita da un numero assegnato dinamicamente (ad esempio indirizzo IP).


+1 per perché non abbiamo solo continuato a utilizzare gli indirizzi MAC.
deed02392

3
Il primo paragrafo è tecnicamente corretto, ma questa non è la differenza principale. La differenza principale è che un MAC appartiene a Ethernet e un IP appartiene a TCP / IP. È possibile eseguire TCP / IP su più protocolli Layer 2 (ATM, ad esempio), e c'è più di un semplice TCP / IP su Etherhet. Non esiste "prima di collegarsi alla rete", ma "Prima di ottenere un indirizzo IP da DHCP". Ma il MAC è ancora usato dopo, poiché si trova su un livello diverso nel modello OSI. L'ultimo paragrafo è decisamente sbagliato - c'è no sostituzione di un indirizzo MAC in rete.
Mark Henderson

@MarkHenderson: Il mio punto è che il MAC che appartiene a Ethernet e IP a TCP / IP è praticamente un incidente storico; in teoria, se abbiamo ridisegnato l'intero stack da zero (ignorando OSI e compatibilità con altre reti), sarebbe possibile sostituire la maggior parte degli usi del numero assegnato dalla fabbrica (ad esempio MAC) con numero assegnato dinamicamente (ad es. IP), ad eccezione che ci sia un numero di pacchetti che devono essere inviati / ricevuti prima che un numero assegnato dinamicamente possa essere acquisito, motivo per cui è necessario un identificatore univoco globale assegnato dalla fabbrica.
Lie Ryan

@MarkHenderson: IMO, dicendo che abbiamo bisogno di MAC e IP perché MAC è livello 2 e IP è livello 3 è come dire "ne abbiamo bisogno perché avevamo progettato internet per essere così", manca il punto e non fornisce informazioni utili di sorta. Quello a cui sto rispondendo è il motivo per cui sia l'identificatore assegnato in fabbrica che l'identificativo assegnato dinamicamente sono necessari a causa della natura del problema e cosa comporta da uno stack di Internet senza (perdita di efficienza di routing per nessun ID assegnato dinamicamente e difficoltà di indirizzamento univoco di un dispositivo prima dell'assegnazione ID dinamica per nessun ID assegnato dalla fabbrica).
Lie Ryan

@LieRyan, in realtà noi può cambiare il MAC del tuo PC indirizzo.......
Pacerier
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.