Adresse IPv6
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 232 â 4 milliards 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,4âŻĂâŻ1038 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 : 340 282 366 920 938 463 463 374 607 431 768 211 456 adresses IPv6 possibles, contre 4 294 967 296 IPv4 possibles (environ 4 milliards).
Cela équivaut à un nombre illimité puisque pour saturer le systÚme, il faudrait placer prÚs de 2,30 trillons (milliards de milliards) d'appareils connectés à Internet sur chaque millimÚtre carré de surface terrestre émergée (148 millions de km2).
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 2 octets (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 « :: »[1]. 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 RFC 5952[2] 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 :
champ | préfixe | sous-réseau | interface |
---|---|---|---|
bits | 48 | 16 | 64 |
Les adresses locales de lien ont le format suivant :
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 :
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 RFC 4291[3]. 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 :
champ | préfixe | L | ID globale | Subnet | Interface |
---|---|---|---|---|---|
bits | 7 | 1 | 40 | 16 | 64 |
Ces adresses sont définies par la RFC 4193[4].
- 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 2e octet (ff0s::) 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.
- les 4 bits les moins significatifs du 2e octet (ff0s::) identifient la portée de l'adresse :
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 RFC 6724[5] 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 RFC 4291[3], ce qui laisse un choix d'au moins 264, soit 18âŻĂâŻ1018 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 (RFC 5156[6], RFC 4291[3], RFC 3587[7]) :
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 (RFC 6052[8])
- ::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 (RFC 2765[9]).
- Adresses globales unicast
- 2000::/3
Celles-ci représentent 1/8e de l'espace d'adressage total d'IPv6.
Parmi les adresses de 2000::/3, on distingue :
- Les adresses unicast globales (2001::/16) ouvertes à la réservation depuis 1999. Ces adresses sont allouées par bloc /23 à /12 par l'IANA à un registre Internet régional[10]. Certains blocs sont réservés à un usage particulier[11] :
- Les adresses 6to4 (2002::/16) permettant d'acheminer le trafic IPv6 via un ou plusieurs réseaux IPv4 (RFC 3056[16])
- Toutes les autres adresses routables (plus des trois quarts) sont actuellement réservées pour usage ultérieur.
2/3 | RFC 4380 (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 | RFC 5180 (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 | RFC 4843 (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 | RFC 3849 (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 | RFC 3056 (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 RFC 1918[17].
Le 8e bit 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 (solicited node). 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 RFC 6724[5] 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 RFC 3484[18] 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
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 RFC 1884[19] de décembre 1995 mais leur usage est considéré comme obsolÚte depuis 2004 avec la RFC 3879[20]. Elles sont remplacées par les adresses locales uniques avec la RFC 4193[4].
- 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 RFC 4291[3].
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
- RFC 7217[21] : autoconfiguration sans état basée sur une clé secrÚte et sur le préfixe réseau, ne dévoile pas l'adresse MAC et est stable pour chaque préfixe réseau.
- RFC 4862[22] : autoconfiguration sans état basée sur l'adresse MAC qui utilise le Neighbor Discovery Protocol (NDP), déconseillé par l'IETF depuis 2017.
- RFC 4941[23] : tirage pseudo aléatoire (actif par défaut sur les versions client des systÚmes Microsoft Windows)
- RFC 3315[24] : DHCPv6
Il existe au moins une adresse locale de lien (fe80::/64) pour chaque interface IPv6. Le RFC 4861[25] 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.
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[26], la taille minimale du bloc assigné étant /48. Le document RIPE 512[27] décrit la politique suivie en la matiÚre.
Liens externes
- RFC2460 en français, - Internet Protocol, Version 6 (IPv6) Specification
- (en) RFC 2460[28] (version originale)
- (en) RFC 2732[29] - Format for Literal IPv6 Addresses in URLs
- (en) RFC 2893[30] - Transition Mechanisms for IPv6 Hosts and Routers
- RFC4291 en français, Architecture d'adressage d' IP version 6
- (en) RFC 4291[3] - IP Version 6 Addressing Architecture, IPv6
Notes et références
- (en) Request for comments no 2373, section 2.2
- (en) Request for comments no 5952.
- (en) Request for comments no 4291.
- (en) Request for comments no 4193.
- (en) Request for comments no 6724.
- (en) Request for comments no 5156.
- (en) Request for comments no 3587.
- (en) Request for comments no 6052.
- (en) Request for comments no 2765.
- IPv6 Global Unicast Address Assignments
- IANA IPv6 Special Purpose Address Registry
- (en) Request for comments no 4380.
- (en) Request for comments no 5180.
- (en) Request for comments no 4843.
- (en) Request for comments no 3849.
- (en) Request for comments no 3056.
- (en) Request for comments no 1918.
- (en) Request for comments no 3484.
- (en) Request for comments no 1884.
- (en) Request for comments no 3879.
- (en) Request for comments no 7217.
- (en) Request for comments no 4862.
- (en) Request for comments no 4941.
- (en) Request for comments no 3315.
- (en) Request for comments no 4861.
- Provider Independent (PI) IPv6 Assignments for End User Organisations
- IPv6 Address Allocation and Assignment Policy
- (en) Request for comments no 2460.
- (en) Request for comments no 2732.
- (en) Request for comments no 2893.