La pénurie des adresses IPv4 est le premier élément qui a motivé la création d’une nouvelle version du protocole, son format et sa façon de représenter des adresses sont les éléments les plus visibles pour les utilisateurs et administrateurs.
Qu’est ce qu’une adresse IPV6 ?
Une adresse IPv6 est un mot de 128 bits, soit 16 octets, ce qui offre un espace global de 2^128 adresses possibles (contre 2^32 pour l’IPv4), ce chiffre est astronomique, environs 340 sextillions.
Adresses | Octets | bits | Adresses possibles | Résultats |
---|---|---|---|---|
IPv4 | 4 | 32 | 2^32 | 4 294 967 296 (environs 4 milliards) |
IPv6 | 16 | 128 | 2^128 | 340 282 366 920 938 463 463 374 607 431 768 211 456 |
Comme en IPv4, on considérera qu’une adresse est associée à une interface. Une machine peut posséder plusieurs interfaces. De même, une interface peut supporter plusieurs adresses.
Comparainson IPV4 et IPV6
Adresses IPV4 | Adresses IPV6 |
---|---|
192.168.1.10 | 2001 0db8.bad0.cafe.5054.00ff.fe35.9a74 |
11000000 10101000 00000001 00001010 | 00100000 00000001 00001101 10111000 10111010 11010000 11001010 11111110 01010000 01010100 00000000 11111111 11111110 00110101 10011010 01110100 |
Notation des adresses IPV6
IPv6 a abandonné la notation décimale pointée utilisée par les adresses IPv4 sur 32 bits (4 octets) car inadaptée pour des chaînes de 128bits (16 octets).
IPv6 a adopté la notation hexadécimale couramment utilisée dans le monde informatique pour représenter des octets par des couples de chiffres, exemple : 2001:0db8:0000:0000:0008:0800:200C:417A
Notation canonique pour l’affichage
Selon le RFC 5952, une adresse IPV6 devrait être affichée selon la forme suivante :
- Les zéros non significatifs doivent être supprimés.
- Une suite de champs nuls consécutifs doit être substituée avec des “ :: “ sur la série la plus longue. En cas d’égalité, on l’applique sur la première uniquement.
- Les chiffres hexadécimaux doivent être en minuscules.
- Utilisation de crochets pour préciser les ports (cas des URLs).
Notations | Adresse IPV6 |
---|---|
Héxadécimal | 2001 0db8 0000 0000 0008 0800 200C 417A |
Adresse | 2001:db8:0:0:8:800:200C:417A |
Compacte | 2001:db8::8:800:200C:417A |
Note : il est possible de voir les IPs sous une autre forme héxadécimale :
- 20 01 0d b8 00 00 00 00 00 08 08 00 20 0C 41 7A
- 0x20010db80000000000080800200C417A
Autres exemples :
Adresse | Version compacte | |
---|---|---|
Une adresse unicast | 2001:0db8:0:0:0:800:200c:417a | 2001:db8::800:200c:417a |
Une adresse multicast | ff01:0:0:0:0:0:0:101 | ff01::101 |
Loopback | 0:0:0:0:0:0:0:1 | ::1 |
Unspecified address | 0:0:0:0:0:0:0:0 | :: |
Notation des URL
La notation IPV6 peut crée des ambiguïté aux niveaux des URLs ou numéros de ports et adresses peuvent être confondues.
L’adresse : http://2001:db8:12::1:8000/ peut être interprétée de deux manières :
- L’adresse est simplement 2001:db8:12::1:8000
- L’adresse est 2001:db8:12::1 mais on précise le port TCP 8000
Pour lever cette ambiguïté, le RFC 3986 propose d’inclure l’adresse IPv6 entre crochets [ ], ainsi on obtient :
- http://[2001:db8:12::1:8000]/
- http://[2001:db8:12::1]:8000/
Notation des préfixes
Comme en IPV4, on utilise la méthode CIDR qui spécifie que les bits de poids fort de l’adresse définissent la localisation du réseau auquel cette dernière appartient. CIDR permet également de mieux hiérarchiser les réseaux, faciliter le routage et permet un moindre gaspillage d’adresses.
Un des problèmes de croissance auquel l’Internet fait face est la croissance de la table de routage des routeurs du cœur. Pour arrêter cette croissance, il sera sans doute nécessaire de séparer les fonctions actuelles des adresses IP en deux : les fonctions d’identificateur et de localisateur.
Note sur la séparation de l’identificateur et du localisateur dans Internet : https://www.bortzmeyer.org/separation-identificateur-localisateur.html
Correspondance avec la forme binaires
Binaire | Hexadécimal |
---|---|
00100000 00000001 00001101 10111000 00000000 00000000 00000000 00000000 00000000 00001000 00001000 00000000 00100000 00001100 01000001 01111010 | 2001 0db8 0000 0000 0008 0800 200C 417A |
Exemples
Adresse/masque | Première adresse | Dernière adresse |
---|---|---|
2001:db8:24:a1a0::/60 | 2001:0db8:0024:a1a0:0000:0000:0000:0000 | 2001:0db8:0024:a1af:ffff:ffff:ffff:ffff |
2001:db8:24:a1a2 ::/64 | **2001:0db8:0024:a1a2:**0000:0000:0000:0000 | 2001:0db8:0024:a1a2:ffff:ffff:ffff:ffff |
Différents types d’adresses
Type | Préfixe binaire d’identification | Notation IPv6 |
---|---|---|
Non spécifié | 00…0 | ::/128 |
Loopback | 00…1 | ::1/128 |
Multicast | 1111 1111 | ff00::/8 |
Unicast lien local | 1111 1110 10 | fe80::/10 |
Unique Local unicat Address (ULA) | 1111 1101 | fd00::/8 |
Unicast globale | 001 | 2000::/3 (adr. commencent par 2 ou 3) |
Fonctions des Différents types d’adresses
Une adresse de type **unicast **
- Identifie une seule interface réseau, donc un seul nœud.
Une adresse de type multicast
- Identifie un groupe de nœuds :
- soit un seul nœud
- soit un réseau de nœuds
- soit plusieurs nœuds répartis sur l’Internet.
- Sont identifiées par le préfixe ff00::/8 ; c’est-à-dire les adresses dont tous les bits du premier octet sont à 1.
Une adresse de type anycast
- Identifier un groupe de nœuds répartis à l’échelle de l’Internet et offrant un même type de service.
Embarquement des adresses IPv4 dans des adresses IPv6 unicast
Une adresse IPV4 écrite en décimal pointé peut également s’écrire en héxadécimal, ainsi l’adresse IPv4 192.168.10.5 s’écrira c0a8:a05 si elle est embarquée dans une adresse IPv6. Exemples :
- 2002:c0a8:a05:624:5054:1ff1fe12:3456
- 2001:db8:900d:cafe::c0a8:a05
Si l’adresse IPv4 occupe la partie basse de l’adresse IPv6 (ici les 32 bits de poids faible), la notation décimale pointée d’IPv4 est tolérée. L’adresse 2001:db8:900d:cafe::c0a8:a05 pourra donc s’écrire 2001:db8:900d:cafe::192.168.10.5
Il est à noter que cette écriture est peu courante, voire inexistante dans les configurations et autres matériels de routage qui la convertissent directement en hexadécimal. Elle apporte simplement une aide à la compréhension.
Comment définir des sous réseaux ?
Voir Les adresses IPV6 pages 51 → 62
Documentation
Sites Internet
https://www.fun-mooc.fr/courses/course-v1:MinesTelecom+04012+session05/courseware/9e69eb819d6049bf8cde650ba62a5d00/
https://fr.wikipedia.org/wiki/Protocole_r%C3%A9seau
https://fr.wikipedia.org/wiki/Suite_des_protocoles_Internet
https://fr.wikipedia.org/wiki/Paquet_(r%C3%A9seau)
https://fr.wikipedia.org/wiki/Syst%C3%A8me_binaire
https://fr.wikipedia.org/wiki/Syst%C3%A8me_hexad%C3%A9cimal
https://www.bortzmeyer.org/separation-identificateur-localisateur.html
http://livre.g6.asso.fr/index.php/Main_Page
Lire les très grand nombre : https://www.maths-et-tiques.fr/index.php/detentes/tres-grands-nombres
0-Pres-pdu-doc.pdf
Les adresses IPV6
Le protocole IPV6
Les mécanismes de gestion d’un réseau IPV6
L’intégration d’IPV6 dans l’Internet
L’essentiel d’IPV6 Cheat-sheet
A voir :
https://security.stackexchange.com/questions/173122/ipv4-addresses-in-different-encodings
https://news.ycombinator.com/item?id=6580592
@todo : cas des adresses en 2001:41d0:2:9d5d::