Appendix A: Creating Modified EUI-64 Format Interface Identifiers (Création d'identificateurs d'interface au format EUI-64 modifié)
Selon les caractéristiques d'un lien ou d'un nœud spécifique, il existe plusieurs approches pour créer des identificateurs d'interface au format Modified EUI-64. Cette annexe décrit certaines de ces approches.
For Links or Nodes with IEEE EUI-64 Identifiers (Liens ou nœuds avec identificateurs IEEE EUI-64)
Le seul changement nécessaire pour transformer un identificateur IEEE EUI-64 en un identificateur d'interface est d'inverser le bit « u » (universal/local).
Exemple d'identificateur IEEE EUI-64 globalement unique :
|0 1|1 3|3 4|4 6|
|0 5|6 1|2 7|8 3|
+----------------+----------------+----------------+----------------+
|cccccc0gcccccccc|ccccccccmmmmmmmm|mmmmmmmmmmmmmmmm|mmmmmmmmmmmmmmmm|
+----------------+----------------+----------------+----------------+
où :
- c : bits du company_id
- 0 : valeur du bit universal/local indiquant une portée universelle
- g : bit individual/group
- m : bits de l'identificateur d'extension sélectionné par le fabricant
Forme de l'identificateur d'interface IPv6 :
|0 1|1 3|3 4|4 6|
|0 5|6 1|2 7|8 3|
+----------------+----------------+----------------+----------------+
|cccccc1gcccccccc|ccccccccmmmmmmmm|mmmmmmmmmmmmmmmm|mmmmmmmmmmmmmmmm|
+----------------+----------------+----------------+----------------+
Le seul changement consiste à inverser la valeur du bit universal/local (de 0 à 1).
For Links or Nodes with IEEE 802 48-bit MACs (Liens ou nœuds avec MAC IEEE 802 48 bits)
[EUI64] définit une méthode pour créer un identificateur IEEE EUI-64 à partir d'un identificateur MAC IEEE 48 bits. Il s'agit d'insérer deux octets, de valeurs hexadécimales 0xFF et 0xFE, au milieu du MAC 48 bits (entre le company_id et l'id fourni par le fabricant) (voir note en fin d'annexe).
Exemple de MAC IEEE 48 bits à portée globale :
|0 1|1 3|3 4|
|0 5|6 1|2 7|
+----------------+----------------+----------------+
|cccccc0gcccccccc|ccccccccmmmmmmmm|mmmmmmmmmmmmmmmm|
+----------------+----------------+----------------+
où :
- c : bits du company_id assigné
- 0 : valeur du bit universal/local indiquant une portée globale
- g : bit individual/group
- m : bits de l'identificateur d'extension sélectionné par le fabricant
Forme de l'identificateur d'interface :
|0 1|1 3|3 4|4 6|
|0 5|6 1|2 7|8 3|
+----------------+----------------+----------------+----------------+
|cccccc1gcccccccc|cccccccc11111111|11111110mmmmmmmm|mmmmmmmmmmmmmmmm|
+----------------+----------------+----------------+----------------+
Lorsque des adresses MAC IEEE 802 48 bits sont disponibles (sur une interface ou un nœud), une implémentation peut les utiliser pour créer des identificateurs d'interface en raison de leur disponibilité et de leurs propriétés d'unicité.
Transformation Steps (Étapes de transformation)
- Prendre l'adresse MAC 48 bits
- Insérer
0xFF-FEau milieu (c'est-à-dire entre le 3e et le 4e octet) - Inverser le 7e bit (bit u) du premier octet
Exemple :
MAC address: 00:1A:2B:3C:4D:5E
Insert 0xFF-FE: 00:1A:2B:FF:FE:3C:4D:5E
Invert u bit: 02:1A:2B:FF:FE:3C:4D:5E
Interface ID: 021A:2BFF:FE3C:4D5E
For Links with Other Types of Identifiers (Liens avec d'autres types d'identificateurs)
Il existe de nombreux types de liens dont les identificateurs de liaison ne sont pas des IEEE EUI-64 ou des MAC IEEE 802 48 bits. On peut citer LocalTalk et Arcnet. La méthode pour créer un identificateur au format Modified EUI-64 consiste à prendre l'identificateur de lien (par exemple, l'identificateur de nœud LocalTalk 8 bits) et à le compléter par des zéros à gauche.
Exemple :
Un identificateur de nœud LocalTalk 8 bits de valeur hexadécimale 0x4F donne l'identificateur d'interface suivant :
|0 1|1 3|3 4|4 6|
|0 5|6 1|2 7|8 3|
+----------------+----------------+----------------+----------------+
|0000000000000000|0000000000000000|0000000000000000|0000000001001111|
+----------------+----------------+----------------+----------------+
Représenté comme : 0000:0000:0000:004F
Notez que cela donne un bit universal/local fixé à « 0 » pour indiquer une portée locale.
For Links with No Identifiers (Liens sans identificateur)
Il existe un certain nombre de liens ne disposant d'aucun type d'identificateur intégré. Les plus courants sont les liens série et les tunnels configurés. Les identificateurs d'interface doivent être choisis de manière unique au sein d'un préfixe de sous-réseau.
Method 1: Use Universal Interface Identifier (Méthode 1 : utiliser un identificateur d'interface universel)
Lorsqu'aucun identificateur intégré n'est disponible sur un lien, l'approche recommandée consiste à utiliser un identificateur d'interface universel provenant d'une autre interface ou d'un identificateur assigné au nœud lui-même. Avec cette approche, aucune autre interface reliant le même nœud au même préfixe de sous-réseau ne peut utiliser le même identificateur.
Method 2: Create Local Scope Interface Identifier (Méthode 2 : créer un identificateur d'interface à portée locale)
Si aucun identificateur d'interface universel n'est disponible pour le lien, l'implémentation doit créer un identificateur d'interface à portée locale. La seule exigence est qu'il soit unique au sein du préfixe de sous-réseau. Plusieurs approches sont possibles pour sélectionner un identificateur unique au sein du préfixe de sous-réseau, notamment :
- Manual Configuration (configuration manuelle)
- Node Serial Number (numéro de série du nœud)
- Other Node-Specific Token (autre jeton spécifique au nœud)
Un identificateur d'interface unique au sein du préfixe de sous-réseau doit être généré de façon à ne pas changer après un redémarrage du nœud ou lorsque des interfaces sont ajoutées ou supprimées du nœud.
Le choix de l'algorithme approprié dépend du lien et de l'implémentation. Les détails de formation des identificateurs d'interface sont définis dans la spécification appropriée « IPv6 over <link> ». Il est fortement recommandé d'inclure un algorithme de détection de collision dans tout algorithme automatique.
Important Notes (Notes importantes)
Concernant l'utilisation de 0xFF-FE :
[EUI-64] a en fait défini 0xFF et 0xFF comme bits à insérer pour créer un identificateur IEEE EUI-64 à partir d'un identificateur IEEE MAC-48. Les valeurs 0xFF et 0xFE ont été utilisées en partant d'un identificateur IEEE EUI-48. La valeur 0xFF et 0xFE a été utilisée dans les versions antérieures de la spécification en raison d'une confusion sur la différence entre les identificateurs IEEE MAC-48 et EUI-48.
Ce document continue intentionnellement à utiliser 0xFF et 0xFE car :
- Cela répond aux exigences des identificateurs d'interface IPv6 (c'est-à-dire qu'ils doivent être uniques sur le lien)
- Les identificateurs IEEE EUI-48 et MAC-48 sont syntaxiquement équivalents
- Cela ne pose aucun problème dans la pratique
Interface Identifier Generation Summary (Résumé de génération des identificateurs d'interface)
| Link Type | Method | U/L Bit |
|---|---|---|
| IEEE EUI-64 | Invert u bit | 1 (universal) |
| IEEE 802 48-bit MAC | Insert FF-FE, invert u bit | 1 (universal) |
| Other identifiers (like LocalTalk) | Zero-fill left | 0 (local) |
| No identifiers | Manual/automatic generation | Depends on method |
Key Principle (principe clé) : les identificateurs d'interface doivent être uniques au sein de leur préfixe de sous-réseau.