2. IPv6 Addressing (Adressage IPv6)
2. IPv6 Addressing (Adressage IPv6)
Les adresses IPv6 sont des identifiants de 128 bits pour les interfaces et les ensembles d'interfaces (où «interface» est définie dans la section 2 de [IPV6]). Il existe trois types d'adresses:
Unicast (Monodiffusion):
Un identifiant pour une seule interface. Un paquet envoyé à une adresse unicast est livré à l'interface identifiée par cette adresse.
Anycast (Diffusion sélective):
Un identifiant pour un ensemble d'interfaces (appartenant généralement à différents nœuds). Un paquet envoyé à une adresse anycast est livré à l'une des interfaces identifiées par cette adresse (la «plus proche», selon la mesure de distance des protocoles de routage).
Multicast (Multidiffusion):
Un identifiant pour un ensemble d'interfaces (appartenant généralement à différents nœuds). Un paquet envoyé à une adresse multicast est livré à toutes les interfaces identifiées par cette adresse.
Il n'y a pas d'adresses de diffusion (Broadcast Addresses) dans IPv6, leur fonction étant remplacée par des adresses multicast.
Dans ce document, les champs des adresses reçoivent un nom spécifique, par exemple «subnet». Lorsque ce nom est utilisé avec le terme «ID» pour identifiant après le nom (par exemple, «subnet ID»), il fait référence au contenu du champ nommé. Lorsqu'il est utilisé avec le terme «prefix» (préfixe) (par exemple, «subnet prefix»), il fait référence à toute l'adresse depuis la gauche jusqu'à et y compris ce champ.
Dans IPv6, tous zéros et tous uns sont des valeurs légales pour n'importe quel champ, sauf indication contraire. Plus précisément, les préfixes peuvent contenir ou se terminer par des champs à valeur zéro.
2.1. Addressing Model (Modèle d'adressage)
Les adresses IPv6 de tous types sont assignées aux interfaces, et non aux nœuds. Une adresse unicast IPv6 fait référence à une seule interface. Comme chaque interface appartient à un seul nœud, n'importe laquelle des adresses unicast des interfaces de ce nœud peut être utilisée comme identifiant pour le nœud.
Toutes les interfaces doivent avoir au moins une adresse unicast link-local (Link-Local Unicast Address) (voir la section 2.8 pour les adresses requises supplémentaires). Une seule interface peut également avoir plusieurs adresses IPv6 de n'importe quel type (unicast, anycast et multicast) ou portée. Les adresses unicast avec une portée supérieure à la portée de lien (Link-Scope) ne sont pas nécessaires pour les interfaces qui ne sont pas utilisées comme origine ou destination de paquets IPv6 vers ou depuis des non-voisins. Cela est parfois pratique pour les interfaces point à point. Il existe une exception à ce modèle d'adressage:
Une adresse unicast ou un ensemble d'adresses unicast peut être assigné à plusieurs interfaces physiques si l'implémentation traite les interfaces physiques multiples comme une seule interface lors de sa présentation à la couche Internet. Ceci est utile pour le partage de charge sur plusieurs interfaces physiques.
Actuellement, IPv6 continue le modèle IPv4 dans lequel un préfixe de sous-réseau est associé à un lien. Plusieurs préfixes de sous-réseau peuvent être assignés au même lien.
2.2. Text Representation of Addresses (Représentation textuelle des adresses)
Il existe trois formes conventionnelles pour représenter les adresses IPv6 sous forme de chaînes de texte:
Forme 1: Forme préférée
La forme préférée est x:x:x:x:x:x:x:x, où les 'x' sont un à quatre chiffres hexadécimaux des huit parties de 16 bits de l'adresse.
Exemples:
ABCD:EF01:2345:6789:ABCD:EF01:2345:6789
2001:DB8:0:0:8:800:200C:417A
Notez qu'il n'est pas nécessaire d'écrire les zéros de tête dans un champ individuel, mais il doit y avoir au moins un chiffre dans chaque champ (sauf pour le cas décrit en 2.).
Forme 2: Compression des zéros
En raison de certaines méthodes d'allocation de certains styles d'adresses IPv6, il sera courant que les adresses contiennent de longues chaînes de bits zéro. Pour faciliter l'écriture d'adresses contenant des bits zéro, une syntaxe spéciale peut être utilisée pour compresser les zéros. L'utilisation de :: indique un ou plusieurs groupes de 16 bits de zéros. Le :: ne peut apparaître qu'une seule fois dans une adresse. Le :: peut également être utilisé pour compresser les zéros de tête ou de queue dans une adresse.
Exemples:
Les adresses suivantes:
2001:DB8:0:0:8:800:200C:417A adresse unicast
FF01:0:0:0:0:0:0:101 adresse multicast
0:0:0:0:0:0:0:1 adresse de bouclage
0:0:0:0:0:0:0:0 adresse non spécifiée
peuvent être représentées comme:
2001:DB8::8:800:200C:417A adresse unicast
FF01::101 adresse multicast
::1 adresse de bouclage
:: adresse non spécifiée
Forme 3: Représentation mixte IPv4-IPv6
Lorsqu'on traite un environnement mixte de nœuds IPv4 et IPv6, il est parfois plus pratique d'utiliser la forme alternative x:x:x:x:x:x:d.d.d.d, où les 'x' sont les valeurs hexadécimales des six parties de 16 bits de poids fort de l'adresse, et les 'd' sont les valeurs décimales des quatre parties de 8 bits de poids faible de l'adresse (représentation IPv4 standard).
Exemples:
0:0:0:0:0:0:13.1.68.3
0:0:0:0:0:FFFF:129.144.52.38
ou sous forme compressée:
::13.1.68.3
::FFFF:129.144.52.38
2.3. Text Representation of Address Prefixes (Représentation textuelle des préfixes d'adresse)
La représentation textuelle des préfixes d'adresse IPv6 est similaire à la façon dont les préfixes d'adresse IPv4 sont écrits dans le routage inter-domaine sans classe (CIDR, Classless Inter-Domain Routing) [CIDR]. Un préfixe d'adresse IPv6 est représenté par la notation:
ipv6-address/prefix-length
où:
- ipv6-address: est une adresse IPv6 dans l'une quelconque des notations énumérées dans la section 2.2.
- prefix-length: est une valeur décimale spécifiant combien de bits contigus les plus à gauche de l'adresse constituent le préfixe.
Exemples:
Les suivantes sont des représentations légales du préfixe de 60 bits 20010DB80000CD3 (hexadécimal):
2001:0DB8:0000:CD30:0000:0000:0000:0000/60
2001:0DB8::CD30:0:0:0:0/60
2001:0DB8:0:CD30::/60
Les suivantes ne sont pas des représentations légales du préfixe ci-dessus:
2001:0DB8:0:CD3/60 peut supprimer les zéros de tête, mais pas les zéros
de queue, dans n'importe quel bloc de 16 bits de l'adresse
2001:0DB8::CD30/60 l'adresse à gauche de "/" se développe en
2001:0DB8:0000:0000:0000:0000:0000:CD30
2001:0DB8::CD3/60 l'adresse à gauche de "/" se développe en
2001:0DB8:0000:0000:0000:0000:0000:0CD3
Lors de l'écriture simultanée d'une adresse de nœud et d'un préfixe de cette adresse de nœud (par exemple, le préfixe de sous-réseau du nœud), les deux peuvent être combinés comme suit:
adresse du nœud: 2001:0DB8:0:CD30:123:4567:89AB:CDEF
son numéro de sous-réseau: 2001:0DB8:0:CD30::/60
peut être abrégé en: 2001:0DB8:0:CD30:123:4567:89AB:CDEF/60
2.4. Address Type Identification (Identification du type d'adresse)
Le type d'une adresse IPv6 est identifié par les bits de poids fort de l'adresse, comme suit:
| Type d'adresse | Préfixe binaire | Notation IPv6 | Section |
|---|---|---|---|
| Unspecified | 00...0 (128 bits) | ::/128 | 2.5.2 |
| Loopback | 00...1 (128 bits) | ::1/128 | 2.5.3 |
| Multicast | 11111111 | FF00::/8 | 2.7 |
| Link-Local unicast | 1111111010 | FE80::/10 | 2.5.6 |
| Global Unicast | (tout le reste) | - | 2.5.4 |
Les adresses anycast sont tirées de l'espace d'adresses unicast (de n'importe quelle portée) et ne sont pas syntaxiquement distinguables des adresses unicast.
Le format général des adresses Global Unicast est décrit dans la section 2.5.4. Certains sous-types à usage spécial d'adresses Global Unicast qui contiennent des adresses IPv4 embarquées (à des fins d'interopérabilité IPv4-IPv6) sont décrits dans la section 2.5.5.
Les spécifications futures peuvent redéfinir une ou plusieurs sous-plages de l'espace Global Unicast à d'autres fins, mais à moins que et jusqu'à ce que cela se produise, les implémentations doivent traiter toutes les adresses qui ne commencent par aucun des préfixes listés ci-dessus comme des adresses Global Unicast.
2.5. Unicast Addresses (Adresses unicast)
Les adresses unicast IPv6 peuvent être agrégées avec des préfixes de longueur de bit arbitraire, similaires aux adresses IPv4 sous routage inter-domaine sans classe.
Il existe plusieurs types d'adresses unicast dans IPv6, en particulier Global Unicast, site-local unicast (obsolète, voir section 2.5.7) et Link-Local unicast. Il existe également certains sous-types à usage spécial d'adresses Global Unicast, tels que les adresses IPv6 avec des adresses IPv4 embarquées. D'autres types d'adresses unicast peuvent être définis dans le futur.
Les nœuds IPv6 peuvent avoir une connaissance considérable ou très peu de la structure interne de l'adresse IPv6, selon le rôle que joue le nœud (par exemple, hôte par rapport à routeur). Au minimum, un nœud peut considérer que les adresses unicast (y compris les siennes) n'ont pas de structure interne:
| 128 bits |
+-----------------------------------------------------------------+
| adresse du nœud |
+-----------------------------------------------------------------+
Un hôte légèrement sophistiqué (mais toujours assez simple) peut en outre être conscient du ou des préfixes de sous-réseau pour le ou les liens auxquels il est attaché, où différentes adresses peuvent avoir des valeurs différentes pour n:
| n bits | 128-n bits |
+-------------------------------+---------------------------------+
| préfixe de sous-réseau | ID d'interface |
+-------------------------------+---------------------------------+
Bien qu'un routeur très simple puisse n'avoir aucune connaissance de la structure interne des adresses unicast IPv6, les routeurs auront plus généralement connaissance d'une ou plusieurs des limites hiérarchiques pour le fonctionnement des protocoles de routage. Les limites connues différeront d'un routeur à l'autre, selon les positions que le routeur occupe dans la hiérarchie de routage.
À l'exception de la connaissance de la limite de sous-réseau discutée dans les paragraphes précédents, les nœuds ne doivent faire aucune hypothèse sur la structure d'une adresse IPv6.
2.5.1. Interface Identifiers (Identificateurs d'interface)
Les identificateurs d'interface dans les adresses unicast IPv6 sont utilisés pour identifier les interfaces sur un lien. Ils doivent être uniques dans un préfixe de sous-réseau. Il est recommandé que le même identificateur d'interface ne soit pas assigné à différents nœuds sur un lien. Ils peuvent également être uniques sur une portée plus large. Dans certains cas, l'identificateur d'une interface sera dérivé directement de l'adresse de couche liaison de cette interface. Le même identificateur d'interface peut être utilisé sur plusieurs interfaces d'un seul nœud, tant qu'elles sont attachées à différents sous-réseaux.
Notez que l'unicité des identificateurs d'interface est indépendante de l'unicité des adresses IPv6. Par exemple, une adresse Global Unicast peut être créée avec un identificateur d'interface de portée locale et une adresse Link-Local peut être créée avec un identificateur d'interface de portée universelle.
Pour toutes les adresses unicast, sauf celles qui commencent par la valeur binaire 000, les ID d'interface doivent avoir une longueur de 64 bits et être construits au format EUI-64 modifié (Modified EUI-64 Format).
Les identificateurs d'interface basés sur le format EUI-64 modifié peuvent avoir une portée universelle lorsqu'ils sont dérivés d'un jeton universel (par exemple, identificateurs IEEE 802 MAC 48 bits ou IEEE EUI-64 [EUI64]) ou peuvent avoir une portée locale où un jeton global n'est pas disponible (par exemple, liaisons série, extrémités de tunnel) ou où les jetons globaux sont indésirables (par exemple, jetons temporaires pour la confidentialité [PRIV]).
Les identificateurs d'interface au format EUI-64 modifié sont formés en inversant le bit «u» (bit universal/local dans la terminologie IEEE EUI-64) lors de la formation de l'identificateur d'interface à partir d'identificateurs IEEE EUI-64. Dans le format EUI-64 modifié résultant, le bit «u» est mis à un (1) pour indiquer une portée universelle, et il est mis à zéro (0) pour indiquer une portée locale. Les trois premiers octets en binaire d'un identificateur IEEE EUI-64 sont les suivants:
0 0 0 1 1 2
|0 7 8 5 6 3|
+----+----+----+----+----+----+
|cccc|ccug|cccc|cccc|cccc|cccc|
+----+----+----+----+----+----+
écrit dans l'ordre de bits standard Internet, où «u» est le bit universal/local, «g» est le bit individual/group, et «c» sont les bits du company_id. L'annexe A, «Creating Modified EUI-64 Format Interface Identifiers», fournit des exemples sur la création d'identificateurs d'interface basés sur le format EUI-64 modifié.
La motivation pour inverser le bit «u» lors de la formation d'un identificateur d'interface est de faciliter la configuration manuelle par les administrateurs système d'identificateurs non-globaux lorsque les jetons matériels ne sont pas disponibles. On s'attend à ce que ce soit le cas pour les liaisons série et les extrémités de tunnel, par exemple. L'alternative aurait été que ceux-ci soient de la forme 0200:0:0:1, 0200:0:0:2, etc., au lieu de la forme beaucoup plus simple 0:0:0:1, 0:0:0:2, etc.
Les nœuds IPv6 ne sont pas tenus de valider que les identificateurs d'interface créés avec des jetons EUI-64 modifiés avec le bit «u» mis à universel sont uniques.
L'utilisation du bit universal/local dans l'identificateur au format EUI-64 modifié est de permettre le développement de technologies futures qui peuvent tirer parti d'identificateurs d'interface de portée universelle.
Les détails de la formation des identificateurs d'interface sont définis dans la spécification appropriée «IPv6 over <link>», telle que «IPv6 over Ethernet» [ETHER] et «IPv6 over FDDI» [FDDI].
2.5.2. The Unspecified Address (L'adresse non spécifiée)
L'adresse 0:0:0:0:0:0:0:0 est appelée l'adresse non spécifiée. Elle ne doit jamais être assignée à un nœud. Elle indique l'absence d'une adresse. Un exemple de son utilisation est dans le champ Adresse Source de tout paquet IPv6 envoyé par un hôte en initialisation avant qu'il n'ait appris sa propre adresse.
L'adresse non spécifiée ne doit pas être utilisée comme adresse de destination des paquets IPv6 ou dans les en-têtes de routage IPv6. Un paquet IPv6 avec une adresse source non spécifiée ne doit jamais être transféré par un routeur IPv6.
2.5.3. The Loopback Address (L'adresse de bouclage)
L'adresse unicast 0:0:0:0:0:0:0:1 est appelée l'adresse de bouclage. Elle peut être utilisée par un nœud pour s'envoyer un paquet IPv6 à lui-même. Elle ne doit pas être assignée à une interface physique. Elle est traitée comme ayant une portée Link-Local, et peut être considérée comme l'adresse unicast Link-Local d'une interface virtuelle (généralement appelée «interface de bouclage») vers un lien imaginaire qui ne va nulle part.
L'adresse de bouclage ne doit pas être utilisée comme adresse source dans des paquets IPv6 qui sont envoyés à l'extérieur d'un seul nœud. Un paquet IPv6 avec une adresse de destination de bouclage ne doit jamais être envoyé à l'extérieur d'un seul nœud et ne doit jamais être transféré par un routeur IPv6. Un paquet reçu sur une interface avec une adresse de destination de bouclage doit être abandonné.
2.5.4. Global Unicast Addresses (Adresses unicast globales)
Le format général des adresses unicast globales IPv6 est le suivant:
| n bits | m bits | 128-n-m bits |
+------------------------+-----------+----------------------------+
| préfixe de routage | ID de | ID d'interface |
| global | sous-réseau| |
+------------------------+-----------+----------------------------+
où le préfixe de routage global est une valeur (généralement structurée hiérarchiquement) assignée à un site (un cluster de sous-réseaux/liens), l'ID de sous-réseau est un identificateur d'un lien dans le site, et l'ID d'interface est tel que défini dans la section 2.5.1.
Toutes les adresses Global Unicast autres que celles qui commencent par la valeur binaire 000 ont un champ ID d'interface de 64 bits (c'est-à-dire, n + m = 64), formaté comme décrit dans la section 2.5.1.
La structure et l'allocation du préfixe de routage global sont hors de la portée de ce document.
2.5.5. IPv6 Addresses with Embedded IPv4 Addresses (Adresses IPv6 avec adresses IPv4 embarquées)
Les mécanismes de transition IPv6 incluent certaines techniques qui portent une adresse IPv4 dans les 32 bits de poids faible de l'adresse. Il existe deux types de ces adresses: l'adresse IPv6 compatible IPv4 et l'adresse IPv6 mappée IPv4.
2.5.5.1. IPv4-Compatible IPv6 Address (Adresse IPv6 compatible IPv4)
Note: Le type d'adresse IPv6 compatible IPv4 est obsolète.
Le format de l'adresse IPv6 compatible IPv4 est le suivant:
| 80 bits | 16 bits | 32 bits |
+--------------------+------+---------------+
| 0000......0000 | 0000 | adresse IPv4 |
+--------------------+------+---------------+
Notation: ::d.d.d.d (où d.d.d.d est la représentation décimale de l'adresse IPv4)
2.5.5.2. IPv4-Mapped IPv6 Address (Adresse IPv6 mappée IPv4)
Le format de l'adresse IPv6 mappée IPv4 est le suivant:
| 80 bits | 16 bits | 32 bits |
+--------------------+------+---------------+
| 0000......0000 | FFFF | adresse IPv4 |
+--------------------+------+---------------+
Notation: ::FFFF:d.d.d.d (où d.d.d.d est la représentation décimale de l'adresse IPv4)
Ces adresses sont utilisées pour représenter les adresses de nœuds uniquement IPv4 en tant qu'adresses IPv6. Elles sont utilisées uniquement à l'intérieur de nœuds IPv6, pour représenter l'adresse de nœuds IPv4. Les adresses IPv6 mappées IPv4 ne sont jamais utilisées comme adresse source ou destination de paquets IPv6.
2.5.6. Link-Local IPv6 Unicast Addresses (Adresses unicast IPv6 link-local)
Les adresses link-local sont utilisées pour la configuration automatique d'adresses sur un seul lien, la découverte de voisins, ou en l'absence de routeurs.
Le format des adresses link-local est le suivant:
| 10 bits | 54 bits | 64 bits |
+----------+------------+---------------------+
|1111111010| 0 | ID d'interface |
+----------+------------+---------------------+
Préfixe: FE80::/10
Les adresses link-local sont conçues pour être utilisées pour l'adressage sur un seul lien à des fins telles que la configuration automatique d'adresses, la découverte de voisins, ou en l'absence de routeurs. Les routeurs ne doivent pas transférer de paquets avec des adresses source ou destination link-local vers d'autres liens.
2.5.7. Site-Local IPv6 Unicast Addresses (Adresses unicast IPv6 site-local)
Note: Les adresses site-local sont obsolètes et ne doivent pas être utilisées dans de nouvelles implémentations ou déploiements. Voir [RFC3879].
Le format des adresses site-local est le suivant:
| 10 bits | 54 bits | 64 bits |
+----------+------------+---------------------+
|1111111011| ID sous-réseau | ID d'interface |
+----------+------------+---------------------+
Préfixe: FEC0::/10
Les adresses site-local ont été conçues pour être utilisées pour l'adressage à l'intérieur d'un site sans nécessiter un préfixe global. Cependant, en raison de la définition peu claire de la limite de site et d'autres problèmes, les adresses site-local sont obsolètes et ont été remplacées par les adresses locales uniques (Unique Local Addresses, ULA) [RFC4193].