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.
For Links or Nodes with IEEE EUI-64 Identifiers (Per link o nodi con identificatori IEEE EUI-64)
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).
For Links or Nodes with IEEE 802 48-bit MACs (Per link o nodi con MAC IEEE 802 a 48 bit)
[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)
- Prendere l'indirizzo MAC a 48 bit
- Inserire
0xFF-FEal centro (ovvero tra il 3° e il 4° ottetto) - 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
For Links with Other Types of Identifiers (Per link con altri tipi di identificatori)
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.
For Links with No Identifiers (Per link senza identificatori)
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é:
- Ciò soddisfa i requisiti degli identificatori di interfaccia IPv6 (ovvero devono essere univoci sul link)
- Gli identificatori IEEE EUI-48 e MAC-48 sono sintatticamente equivalenti
- Ciò non crea problemi nella pratica
Interface Identifier Generation Summary (Riepilogo della generazione degli identificatori di interfaccia)
| Link Type | Method | U/L Bit |
|---|---|---|
| IEEE EUI-64 | Inverti bit u | 1 (universale) |
| IEEE 802 48-bit MAC | Inserisci FF-FE, inverti bit u | 1 (universale) |
| Altri identificatori (come LocalTalk) | Riempimento a sinistra con zeri | 0 (locale) |
| Nessun identificatore | Generazione manuale/automatica | Dipende dal metodo |
Principio chiave (Key Principle): gli identificatori di interfaccia devono essere univoci all'interno del proprio prefisso di sottorete.