Passa al contenuto principale

Appendix A: Creating Modified EUI-64 Format Interface Identifiers (Creazione di identificatori di interfaccia in formato EUI-64 modificato)

A seconda delle caratteristiche di un particolare link o nodo, esistono diversi approcci per creare identificatori di interfaccia in formato Modified EUI-64. Questo allegato descrive alcuni di tali approcci.


L'unica modifica necessaria per trasformare un identificatore IEEE EUI-64 in un identificatore di interfaccia consiste nell'invertire il bit «u» (universal/local).

Esempio di identificatore IEEE EUI-64 universalmente unico:

|0              1|1              3|3              4|4              6|
|0 5|6 1|2 7|8 3|
+----------------+----------------+----------------+----------------+
|cccccc0gcccccccc|ccccccccmmmmmmmm|mmmmmmmmmmmmmmmm|mmmmmmmmmmmmmmmm|
+----------------+----------------+----------------+----------------+

dove:

  • c: bit della company_id
  • 0: valore del bit universal/local che indica ambito universale
  • g: bit individual/group
  • m: bit dell'identificatore di estensione selezionati dal produttore

Forma dell'identificatore di interfaccia IPv6:

|0              1|1              3|3              4|4              6|
|0 5|6 1|2 7|8 3|
+----------------+----------------+----------------+----------------+
|cccccc1gcccccccc|ccccccccmmmmmmmm|mmmmmmmmmmmmmmmm|mmmmmmmmmmmmmmmm|
+----------------+----------------+----------------+----------------+

L'unica modifica consiste nell'invertire il valore del bit universal/local (da 0 a 1).


[EUI64] definisce un metodo per creare un identificatore IEEE EUI-64 a partire da un identificatore MAC IEEE a 48 bit. Ciò avviene inserendo due ottetti, di valore esadecimale 0xFF e 0xFE, al centro del MAC a 48 bit (tra la company_id e l'ID fornita dal produttore) (vedere la nota alla fine di questo allegato).

Esempio di indirizzo MAC IEEE a 48 bit a portata globale:

|0              1|1              3|3              4|
|0 5|6 1|2 7|
+----------------+----------------+----------------+
|cccccc0gcccccccc|ccccccccmmmmmmmm|mmmmmmmmmmmmmmmm|
+----------------+----------------+----------------+

dove:

  • c: bit della company_id assegnata
  • 0: valore del bit universal/local che indica portata globale
  • g: bit individual/group
  • m: bit dell'identificatore di estensione selezionati dal produttore

Forma dell'identificatore di interfaccia:

|0              1|1              3|3              4|4              6|
|0 5|6 1|2 7|8 3|
+----------------+----------------+----------------+----------------+
|cccccc1gcccccccc|cccccccc11111111|11111110mmmmmmmm|mmmmmmmmmmmmmmmm|
+----------------+----------------+----------------+----------------+

Quando sono disponibili indirizzi MAC IEEE 802 a 48 bit (su un'interfaccia o un nodo), un'implementazione può utilizzarli per creare identificatori di interfaccia grazie alla loro disponibilità e alle proprietà di unicità.

Transformation Steps (Passaggi di trasformazione)​

  1. Prendere l'indirizzo MAC a 48 bit
  2. Inserire 0xFF-FE al centro (ovvero tra il 3° e il 4° ottetto)
  3. Invertire il 7° bit (bit u) del primo ottetto

Esempio:

Indirizzo MAC:      00:1A:2B:3C:4D:5E
Inserire 0xFF-FE: 00:1A:2B:FF:FE:3C:4D:5E
Invertire bit u: 02:1A:2B:FF:FE:3C:4D:5E
ID interfaccia: 021A:2BFF:FE3C:4D5E

Esistono molti tipi di link i cui identificatori di collegamento non sono né IEEE EUI-64 né MAC IEEE 802 a 48 bit. Tra questi vi sono LocalTalk e Arcnet. Il metodo per creare un identificatore in formato Modified EUI-64 consiste nel prendere l'identificatore di collegamento (ad esempio, l'identificatore di nodo LocalTalk a 8 bit) e riempirlo a sinistra con zeri.

Esempio:

Un identificatore di nodo LocalTalk a 8 bit di valore esadecimale 0x4F produce il seguente identificatore di interfaccia:

|0              1|1              3|3              4|4              6|
|0 5|6 1|2 7|8 3|
+----------------+----------------+----------------+----------------+
|0000000000000000|0000000000000000|0000000000000000|0000000001001111|
+----------------+----------------+----------------+----------------+

Rappresentato come: 0000:0000:0000:004F

Si noti che ciò produce un bit universal/local impostato su «0» per indicare ambito locale.


Esiste una serie di link che non dispongono di alcun tipo di identificatore integrato. I più comuni sono i link seriali e i tunnel configurati. Gli identificatori di interfaccia devono essere scelti in modo univoco all'interno di un prefisso di sottorete.

Method 1: Use Universal Interface Identifier (Metodo 1: utilizzare un identificatore di interfaccia universale)​

Quando non è disponibile alcun identificatore integrato su un link, l'approccio raccomandato consiste nell'utilizzare un identificatore di interfaccia universale proveniente da un'altra interfaccia o da un identificatore assegnato al nodo stesso. Con questo approccio, nessun'altra interfaccia che collega lo stesso nodo allo stesso prefisso di sottorete può utilizzare lo stesso identificatore.

Method 2: Create Local Scope Interface Identifier (Metodo 2: creare un identificatore di interfaccia a ambito locale)​

Se non è disponibile alcun identificatore di interfaccia universale per il link, l'implementazione deve creare un identificatore di interfaccia a ambito locale. L'unico requisito è che sia univoco all'interno del prefisso di sottorete. Esistono diversi approcci per selezionare un identificatore univoco all'interno del prefisso di sottorete, tra cui:

  • Manual Configuration (configurazione manuale)
  • Node Serial Number (numero di serie del nodo)
  • Other Node-Specific Token (altro token specifico del nodo)

Un identificatore di interfaccia univoco all'interno del prefisso di sottorete deve essere generato in modo da non cambiare dopo un riavvio del nodo o quando le interfacce vengono aggiunte o rimosse dal nodo.

La scelta dell'algoritmo appropriato dipende dal link e dall'implementazione. I dettagli sulla creazione degli identificatori di interfaccia sono definiti nella specifica appropriata «IPv6 over <link>». Si raccomanda vivamente di includere un algoritmo di rilevamento delle collisioni in qualsiasi algoritmo automatico.


Important Notes (Note importanti)​

Riguardo all'uso di 0xFF-FE:

[EUI64] ha in realtà definito 0xFF e 0xFF come bit da inserire per creare un identificatore IEEE EUI-64 a partire da un identificatore IEEE MAC-48. I valori 0xFF e 0xFE sono stati utilizzati a partire da un identificatore IEEE EUI-48. Il valore 0xFF e 0xFE è stato utilizzato nelle versioni precedenti di questa specifica a causa di una confusione sulla differenza tra gli identificatori IEEE MAC-48 e EUI-48.

Questo documento continua intenzionalmente a utilizzare 0xFF e 0xFE perché:

  1. Ciò soddisfa i requisiti degli identificatori di interfaccia IPv6 (ovvero devono essere univoci sul link)
  2. Gli identificatori IEEE EUI-48 e MAC-48 sono sintatticamente equivalenti
  3. Ciò non crea problemi nella pratica

Interface Identifier Generation Summary (Riepilogo della generazione degli identificatori di interfaccia)​

Link TypeMethodU/L Bit
IEEE EUI-64Inverti bit u1 (universale)
IEEE 802 48-bit MACInserisci FF-FE, inverti bit u1 (universale)
Altri identificatori (come LocalTalk)Riempimento a sinistra con zeri0 (locale)
Nessun identificatoreGenerazione manuale/automaticaDipende dal metodo

Principio chiave (Key Principle): gli identificatori di interfaccia devono essere univoci all'interno del proprio prefisso di sottorete.