Appendix A. Creating Modified EUI-64 Format Interface Identifiers (Creazione di identificatori di interfaccia in formato EUI-64 modificato)
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 collegamento o nodo specifico, esistono diversi approcci per la creazione di identificatori di interfaccia in formato EUI-64 modificato. Questa appendice descrive alcuni di questi approcci.
Collegamenti o nodi con identificatori IEEE EUI-64
L'unica modifica necessaria per trasformare un identificatore IEEE EUI-64 in un identificatore di interfaccia è invertire il bit «u» (universal/local). Un esempio di identificatore IEEE EUI-64 globalmente univoco della forma:
|0 1|1 3|3 4|4 6|
|0 5|6 1|2 7|8 3|
+----------------+----------------+----------------+----------------+
|cccccc0gcccccccc|ccccccccmmmmmmmm|mmmmmmmmmmmmmmmm|mmmmmmmmmmmmmmmm|
+----------------+----------------+----------------+----------------+
dove «c» sono i bit del company_id assegnato, «0» è il valore del bit universal/local per indicare ambito universale, «g» è il bit individual/group, e «m» sono i bit dell'identificatore di estensione selezionato dal produttore. L'identificatore di interfaccia IPv6 sarebbe della forma:
|0 1|1 3|3 4|4 6|
|0 5|6 1|2 7|8 3|
+----------------+----------------+----------------+----------------+
|cccccc1gcccccccc|ccccccccmmmmmmmm|mmmmmmmmmmmmmmmm|mmmmmmmmmmmmmmmm|
+----------------+----------------+----------------+----------------+
L'unico cambiamento è l'inversione del valore del bit universal/local.
Collegamenti o nodi con MAC IEEE 802 a 48 bit
[EUI64] definisce un metodo per creare un identificatore IEEE EUI-64 da un identificatore MAC IEEE a 48 bit. Questo consiste nell'inserire due ottetti, con valori esadecimali di 0xFF e 0xFE (vedere la nota alla fine dell'appendice), nel mezzo del MAC a 48 bit (tra company_id e id fornito dal fornitore). Un esempio è il MAC IEEE a 48 bit con ambito globale:
|0 1|1 3|3 4|
|0 5|6 1|2 7|
+----------------+----------------+----------------+
|cccccc0gcccccccc|ccccccccmmmmmmmm|mmmmmmmmmmmmmmmm|
+----------------+----------------+----------------+
dove «c» sono i bit del company_id assegnato, «0» è il valore del bit universal/local per indicare ambito globale, «g» è il bit individual/group, e «m» sono i bit dell'identificatore di estensione selezionato dal produttore. L'identificatore di interfaccia sarebbe della forma:
|0 1|1 3|3 4|4 6|
|0 5|6 1|2 7|8 3|
+----------------+----------------+----------------+----------------+
|cccccc1gcccccccc|cccccccc11111111|11111110mmmmmmmm|mmmmmmmmmmmmmmmm|
+----------------+----------------+----------------+----------------+
Quando gli indirizzi MAC IEEE 802 a 48 bit sono disponibili (su un'interfaccia o un nodo), un'implementazione può utilizzarli per creare identificatori di interfaccia grazie alle loro proprietà di disponibilità e unicità.
Collegamenti con altri tipi di identificatori
Esistono diversi tipi di collegamenti che hanno identificatori di interfaccia del livello di collegamento diversi da IEEE EUI-64 o MAC IEEE 802 a 48 bit. Gli esempi includono LocalTalk e Arcnet. Il metodo per creare un identificatore in formato EUI-64 modificato consiste nel prendere l'identificatore di collegamento (ad es., l'identificatore di nodo LocalTalk a 8 bit) e riempirlo con zeri a sinistra. Ad esempio, un identificatore di nodo LocalTalk a 8 bit con valore esadecimale 0x4F risulta nel seguente identificatore di interfaccia:
|0 1|1 3|3 4|4 6|
|0 5|6 1|2 7|8 3|
+----------------+----------------+----------------+----------------+
|0000000000000000|0000000000000000|0000000000000000|0000000001001111|
+----------------+----------------+----------------+----------------+
Si noti che questo risulta nel bit universal/local impostato a «0» per indicare ambito locale.
Collegamenti senza identificatori
Esistono diversi collegamenti che non hanno alcun tipo di identificatore incorporato. I più comuni di questi sono i collegamenti seriali e i tunnel configurati. Devono essere scelti identificatori di interfaccia che sono unici all'interno di un prefisso di sottorete.
Quando nessun identificatore incorporato è disponibile su un collegamento, l'approccio preferito è utilizzare un identificatore di interfaccia universale da un'altra interfaccia o uno assegnato al nodo stesso. Quando si utilizza questo approccio, nessun'altra interfaccia che collega lo stesso nodo allo stesso prefisso di sottorete può utilizzare lo stesso identificatore.
Se non c'è un identificatore di interfaccia universale disponibile per l'uso sul collegamento, l'implementazione deve creare un identificatore di interfaccia di ambito locale. L'unico requisito è che sia unico all'interno di un prefisso di sottorete. Esistono molti approcci possibili per selezionare un identificatore di interfaccia univoco per prefisso di sottorete. Questi includono i seguenti:
- Configurazione manuale (Manual Configuration)
- Numero di serie del nodo (Node Serial Number)
- Altro token specifico del nodo (Other Node-Specific Token)
L'identificatore di interfaccia univoco per prefisso di sottorete dovrebbe essere generato in modo tale da non cambiare dopo un riavvio di un nodo o se le interfacce vengono aggiunte o rimosse dal nodo.
La selezione dell'algoritmo appropriato dipende dal collegamento e dall'implementazione. I dettagli sulla formazione degli identificatori di interfaccia sono definiti nella specifica appropriata «IPv6 over <link>». Si raccomanda vivamente di implementare un algoritmo di rilevamento delle collisioni come parte di qualsiasi algoritmo automatico.
Nota: [EUI-64] definisce effettivamente 0xFF e 0xFF come i bit da inserire per creare un identificatore IEEE EUI-64 da un identificatore IEEE MAC-48. I valori 0xFF e 0xFE vengono utilizzati quando si inizia con un identificatore IEEE EUI-48. Il valore errato è stato utilizzato nelle versioni precedenti della specifica a causa di un'incomprensione sulle differenze tra gli identificatori IEEE MAC-48 e EUI-48.
Questo documento continua deliberatamente l'uso di 0xFF e 0xFE perché soddisfa i requisiti per gli identificatori di interfaccia IPv6 (cioè, devono essere unici sul collegamento), gli identificatori IEEE EUI-48 e MAC-48 sono sintatticamente equivalenti e non causa alcun problema in pratica.