Perché non è stato possibile utilizzare gli indirizzi MAC al posto di IPv4 | 6 per la rete? [chiuso]


184

Sto leggendo su TCP / IP e altri protocolli e tecnologie correlati. Gli indirizzi MAC sono descritti come (ragionevolmente :) unici e con un ampio spazio di possibilità (diverse centinaia di miliardi di miliardi), mentre sono anche assegnati a tutte le interfacce di rete. Quali sono i motivi storici e tecnici per cui vengono utilizzati gli indirizzi IPv4 o IPv6 anziché gli indirizzi MAC per le comunicazioni internetwork?

Mi sto perdendo qualcosa di fondamentale o è solo una ragione sciocca (ad esempio, basandosi sulla tecnologia legacy)?


55
Correzione pedante: ragionevolmente unica; schede con identici indirizzi HW MAC sono state avvistate in natura - questo è un problema di rete "divertente" per il debug.
Piskvor,

9
Ho visto personalmente un driver difettoso che in realtà ha assegnato lo stesso indirizzo MAC a diverse schede di rete su macchine diverse (che avevano indirizzi HW univoci prima di installare quel driver). Beh, è ​​stato doloroso .
Massimo

3
Massimo, ho visto la stessa identica cosa. Non è raro che un driver lo faccia nello sviluppo e che i programmatori dimentichino di trasformare quel componente di quando va la produzione. @Felix, è anche comune per i produttori riutilizzare i MAC nel tempo e in diverse parti del mondo. Una carta venduta nel 2005 negli Stati Uniti potrebbe avere lo stesso MAC di quella venduta in Cina nel 2013, ad esempio.
Robert Kaucher,

30
Indirizzare un pacchetto con un indirizzo MAC sarebbe come indirizzare una lettera con un numero di previdenza sociale.
Mikey,

14
Come faresti a sapere dove si trova un indirizzo MAC specifico in questo momento? In anticipo, senza la necessità di avere tutti i nodi su Internet notificati quando ci si sposta su un'altra rete?
Thorbjørn Ravn Andersen,

Risposte:


345

L'indirizzo MAC potrebbe essere univoco, ma non c'è nulla di speciale nel numero che indichi dove si trova. MAC 00-00-00-00-00-00potrebbe essere dall'altra parte del pianeta da 00-00-00-00-00-01.

L'IP è uno schema di numerazione arbitraria imposto in modo gerarchico a un gruppo di computer per distinguerli logicamente come gruppo (ecco cos'è una sottorete). L'invio di messaggi tra questi gruppi avviene tramite il routing delle tabelle, divise a loro volta in più livelli in modo da non dover tenere traccia di ogni singola sottorete. Ad esempio, 17.x.x.xè all'interno della rete Apple. Da lì, Apple saprà dove si trovano ciascuna delle sue migliaia di sottoreti e come raggiungerle (nessun altro ha bisogno di conoscere queste informazioni, hanno solo bisogno di sapere che tutto va su Apple).

È anche abbastanza facile correlarlo con un'altra coppia di sistemi. Hai un numero ID rilasciato dallo stato, perché dovresti avere bisogno di un indirizzo postale se quel numero ID è già unico per te? Hai bisogno dell'indirizzo postale perché è un sistema arbitrario che descrive dove dovrebbe andare la destinazione unica per le comunicazioni.


23
Questa è un'ottima risposta Avrei aggiunto che gli indirizzi MAC vengono in definitiva utilizzati nelle comunicazioni IP quando i computer determinano che si trovano sulla stessa sottorete; ecco perché l'avvelenamento da ARP funziona come un attacco. La stessa cosa con un gateway predefinito, il computer indirizza i pacchetti destinati a un'altra sottorete all'indirizzo MAC restituito dalla ricerca ARP per l'IP gateway predefinito. L'indirizzamento di livello 3 / IP viene utilizzato principalmente dai router e utilizzato solo dall'host per determinare se la destinazione si trova sulla stessa sottorete.
Sean C.

7
@SeanC, gli indirizzi MAC sono in definitiva utilizzati nelle comunicazioni IP tramite protocolli di linea basati su 802.1 (Ethernet, WiFi, Token Ring, ecc.). Ma non tramite i protocolli ATM, come PoSDH e IPoATM.
Chris S,

25
Inoltre, è possibile mantenere lo stesso indirizzo IP quando è necessario sostituire la scheda di rete (o l'intero computer). Immagina quanto sarebbe fastidioso senza l'astrazione IP.
OrangeDog,

3
@ChrisS Ho un amico che, come amministratore di sistema, ha ricevuto un lotto di carte da un singolo fornitore e le carte avevano un solo indirizzo MAC nell'intera palette. Il venditore ha affermato che le carte non si sono mescolate correttamente alla distribuzione al dettaglio in modo che ci fossero duplicati, poiché l'ordine era un calo diretto dalla fabbrica. Prima che le carte andassero alla distribuzione al dettaglio, dovevano mescolarsi insieme per diffondere i duplicati. Quindi, per un determinato fornitore, i destinatari MAC non sono univoci, tanto meno tra i fornitori.

4
Esistono vari motivi storici per cui si verificano duplicati dell'indirizzo mac, inclusi i bug del firmware del fornitore .
Mike Pennington,

73

Perché le tabelle di routing diventerebbero incredibilmente grandi.

Gli indirizzi IP sono allocati in modo gerarchico, quindi un router può raggruppare i percorsi in base ai prefissi degli indirizzi. Il numero di sistemi autonomi presenti in rete ora è abbastanza ragionevole da adattarsi all'hardware di oggi.

D'altra parte, la distribuzione degli indirizzi MAC attraverso la rete è casuale e completamente estranea alla topologia. Il raggruppamento delle rotte sarebbe impossibile, ogni router dovrebbe tenere traccia delle rotte per ogni singolo dispositivo che inoltra il traffico attraverso di essa. Questo è ciò che fanno gli switch di livello 2 e che non si adatta ben oltre un certo numero di host.


Puoi approfondire questo? Perché dovrebbero? Perché non è così con IPv *?
Félix Saparelli,

2
Non vi è alcuna ragione intrinseca che le tabelle dei router che utilizzano un indirizzo in formato MAC siano "incredibilmente grandi" rispetto ai formati IPv4 / 6. Il problema è che l'allocazione degli indirizzi IP è legata a una gerarchia che rende fattibile il routing WAN. Gli indirizzi MAC sono assegnati ai dispositivi Ethernet dai produttori (e possono essere modificati nel software) e, man mano che il dispositivo hardware si sposta, rendere tali revisioni ad hoc alle tabelle di routing WAN sarebbe un compito "incredibilmente grande".
Hardmath,

34

Il mondo non funziona esclusivamente su Ethernet (almeno storicamente). Il livello IP è indipendente dal livello hardware sottostante.

I nodi PPP non hanno indirizzi Mac. Nemmeno arcnet, token ring, fddi, hppi. Tali altri standard potrebbero non essere così rilevanti oggi, ma Ethernet potrebbe essere sostituita con altre tecnologie in futuro e sarebbe trasparente al livello IP.

C'è una discussione più lunga su come continuiamo a inventare nuovi protocolli hardware e a chiamarli Ethernet, ma sto divagando ...


5
Token Ring ha indirizzi MAC.
Chris S,

Vuoi dire che non possono passare a ipv6 neanche perché il nodo PPP non ha un indirizzo v6? (O almeno non ne avevo uno 5-10 anni fa). Per quanto ne so, oggi non ho mai fermato la distribuzione di ipv6. Anche questo non fa differenza per MAC.
Dorus,

6
@Doro: il tuo commento non ha senso. I nodi PPP possono avere sia indirizzi IPv4 che IPv6, proprio perché IP build sui protocolli sottostanti, come Ethernet o PPP. Tuttavia, i nodi PPP non hanno un indirizzo MAC (perché lo standard PPP non li ha).
sleske,

A distanza di 3 anni (e un po 'più ben informato), mi piacerebbe leggere quella "discussione più lunga su come continuiamo a inventare nuovi protocolli hardware e chiamandoli Ethernet". ; P
Félix Saparelli,


30

Oltre al routing gerarchico dell'IP, la loro separazione dagli indirizzi MAC consente di modificare la scheda di rete o l'intero computer mantenendo lo stesso indirizzo IP (e quindi la topologia di rete logica).

Questa astrazione consente una rete molto più flessibile e gestibile.


22

Dai un'occhiata al modello OSI : http://en.wikipedia.org/wiki/OSI_model

Questo spiega perché non ha senso effettuare il routing, un concetto di livello 3, decisioni basate su un meccanismo fisico, di livello 2.

Le reti moderne sono suddivise in molti livelli diversi per realizzare la tua comunicazione end-to-end. La tua scheda di rete (ciò che viene indirizzato dall'indirizzo mac [indirizzo fisico]) deve essere responsabile solo della comunicazione con i peer sulla sua rete fisica.

La comunicazione che ti è consentito realizzare con il tuo indirizzo MAC sarà limitata ad altri dispositivi che risiedono nel contatto fisico con la tua macchina. Su Internet, ad esempio, non sei fisicamente connesso a ciascuna macchina. Ecco perché utilizziamo il meccanismo TCP / IP (un livello 3, indirizzo logico) quando dobbiamo comunicare con una macchina a cui non siamo fisicamente connessi.


6
+1 per menzionare il modello OSI.
Massimo

7

b0fh ha ragione, ma anche perché gli indirizzi MAC non sono sempre univoci.

Vedere ad esempio negli scenari di virtualizzazione. Qui più host possono servire macchine virtuali con gli stessi indirizzi MAC.


4

Le tabelle di routing per gli indirizzi MAC richiederebbero quasi ogni singolo dispositivo con un indirizzo MAC elencato. Il routing a Internet per IP è una voce singola 0.0.0.0/0. Per le classi di reti si suddividono come 10.0.0.0/8 172.16.0.0/16 e 192.168.0.0/24. Molti di questi possono essere aggregati come 172.16.0.0/12 e 192.168.0.0/16 riducendo ulteriormente le dimensioni della tabella di routing.

Le rotte vengono cercate in ordine inverso rispetto al numero di un bit nella loro maschera. Questo fa funzionare il routing a 192.168.100.0/24 quando esiste una route per 192.168.0.0/16 e un'altra per 0.0.0.0/0 (route predefinita).

EDIT: originariamente, l'intervallo IP era suddiviso in diverse classi; A, B e C sono i più significativi. La classe A costituiva la prima metà dell'intervallo di indirizzi, l'intervallo B il trimestre successivo e l'intervallo C i successivi otto dell'intervallo. Queste classi avevano maschere rispettivamente di 8, 16 e 24 bit. Successivamente è stato abbandonato l'uso rigoroso di queste maschere e l'allocazione degli indirizzi è stata effettuata in una varietà di dimensioni.

La dimensione dell'assegnazione è sempre una potenza di 2 e l'indirizzo più basso e più alto in ogni allocazione sono riservati. Ogni allocazione avrà anche un indirizzo per un router. Questo è spesso l'indirizzo non riservato più basso o più alto. La più piccola allocazione pratica è un indirizzo / 30.

IPv6 utilizza la stessa forma di allocazione con un / 64 l'allocazione più piccola che può apparire su Internet. In genere, all'ISP verrà assegnata un'allocazione molto più ampia, che è tutto ciò che i router Internet dovrebbero conoscere. Le allocazioni previste sono specificate negli RFC. L'ISP dovrebbe sapere come instradare la propria sottorete e quali indirizzi instradare verso quali router di interconnessione. Questo è significativamente più semplice rispetto a sapere come instradare ciascun indirizzo mac.


7
Non ci sono più lezioni in rete e non esistono dal 1994. = [
Chris S

Le ricerche PTR di @ChrisS IPv4 vengono ancora eseguite per classe, sebbene sia possibile la delega. Le aggregazioni si applicano ancora con o senza classi e le aggregazioni B e C sono ancora applicate anche prima delle reti senza classi.
BillThor,

2
Le ricerche PTR vengono eseguite da Octet, non ci sono classi. Vedi RFC dal 1517 al 1520.
Chris S,

2
@ChrisS Tra le persone con cui lavoro, le classi sono usate per riferirsi al numero di ottetti nella maschera di rete A = 1, B = 2 e C = 3. Non li associamo a intervalli storici e suddivideremo la classe A 10.0.0.0 in blocchi B e C. Le lezioni continuano nella tradizione, se non nel loro significato originale.
BillThor,

2

Penso che il punto principale che stanno cercando di comunicare sia che gli indirizzi MAC sono determinati dai fornitori, quindi non esiste uno schema di indirizzamento coerente che possa essere rispettato in una sottorete locale a causa dell'enorme varietà di produttori che creano interfacce.

Gli indirizzi MAC vengono utilizzati quando l'indirizzo di destinazione si trova nella sottorete locale (192.168.0.x, ad esempio). Quando il traffico non corrisponde alla sottorete locale, il computer fa riferimento alla tabella di routing. Generalmente la tabella di routing dirà a tutto il traffico che non corrisponde alla sottorete locale (0.0.0.0) a dirigersi verso il gateway locale, a quel punto qualsiasi affiliazione agli indirizzi MAC viene completamente eliminata. L'unico modo in cui gli indirizzi MAC potrebbero essere utilizzati a livello globale sarebbe quello di avere una sottorete enorme, piatta, che sarebbe totalmente inattuabile.


2

L'indirizzo MAC può essere lo stesso su diversi adattatori Ethernet sulla stessa macchina. SUN aveva un indirizzo MAC univoco per ogni macchina. Quindi le schede ethernet per i computer SUN non avevano un indirizzo MAC univoco, lo faceva la macchina.

Quindi, quando hai collegato la macchina a due reti diverse, aveva lo stesso indirizzo MAC su entrambe le reti.


2

Gli indirizzi MAC sono gli indirizzi del livello di collegamento (2n) nel modello ISO / OSI e nel modello TCP / IP . Significa che gli indirizzi MAC vengono utilizzati per connettere nodi all'interno di una rete locale (punto a punto). Gli indirizzi IP sono gli indirizzi del livello di rete (3 °) all'interno di Internet (end-to-end).

Entrambi gli indirizzi vengono utilizzati solo nel loro livello e non sono destinati a essere utilizzati al di fuori di esso.


1

L'indirizzo MAC di un indirizzo IP di destinazione è utile, solo per la consegna dei pacchetti, all'interno di un singolo dominio di trasmissione locale.


1

Le persone qui hanno affermato che il problema dell'utilizzo degli indirizzi MAC anziché degli indirizzi IPv4 è il routing, poiché le tabelle di routing aumenterebbero, tuttavia ciò presuppone router IPv4. È possibile avere tabelle di routing di piccole dimensioni e, se sei interessato, cerca il routing dello spazio dei nomi flat. Uno degli articoli che descrivono questa tecnica è questo: http://www.cs.uiuc.edu/~caesar/papers/rofl.pdf


2
ROFL propone che ogni router all'interno di AS mantenga traccia di ogni singolo host all'interno di tale AS ... E utilizzi hash crittografici per identificatori host ... Quindi non solo ci saranno milioni di voci nelle tabelle di routing e mostruosi requisiti di trasferimento / mantenimento, ma per interpretare la tabella sono necessari algoritmi crittografici. L'autore è fuori di testa. L'IP potrebbe avere carenze, ma almeno non ci sono ipotesi folli nella progettazione di base.
Chris S,

In ROFL solo i router di primo hop devono mantenere l'insieme di nodi connessi, non di tutti i nodi nell'AS. La sezione 2 menziona la memorizzazione nella cache, ma si tratta di un'ottimizzazione. Crypto è necessario solo quando i nodi si uniscono al router, non per l'interpretazione della tabella di routing. Il routing viene eseguito su un DHT, che è molto più resistente del routing gerarchico.
Nikola Knezevic,

1

Il mio ricordo è che gli indirizzi MAC sono in realtà indirizzi Ethernet. Gli indirizzi Ethernet sono divisi in due parti: una parte del fornitore - che identifica il fornitore della scheda ethernet e una parte dell'indirizzo che viene assegnata dal fornitore. Spetta al venditore renderli unici o no.

Quindi lo spazio degli indirizzi MAC a 48 bit non viene utilizzato in modo efficiente né - come detto più volte sopra - gerarchicamente.

L'indirizzo è progettato per avere indirizzi univoci su una rete di rete CSMA locale.

Almeno, per il meglio che ricordo.

Gli indirizzi IP sono progettati per scalare molto più in generale e per risolvere un problema diverso.


Gli indirizzi MAC devono essere univoci: non sempre accade come altri hanno notato, ma è un requisito. I produttori possono ottenere più di un ID fornitore. Esistono circa 4 milioni di possibili ID fornitore (nello spazio degli indirizzi MAC48, c'è anche uno spazio degli indirizzi MAC64 in arrivo) e meno di un decimo è stato assegnato. All'interno di ogni ID fornitore ci sono 16 milioni di ID dispositivo, ci vuole un po 'prima che i fornitori anche di grandi dimensioni si esauriscano.
Chris S,
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.