Adresse IPv6

{{#ifeq:||Un article de Ziki, l'encyclopédie libre.|Une page de Ziki, l'encyclopédie libre.}}

Modèle:Article général

Une adresse IPv6 est une adresse IP de la version 6 du protocole Internet (IPv6). IPv6 a été principalement développé en réponse à la demande d'adresses qu'IPv4 ne permettait plus de contenter. Une adresse IPv6 contient 128 bits, contre 32 bits pour IPv4. On dispose ainsi de 2128 ≈ 3,4 × 1038 = 340 sextillions d'adresses IPv6, contre 232Modèle:Nombre d'adresses IPv4.

Nombre d'adresses représentables

Le développement rapide d'Internet a conduit à la pénurie du nombre d'adresses IPv4 disponibles.

Une adresse IPv6 est longue de 128 bits, soit 16 octets, contre 32 bits, soit 4 octets, pour IPv4. On dispose ainsi d'environ 3,4Modèle:X10 adresses, soit plus de 340 sextillions, autrement dit plus de 340 milliards de milliards de milliards de milliards (!).

Le calcul est : 2^128 (contre 2^32 pour l'IPv4), soit « 2 exposant 128 ». On a 2 valeurs possibles : 0 ou 1, sur 128 bits.

Plus précisément : Modèle:Nombre IPv6 possibles, contre Modèle:Nombre possibles (environ Modèle:Nombre).

Cela équivaut à un nombre illimité puisque pour saturer le système, il faudrait placer près de Modèle:Unité (milliards de milliards) d'appareils connectés à Internet sur chaque millimètre carré de surface terrestre émergée (Modèle:Unité).

Notation d'une adresse IPv6

La notation décimale pointée employée pour les adresses IPv4 (par exemple 172.31.128.1) est abandonnée au profit d'une écriture hexadécimale, où les 8 groupes de Modèle:Unité (soit 16 bits par groupe) sont séparés par un signe deux-points :

2001:0db8:0000:85a3:0000:0000:ac1f:8001

La notation complète ci-dessus comprend exactement 39 caractères, soit 8 blocs de 4 caractères (32) séparés par des double-points ':' (7).

Il est permis d'omettre de 1 à 3 chiffres zéros non significatifs dans chaque groupe de 4 chiffres hexadécimaux. Ainsi, l'adresse IPv6 ci-dessus est équivalente à :

2001:db8:0:85a3:0:0:ac1f:8001

De plus, une unique suite de un ou plusieurs groupes consécutifs de 16 bits tous nuls peut être omise, en conservant toutefois les signes deux-points de chaque côté de la suite de chiffres omise, c'est-à-dire une paire de deux-points « :: »<ref>{{#invoke:Langue|indicationDeLangue}} Request for comments no 2373, section 2.2</ref>. Ainsi, l'adresse IPv6 ci-dessus peut être abrégée en :

2001:db8:0:85a3::ac1f:8001

En revanche l'écriture suivante n'est pas valide

2001:db8::85a3::ac1f:8001

car elle contient plusieurs substitutions (dont les longueurs binaires respectives sont ici ambiguës) : il ne peut exister qu'une seule occurrence de la séquence :: dans la notation d'une adresse IPv6.

Pour résumer, la séquence :: dans l'adresse IPv6 signifie que l'on doit combler tout ce qu'il manque avec des 0, donc cette séquence ne peut être utilisée qu'une seule fois. Une seule et unique adresse doit pouvoir correspondre à la forme abrégée lors de l'utilisation des :: .

Il peut exister plusieurs façons différentes de représenter une adresse IPv6. La Modèle:RFC définit une représentation canonique.

L'adresse IPv6 non spécifiée peut ainsi être abrégée en ::0.0.0.0 ou tout simplement en ::.

Structure des adresses IPv6

Les adresses unicast et anycast ont la structure suivante :

Structure des adresses unicast globales
champ préfixe sous-réseau interface
bits 48 16 64

Les adresses locales de lien ont le format suivant :

Structure des adresses locales de lien
champ préfixe zéro interface
bits 10 54 64

La partie préfixe contient la valeur binaire 1111111010 et 54 zéros suivent. Ces adresses ne sont pas routables.

Les adresses multicast ont le format suivant :

Format d'une adresse multicast
champ préfixe drap. portée groupe
bits 8 4 4 112

Le préfixe consiste en la valeur binaire 11111111. Trois des quatre bits du champ drapeau sont définis par la Modèle:RFC. Le bit le plus significatif est réservé à un usage ultérieur. Les quatre bits de portée indiquent le domaine de validité de l'adresse.

Les adresses locales uniques ont le format suivant :

Structure des adresses locale unique
champ préfixe L ID globale Subnet Interface
bits 7 1 40 16 64

Ces adresses sont définies par la Modèle:RFC.

  • Le préfixe vaut 1111110.
  • L vaut 1 pour les ID globales assignées localement.
  • ID globale est un nombre pseudo-aléatoire choisi par l'organisation, de sorte qu'il est très improbable que deux organisations aient le même numéro.
  • Subnet est le numéro du sous-réseau.
  • Interface est l'identification de l'hôte dans le sous-réseau.

La portée de l'adresse IPv6

La portée d'une adresse IPv6 (IPv6 address scope) consiste en son domaine de validité et d'unicité.

On distingue :

  • Les adresses unicast :
    • l'adresse loopback ::1/128 a une validité limitée à l'hôte,
    • les adresses locales de lien, uniques sur un lien donné,
    • les autres adresses, y compris les adresses locales uniques, ont une portée globale, c'est-à-dire qu'elles sont uniques dans le monde et peuvent être utilisées pour communiquer avec d'autres adresses globalement uniques, ou des adresses locales de lien sur des liens directement connectés,
  • Les adresses anycast, dont la portée est identique aux adresses unicast
  • Les adresses multicast ff00::/8
    • les 4 bits les moins significatifs du Modèle:2e (ff0Modèle:Souligner::) identifient la portée de l'adresse :
      • si s=1, l'adresse multicast est locale à l'hôte,
      • si s=2, l'adresse est locale au lien,
      • si s=5, l'adresse est locale au site,
      • si s=8, l'adresse est locale à l'organisation,
      • si s=e, l'adresse est globale.

Adresse IPv6 et DNS

Les noms de domaines sont associés à une adresse IPv6 grâce à l'enregistrement AAAA, par exemple :

www.ipv6.ripe.net.		IN	AAAA	2001:67c:2e8:22::c100:68b

Les noms d'hôtes peuvent être associés à une ou plusieurs adresses IPv6 et/ou IPv4.

La résolution inverse est effectuée grâce au PTR dans le domaine ip6.arpa, en inversant les quartets de la forme canonique :

b.8.6.0.0.0.1.c.0.0.0.0.0.0.0.0.2.2.0.0.8.e.2.0.c.7.6.0.1.0.0.2.ip6.arpa IN PTR	www.ipv6.ripe.net.

Les requêtes peuvent être reçues via IPv6 ou IPv4 et la réponse du serveur DNS ne doit pas dépendre du protocole utilisé par le client.

Quand des adresses IPv4 et IPv6 existent et sont utilisables pour contacter un hôtes distant, la Modèle:RFC précise la stratégie à employer pour le choix de l'adresse. IPv6 sera préféré à IPv4 à moins que l'administrateur du système en dispose autrement.

Quand une adresse IPv6 doit être utilisée comme nom d'hôte (par exemple dans une URL), elle doit être encadrée des caractères []. Par exemple, pour l'adresse IPv6 valide ci-dessus, on peut créer les URL suivantes (valides au plan syntaxique) :

http://[2001:db8:a88:85a3::ac1f:8001]/index.html

L'utilisation des crochets est obligatoire pour délimiter le nom d'hôte car elle permet d'éviter ici l'ambiguïté sur la présence ou l'absence de l'indication d'un numéro de port dans l'URL, qui autrement pourrait être interprétée comme désignant un hôte à une autre adresse, comme dans l'URL :

http://[2001:db8:a88:85a3::ac1f]:8001/index.html

Notation des masques de sous-réseau

Un sous-réseau, au sens large, est un ensemble d'adresses IPv6 commençant par une même séquence binaire. Le nombre de bits que comporte cette séquence est notée en décimal derrière une barre oblique (/). Ainsi,

2001:db8:1:1a0::/59

est le sous-réseau correspondant aux adresses comprises entre

2001:db8:1:1a0:0:0:0:0 et
2001:db8:1:1bf:ffff:ffff:ffff:ffff

En binaire :

2/3 Plus petit réseau privé routable Unicast sur Internet (/64) partie sous-réseau privé (64 bits)
2 0 0 1 0 d b 8 0 0 0 1 0 1 a 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 1 1 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
préfixe réseau (/59) partie sous-réseau privé (69 bits)
0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 1 1 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
2 0 0 1 0 d b 8 0 0 0 1 0 1 b f f f f f f f f f f f f f f f f f
2/3 Plus grand réseau Unicast routable alloué (/48) partie sous-réseau privé (80 bits)

Le plus grand préfixe de sous-réseau non annoncé (globalement sur les échanges de routes entre réseaux mais routé uniquement dans un sous-réseau du client privé final) est fixé à 64 bits par la Modèle:RFC, ce qui laisse un choix d'au moins 264, soit 18Modèle:X10 adresses par sous-réseau final.

Catégories d'adresses

Différentes sortes d'adresses IPv6 jouent des rôles particuliers. Ces propriétés sont indiquées par le début de l'adresse, appelé préfixe (Modèle:RFC, Modèle:RFC, Modèle:RFC) :

Type d'adresses IPv6
Préfixe Description
::/8 Adresses réservées
2000::/3 Adresses unicast routables sur Internet
fc00::/7 Adresses locales uniques (utiliser fd00::/8 sur un réseau local)
fe80::/10 Adresses locales lien
ff00::/8 Adresses multicast
Adresses réservées
  • ::/128 : Adresse non spécifiée. Celle-ci n'est jamais assignée à un hôte mais peut être utilisée comme adresse source dans une phase d'acquisition de l'adresse IPv6.
  • ::1/128 : Adresse loopback c'est-à-dire la machine elle-même, équivalent de 127.0.0.1 en IPv4.
  • 64:ff9b::/96 : Adresses réservées pour les traducteurs de protocoles (Modèle:RFC)
  • ::ffff:0:0/96 : Représentation d'adresse IPv4 dans une structure IPv6. Ces adresses permettent d'encoder une adresse IPv4 dans une structure de données prévue pour IPv6. Elles sont utilisées par des programmes mais ne doivent pas se trouver dans le réseau.
  • ::ffff:0:0:0/96 : adresses IPv4 traduites pour SIIT (Modèle:RFC).
Adresses globales unicast
2000::/3

Celles-ci représentent 1/Modèle:8e de l'espace d'adressage total d'IPv6.

Parmi les adresses de 2000::/3, on distingue :

2/3 Modèle:RFC4380 (2001::/32) Adresse d'hôte Teredo (96 bits)
2 0 0 1 0 0 0 0 x x x x x x x x x x x x x x x x x x x x x x x x
0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
2/3 Modèle:RFC5180 (2001:2::/48) Adresse d'hôte de tests de performance (80 bits)
2 0 0 1 0 0 0 2 0 0 0 0 x x x x x x x x x x x x x x x x x x x x
0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
2/3 Modèle:RFC4843 (2001:10::/28) Adresse d'hôte Orchid (100 bits)
2 0 0 1 0 0 1 x x x x x x x x x x x x x x x x x x x x x x x x x
0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 x x x x 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
2/3 Modèle:RFC3849 (2001:db8::/32) Adresse de documentation (96 bits)
2 0 0 1 0 d b 8 x x x x x x x x x x x x x x x x x x x x x x x x
0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 1 1 0 1 1 1 0 0 0 x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
2/3 Modèle:RFC3056 (2002::/16) Adresse IPv4 de routeur 6to4 (32 bits) Adresse d'hôte allouée par le routeur (80 bits)
2 0 0 2 nnn . nnn . nnn . nnn x x x x x x x x x x x x x x x x x x x x
0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
Adresses locales uniques
fc00::/7

Ces adresses sont utilisées pour les communications locales et ne sont routables que sur les sites qui le souhaitent. C'est l'équivalent des plages d'adresses privées de Modèle:RFC.

Le Modèle:8e doit être actuellement fixé à 1 (mettre ce bit à 0 n'est pas encore défini), ce qui donne le préfixe fd00::/8 pour les adresses assignées localement. L'adresse comprend un préfixe pseudo-aléatoire de 40 bits pour éviter les conflits lors de l'interconnexion de réseaux privés.

Adresses locales de lien
fe80::/10

Les adresses de lien local (utilisables uniquement au sein d'un réseau local de niveau 2, non routables) appartiennent à fe80::/64. Ces adresses ne sont uniques que sur un lien, un hôte peut donc avoir plusieurs interfaces avec la même adresse locale de lien. On lève les ambiguïtés en précisant l'interface.

Adresses multicast
ff00::/8

En IPv6, il n'y a pas d'adresse broadcast, elle est remplacée par des adresses multicast propres à l'application. Il existe une adresse ff02::1 (all nodes) limitée au lien local et dont l'utilisation par les applications est découragée.

NDP utilise l'adresse multicast ff02::1:ff00:0/104 pour découvrir l'adresse MAC d'un hôte dont l'adresse IPv6 est connue (Modèle:Lang). Les 24 derniers bits de l'adresse sont constitués des 24 derniers bits de l'adresse IPv6. L'utilisation de multicast au lieu d'une adresse broadcast permet d'optimiser la diffusion de ce message.

Sélection des adresses

L'IPv6 étant initialement conçu pour gérer plusieurs adresses simultanément par machine, la Modèle:RFC définit la façon dont l'adresse source d'une machine sera sélectionnée par l'utilisation d'une table de politiques, par défaut elle doit contenir ceci :

Préfixe Précédence Label
::1/128 50 0
::/0 40 1
::ffff:0:0/96 35 4
2002::/16 30 2
2001::/32 5 5
fc00::/7 3 13
::/96 1 3
fec0::/10 1 11
3ffe::/16 1 12

Pour chaque adresse IPv4 ou IPv6 possible, une recherche dans cette table de la meilleure correspondance (c'est-à-dire avec le préfixe correspondant le plus long) fournit une valeur « précédence » et une valeur « label ».

Le fonctionnement est le suivant : si plusieurs adresses de destination sont possibles (après une requête DNS par exemple), elles seront triées dans l'ordre de précédence en commençant par la précédence la plus élevée. La source est ensuite choisie en prenant en priorité celle dont le label est égal à celui de la destination.

Ceci a notamment pour effet :

  • de préférer les communications avec IPv6 (::/0) plutôt qu'IPv4 (représentée par ::ffff:0:0/96) quand les deux types d'adresses sont disponibles,
  • de préférer les adresses IPv6 natives et IPv4 aux adresses 6to4 (2002::/16) ou Teredo (2001::/32),
  • de préférer une source 6to4 si la destination est une adresse 6to4.

Il est possible de la modifier selon ses besoins par exemple on peut rendre le trafic IPv4 prioritaire en modifiant la précédence associée au préfixe ::ffff:0:0/96.

Certaines versions de Windows peuvent cependant utiliser l'ancienne Modèle:RFC par défaut qui ne gère pas correctement les adresses locales uniques. De plus chaque règle ne peut être définie que sur un multiple de 8 bits ce qui peut obliger à en décomposer certaines.

Adresses obsolètes

Adresses IPv6 obsolètes
Préfixe Description
3ffe::/16
5f00::/8
Adresses utilisées par le réseau expérimental 6bone
fec0::/10 Adresse locale de site
::a.b.c.d/96 Adresse compatible IPv4 (a.b.c.d est une adresse IPv4)
Adresses locales de site
fec0::/10

Ces adresses sont spécifiées dans la Modèle:RFC de décembre 1995 mais leur usage est considéré comme obsolète depuis 2004 avec la Modèle:RFC. Elles sont remplacées par les adresses locales uniques avec la Modèle:RFC.

Adresses compatibles IPv4

Ces adresses étaient réservées pour être utilisées dans un mécanisme de transition. Elles sont rendues obsolètes par la Modèle:RFC.

Assignation des adresses IPv6 dans un réseau local

La taille du sous-réseau étant fixée à 64 bits, les hôtes disposent des 64 bits restants pour la numérotation à l'intérieur du sous-réseau.

Plusieurs techniques existent pour assigner les adresses dans le sous-réseau :

Configuration manuelle
l'administrateur fixe l'adresse. Les adresses constituées entièrement de 0 ou de 1 ne jouent pas de rôle particulier en IPv6.
Configuration automatique

Il existe au moins une adresse locale de lien (fe80::/64) pour chaque interface IPv6. Le Modèle:RFC permet de construire le ou les adresses globales unicast avec chacun des préfixes /64 annoncés par le routeur.

En général, les 64 bits d'interfaces sont construits à partir de l'adresse MAC dans un format nommé EUI-64 modifié. Ce système a soulevé des inquiétudes vis-à-vis de la protection de la vie privée, dans la mesure où les adresses MAC sont alors visibles dans l'adresse IPv6 et peuvent permettre d'identifier l'équipement.

Durée de vie d'une adresse

Les adresses IPv6 associées à une interface ont une durée de vie déterminée. La durée de vie est en général infinie, mais on peut configurer une durée de vie préférée et une durée de vie de validité. Ces durées de vie sont configurées dans les routeurs qui fournissent les préfixes pour la configuration automatique. En combinaison avec un changement DNS correspondant, ces durées de vie permettent une transition progressive vers une nouvelle adresse IPv6 (appartenant à un nouveau fournisseur de service par exemple) sans interruption de service.

Quand la durée d'utilisation d'une adresse dépasse la durée préférée, elle n'est plus utilisée pour les nouvelles connexions. Quand sa période de validité est atteinte, elle est supprimée de la configuration de l'interface.

Assignation des blocs d'adresses IP

Les adresses IP Unicast sont distribuées par l'IANA aux registres Internet régionaux (RIR). Les RIR gèrent les ressources d'adressage IPv4 et IPv6 dans leur région.

L'IANA alloue des blocs de taille /23 à /12 dans l'espace unicast global (2000::/3) aux cinq RIR. Ces derniers les allouent à leur tour aux LIR (fournisseur d'accès à internet) sous forme de blocs de taille minimale de /48.

Les RIR peuvent choisir de subdiviser leur bloc /23 en 512 blocs /32, typiquement un par LIR. Le LIR peut à son tour assigner 65536 blocs /48 à ses clients, qui disposent alors chacun de 65536 réseaux /64. Ces sous-réseaux seront peu peuplés, mais l'étendue de l'espace d'adressage d'IPv6 est telle que ce ne sera pas un problème.

Structure des préfixes distribués
IANA RIR LIR Client Sous-réseau Interface
3 20 9 16 16 64

Vu la disponibilité des adresses, l'utilisation des NAT ne sera plus nécessaire.

Il est possible d'interroger les bases de données des RIR pour savoir à qui est allouée une adresse IP grâce à la commande whois ou bien via les sites web des RIR.

Afin d'encourager l'agrégation des adresses, le plan d'adressage IPv6 ne prévoyait initialement que des blocs Provider Aggregatable (PA), c'est-à-dire liés au fournisseur d'accès à Internet, le multi-homing étant réalisé en assignant plusieurs adresses PA aux hôtes. Ceci implique une renumérotation lorsqu'on change de FAI, le protocole IPv6 facilitant celle-ci grâce à la durée de vie et à l'autoconfiguration des adresses.

En 2009, la politique d'attribution des adresses IPv6 du RIPE NCC a été modifiée pour accepter d'assigner des blocs Provider Independent (PI) aux entreprises qui ambitionnent de se connecter à plusieurs fournisseurs<ref>Provider Independent (PI) IPv6 Assignments for End User Organisations</ref>, la taille minimale du bloc assigné étant /48. Le document RIPE 512<ref>IPv6 Address Allocation and Assignment Policy</ref> décrit la politique suivie en la matière.

Liens externes

  • RFC2460 en français, - Internet Protocol, Version 6 (IPv6) Specification
    • {{#invoke:Langue|indicationDeLangue}} Modèle:RFC (version originale)
  • {{#invoke:Langue|indicationDeLangue}} Modèle:RFC - Format for Literal IPv6 Addresses in URLs
  • {{#invoke:Langue|indicationDeLangue}} Modèle:RFC - Transition Mechanisms for IPv6 Hosts and Routers
  • RFC4291 en français, Architecture d'adressage d' IP version 6
    • {{#invoke:Langue|indicationDeLangue}} Modèle:RFC - IP Version 6 Addressing Architecture, IPv6

Notes et références

Modèle:Références

Modèle:Portail

zh:IP地址#IPv6位址