Perché è necessaria la richiesta di vicinato IPv6 per ottenere l'indirizzo MAC?


12

Sono uno sviluppatore di software e ho appena ricevuto un libro gratuito su IPv6 ai Techdays, che sto leggendo per divertimento. L'hanno dato via perché è un po 'un vecchio libro (W2008), quindi forse le cose sono diverse per altri sistemi operativi / nuovi, ma non capisco la necessità per Neighbor Discovery di ottenere l'indirizzo MAC.

Secondo il libro, ogni nodo ottiene automaticamente un indirizzo IP Link-local, che viene costruito dall'indirizzo MAC inserendo FF-FEtra il 3 ° e il 4 ° byte e lanciando il bit U / L, in modo che l'IP Link-local per un nodo con un indirizzo MAC di 00-AA-00-3F-2A-1Cdiventa FE80::2AA:FF:FE:3F:2A1C.

Per determinare l'indirizzo MAC del livello di collegamento, viene inviato un messaggio di sollecito Neighbor all'indirizzo IP del collegamento locale, che risponde con un messaggio contenente il suo indirizzo MAC ... Ma il mittente lo sa già, poiché il MAC è codificato nel collegamento- indirizzo IP locale. Quindi sembra spedire una cartolina a qualcuno che chiede il proprio indirizzo.

Risposte:


20

Ogni nodo genera automaticamente un indirizzo locale di collegamento, ma:

  • Tale indirizzo potrebbe non essere generato con il formato EUI-64 specificato in RFC 2464 . Gli indirizzi IPv6 possono anche essere indirizzi generati crittograficamente ( RFC 3972 ), indirizzi di privacy temporanei ( RFC 4941 ) o, nei moderni sistemi operativi, indirizzi di privacy stabili ( RFC 7217 ).

  • Un indirizzo che sembra avere un ID interfaccia EUI-64 potrebbe non corrispondere effettivamente all'indirizzo MAC indicato a causa della configurazione esplicita di un amministratore.

Poiché non è possibile semplicemente "riconvertire l'indirizzo" in un indirizzo MAC, è necessario inviare una richiesta di vicinato per determinare l'indirizzo MAC.

Esistono anche altri motivi per cui sono necessarie le sollecitazioni dei vicini. Alcuni di questi sono:

  • Rilevamento di indirizzi duplicati ( RFC 4862 ). È possibile che qualche altro host abbia (giustamente o erroneamente) rivendicato un indirizzo che un host desidera utilizzare.
  • Rilevazione di irraggiungibilità dei vicini. Una mancanza di risposta a una sollecitazione del vicino è un indicatore del fatto che il vicino non è raggiungibile.

I libri sono tutti buoni e buoni, ma libri molto obsoleti potrebbero non essere così utili. Persino IPv6 ha subito revisioni significative negli ultimi dieci anni. La migliore fonte di verità sono le RFC pertinenti, sia quelle originali che quelle contrassegnate come aggiornate o obsolete. Le RFC sono specificate in modo sufficientemente dettagliato da consentire la scrittura di implementazioni conformi. Puoi imparare tutti i dettagli della scoperta del vicino leggendo RFC 4861 .


Grazie per le correzioni; se non si utilizza un formato EUI-64, è necessario scoprire altrimenti il ​​MAC. Ma in realtà, non capisco le preoccupazioni sulla privacy con il formato EUI-64 per gli indirizzi link-local, poiché l'indirizzo link-local è associato al link e su quel link, l'indirizzo MAC dovrà essere (e può essere ) noto comunque (da Neighbor Solicitation) per la comunicazione Ethernet, quindi per cattive intenzioni, l'indirizzo MAC può essere salvato lungo l'indirizzo di privacy stabile sul collegamento locale, non è vero?
Edwin,

@Edwin, SLAAC era originariamente utilizzato per tutti gli indirizzi IPv6, non solo per gli indirizzi Link-Local, quindi è stato possibile rintracciare un host. SLAAC è solo un metodo per assegnare indirizzi Link-Local. Potrebbero anche essere assegnati manualmente e ciò non ti darebbe l'indirizzo MAC nell'indirizzo Link-Local. Conosco alcune persone che vogliono assegnare manualmente tutti gli indirizzi, incluso Link Local. Sembra un sacco di lavoro per poco o nessun guadagno, ma li rende felici e tutti gli IID di tutti gli indirizzi su un'interfaccia sono uguali, nell'ordine che preferiscono.
Ron Maupin,

@Edwin Inoltre, ogni host manterrà effettivamente una cache di destinazione (vedere RFC 4861), analoga alla tabella ARP IPv4 gestita dagli host.
Michael Hampton

La CGA avrebbe potuto essere più semplice e più sicura se gli indirizzi fossero stati due volte più grandi. La metà delle specifiche sono soluzioni alternative per avere solo 64 bit nell'identificatore di interfaccia dove idealmente avrebbero voluto circa 162 bit. È una cosa da ricordare ogni volta che viene fuori l'idea che 128 bit sia troppo.
Kasperd,

Cosa consideri non standard su quel documento Microsoft? A me sembra che riassuma semplicemente le RFC a cui sei collegato.
Kasperd,

9

Quindi, hai frainteso o sei stato male informato su alcune cose.

Usando SLAAC un host può costruire il proprio indirizzo IPv6 usando il suo indirizzo MAC, ma molte persone pensavano che ciò fosse pericoloso, fornendo troppe informazioni e permettendo il tracciamento di un determinato host. Sulla base di ciò, sono state sviluppate estensioni della privacy e indirizzamento casuale, che vengono utilizzati dai sistemi operativi per fornire privacy / sicurezza. Ciò significa che un host può creare il proprio indirizzo, non basato sul suo indirizzo MAC.

Quando un host deve scoprire l'indirizzo MAC di un vicino in IPv4, utilizza ARP. ARP trasmette una richiesta, ma IPv6 non ha trasmesso. Invece, ogni host deve unirsi a un gruppo multicast Nodo sollecitato. Questo gruppo si basa sugli ultimi 24 bit del suo indirizzo IPv6. Poiché le interfacce IPv6 possono avere un numero qualsiasi di indirizzi IPv6, un host può unirsi a più gruppi multicast Nodo sollecitato. Un host IPv6 che cerca l'indirizzo MAC di un altro host invierà una richiesta multicast al gruppo multicast Nodo sollecitato dell'indirizzo IPv6 di destinazione.

Ciò fornisce un vantaggio rispetto all'ARP IPv4. Poiché ARP utilizza una trasmissione per le richieste, interrompe ogni host sul dominio di trasmissione di livello 2. Poiché il gruppo multicast Nodo sollecitato utilizza gli ultimi 24 bit dell'indirizzo IPv6 di destinazione, la richiesta ND multicast interromperà probabilmente solo l'host di destinazione o, eventualmente, uno o due altri host nel dominio di trasmissione di livello 2.

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.