Comprenez comment fonctionne IPv6

Un mug de café à la main, Melanie s’installe devant son ordinateur. Elle sait que la journée ne sera pas comme les autres. Aujourd’hui, elle entre en terrain inconnu : le monde de l’IPv6. Elle ouvre une première page de documentation. À peine quelques lignes lues, ses yeux s’écarquillent :

« 340 282 366 920 938 463 463 374 607 431 768 211 456 adresses possibles »

Elle lâche un sifflement. 340 undécillions ? Même si chaque capteur, frigo et lampe connectée du monde avait sa propre adresse, on en aurait encore des milliards en réserve. Très vite, Mélanie comprend qu’IPv6, ce n’est pas seulement une réponse à la pénurie. C’est une nouvelle manière de penser les réseaux. Elle commence à prendre des notes, méthodiquement, comme toujours :

  • Fini le broadcast : on utilise du multicast à la place

  • SLAAC ou STATELESS AUTOCONFIG : chaque routeur IPv6 est capable d’avertir le préfixe IPv6 et l’adresse de passerelle aux hôtes qui grâce à ces informations peuvent se configurer d’eux même.

  • Plus besoin de NAT / PAT : il y a tellement d’adresses disponibles que cette fonctionnalité n’est plus nécessaire. Elle note qu’il existe tout de même des mécanismes de NAT en IPv6, tels que le NAT66 (traduit une IPv6 sur une autre IPv6) ou le NAT64 (traduit des adresses IPv6 en IPv4)

Une idée germe dans son esprit : et si, finalement, cette complexité apparente était justement une occasion de faire plus simple, plus propre ?

Alors qu’elle relit ses notes, Mélanie relève les yeux de son écran. Elle commence à percevoir les bénéfices concrets d’IPv6 pour son réseau. Ce n’est pas juste un protocole plus long et plus complexe : c’est un outil pour construire une infrastructure plus simple, plus fluide, et plus durable.

Comprenez comment se décompose une adresse IPv6

Mélanie remarque qu’IPv6, contrairement à IPv4, ne fonctionne pas sur 4 octets (pour rappel un octet = 8 bits), et n’utilise pas la notation décimale pointée. Elle prend l’exemple de cette adresse IPv6 :

  • 2001:0000:222A:0000:0000:0000:441C:123B

Elle remarque 8 groupes hexadécimaux séparés par 2 points. Chaque groupe hexadécimal contient 4 caractères, chaque caractère est codé sur 4 bits, ce qui représente 16 bits par groupe, il y a 8 groupes, ce qui donne 8x16 = 128, elle retrouve donc les 128 bits d’une adresse IPv6.

Elle prend par exemple le troisième groupe de l’adresse IPv6 ci-dessus : 222A. Elle pose chaque caractère et  décompose sa base 16 : 

 

Quatre colonnes avec en haut « 2 », « 2 », « 2 », « A », au milieu « 8421 » en violet, et en bas les valeurs binaires « 0010 », « 0010 », « 0010 », « 1010 » en vert.

  • En violet elle note la base 16 : 8 + 4 + 2 + 1 = 15 (0 à 15)

  • En vert la conversion binaire

    • Le premier caractère correspond à 2, pour avoir 2 elle positionne le bit qui correspond à cette valeur à 1

    • Même chose pour le deuxième et le troisième caractère.

Pour s’assurer de sa bonne compréhension, elle prend cet autre exemple : CAFE

Quatre colonnes avec en haut « C », « A », « F », « E », au milieu « 8421 » en violet, et en bas les valeurs binaires « 1100 », « 1010 », « 1111 », « 1110 » en vert.

C en hexadécimal donne 12 en décimal et 1100 en binaire

A en hexadécimal donne 10 en décimal et 1010 en binaire

F en hexadécimal donne 15 en décimal et 1111 en binaire

E en hexadécimal donne 14 en décimal et 1110 en binaire

Avant de passer à la section 3, il y a un autre point important que Mélanie souhaite comprendre : dans ses recherches, elle a découvert qu’il était possible de supprimer une série de zéros dans une adresse IPv6.

Elle prend l’exemple de cette adresse IPv6 :

  • 2001:0000:222A:0000:0000:0000:441C:123B

Elle découvre qu’elle peut supprimer toute une série de 0 qui se suivent, et les remplacer par ::

  • 2001:0000:222A::441C:123B

On ne peut faire cela qu’une seule fois. Si Mélanie veut réduire le deuxième groupe, elle doit conserver un zéro :

  • 2001:0:222A::441C:123B

Un autre exemple :

  • 2001:0004:0003:0001:0006:0008:000A:000B

  • 2001:4:3:1:6:8:A:B

En revanche, on ne peut pas le faire ici : 

  • 2001:1000:2000:3000:4000:5000:6000:7000

Pourquoi ?

En effectuant ses recherches, Mélanie découvre la règle suivante : on ne peut supprimer que les zéros qui précèdent un autre caractère que 0, si dans le cas présent on enlevait les zéros, cela reviendrait à dire que l’adresse n’est plus 

  • 2001:1000:2000:3000:4000:5000:6000:7000 

mais 

  • 2001:0001:0002:0003:0004:0005:0006:0007 !

Maintenant, passons à la notion de préfixe !

Maîtrisez la notion de préfixe IPv6

Mélanie connaît bien IPv4 et elle sait que les adresses IPv4 utilisent un masque de sous réseau, par exemple 255.255.0.0. En IPv6, elle découvre que l’on indique la taille du préfixe :

  • 2001:ABAD:BEEF:BABA::/64

Elle prend l’adresse IPv6 complète suivante et regarde de plus près la partie préfixe et la partie hôte :

  • 2001:ABAD:BEEF:BABA:1111:2222:3333:4444/64

/64 lui indique que la partie préfixe s’arrête à BABA et que la partie hôte constitue tout le reste :

Tableau avec deux colonnes : « PREFIXE » et « HOTES ». En dessous, « 2001;ABAD;BEEF;BABA » à gauche sur fond bleu, et « 1111;2222;3333;4444 » à droite sur fond clair.

Elle décide d’aller plus loin et imagine maintenant, qu’à la place d’un exemple simple comme /64, elle aurait par exemple un /53 :

  • 2001:ABAD:BEEF:CAFE:BABA:1111:2222:3333/53

Comment déterminer le préfixe ?

Il faut séparer la partie préfixe de la partie hôte au quatrième groupe (CAFE) :

AD_4nXeFWO2d-k0jbNYnrKIaCZmyJqVxmNAhLhPG869ZUCnWI3VUHE611tVLIXXRuLVvAYwo7bldT_x4sccyrgvWgSBim3yJ0diAmugxbZKlAHtgzggVZkE9m1lfHw4nUqtNp37Kn1NR8g?key=sdmC_0Z_tEH316O5RrzM-w

Sur la deuxième ligne, Mélanie indique la décomposition binaire de chaque caractère hexadécimal.

Sur la troisième ligne, elle place tous les bits qui appartiennent à la partie hôte à la valeur 0.

Elle crée ensuite un deuxième tableau avec la nouvelle décomposition binaire : 

 

Tableau avec deux sections : « Quatrième groupe propre à l’adresse IP » et « Quatrième groupe propre au préfixe ». Chaque section montre des colonnes C, A, F, E puis C, 8, 0, 0 avec valeurs binaires en noir et rouge.

 

Sur la partie supérieure du tableau, elle écrit la décomposition binaire du quatrième groupe hexadécimal de l’adresse IP membre du réseau. 

Sur la partie inférieure du tableau, elle écrit la décomposition binaire du quatrième groupe où la partie préfixe s’arrête au 53ème bit ; Mélanie  a découvert précédemment que chaque groupe de caractères hexadécimaux représente 16 bits, si elle prend les trois premiers groupes, cela représente 48 bits, et si elle prend les 5 premiers bits du quatrième groupe de caractères hexadécimaux (CAFE), cela représente les 53 bits du préfixe.

En gardant uniquement les 5 premiers bits du quatrième groupe hexadécimal à leur valeur d’origine et en passant tous les autres à 0 (ceux qui appartiennent à la partie hôte), elle obtient C800. Le préfixe est donc : 2001:ABAD:BEEF:C800::/53.

Elle décide de tester sa compréhension avec un autre exemple : 

  • 2001:ABAD:BEEF:6F3E:89CC:98AE:546B:BF03/50

Elle doit également séparer la partie préfixe de la partie hôte au quatrième groupe : 6F3E

Tableau avec deux sections : « Quatrième groupe propre à l’adresse IP » et « Quatrième groupe propre au préfixe ». Colonnes 6, F, 3, E puis 4, 0, 0, 0 avec valeurs binaires noires et rouges dessous.

La partie préfixe s’arrête au deuxième bits du quatrième groupe, comme dans l’exemple précédent, elle passe tous les autres bits à la valeur 0. Elle obtient la valeur 4000 pour le quatrième groupe. Le préfixe est donc 2001:ABAD:BEEF:4000::/50.

Passons maintenant à la partie suivante pour tout comprendre sur les sous réseaux IPv6 !

Comprenez les sous réseaux IPv6

Il existe un certain nombre de bonnes pratiques pour la gestion des sous réseaux en IPv6.

1. Utilisez des sous réseaux /64 pour les réseaux avec hôtes.

Mélanie découvre que selon la RFC 4291 et la RFC 7934, un sous réseau /64 est la taille standard pour les réseaux avec hôtes, mais pourquoi ?

En cherchant un peu plus, elle découvre encore une nouvelle fonctionnalité avec IPv6, nommée SLAAC qui permet l'auto configuration des adresses IPv6 et qui nécessite un ID Hôte de 64 bits pour fonctionner.

Mélanie comprend que si elle souhaite utiliser des sous réseaux plus petits que /64, elle perdra le mécanisme SLAAC, et pourrait risquer  d’avoir des problèmes avec le protocole NDP utilisé pour la découverte des voisins. Elle note que les RFC déconseillent fortement leur usage, information qu’elle juge intéressante de rapporter à Léo, il semblerait que la gestion des sous réseaux ne soit plus tout à fait la même qu’avec IPv4 se dit-elle !

En approfondissant ses recherches, elle découvre cependant une exception : les liens points à points. La RFC 3627 propose d’utiliser un /126 sur ce type de liaison, mais pas de /127 pour éviter tout problème avec l’anycast.

Elle comprend également qu’un /64 convient également parfaitement sur ce type de liaison.

2. N’ayez pas peur de gaspiller des adresses !

Avec IPv6, l’épuisement n’est plus un problème, l’objectif en IPv4 qui consistait à conserver des adresses n'est plus le même, il s’agit maintenant de gérer efficacement les sous réseaux.

Mélanie comprend qu’elle doit garder ceci à l’esprit : Avec IPv4 on dispose “seulement” d’un peu plus de 4 milliards d’adresses IP, alors qu’en IPv6, un simple /64 contient 18 quintillions d’adresses IPv6 ! La RFC 6177) recommande l’allocation des adresses IPv6 de la façon suivante : /48 pour les sites, /56 pour le résidentiel, /64 pour les interfaces uniques. En règle générale, les registres internet régionaux (RIPE NCC pour l’europe) et l’IETF (Internet engineering task force) recommandent de créer les sous réseaux de /48 à /64. On dispose de 16 bits pour créer les sous réseaux, soit 65536 sous réseaux possibles.

Mélanie décide par exemple de prendre  le réseau 2025:8891:1922::/48, qu’elle  souhaite “découper” en 10 sous réseaux. Elle découvre que comme en IPv4, elle doit commencer par se poser la question suivante : combien dois-je prendre de bits à la partie hôte pour attribution à la partie préfixe pour disposer de  10 sous réseaux ?

C’est le même calcul de puissance qu’avec IPv4 :

  • 2 Puissance 1 = 2 sous réseaux = insuffisant

  • 2 Puissance 2 = 4 sous réseaux = insuffisant

  • 2 Puissance 3 = 8 sous réseaux = insuffisant

  • 2 Puissance 4 = 16 sous réseaux = suffisant

Elle remarque que, comme en IPv4, on n’obtient pas forcément le nombre exact de sous réseaux que l’on souhaite, et décide qu’elle utilisera ici les 10 premiers sous réseaux et qu’elle gardera en “spare” les 6 autres.

Mais, que va devenir le préfixe ?

Le préfixe de base /48 va devenir /52 car elle va ajouter les 4 bits pris à la partie hôte pour créer ses sous réseaux.

Quels sont les sous-réseaux dont je vais disposer ?

Pour bien comprendre, elle doit décomposer le quatrième groupe (de /48 à /64) :

Quatre fois le nombre « 8421 » aligné horizontalement, le premier en rouge et les trois suivants en noir, sur fond blanc.

En rouge, on trouve les bits du groupe qui appartiennent à la partie préfixe, le reste appartient à la partie hôte. C’est sur la partie rouge, qui représente le premier caractère hexadécimal du quatrième groupe qu’elle va calculer ses sous réseaux, il lui suffit pour cela de poser le calcul binaire comme en IPv4 :

 

AD_4nXcB7SROIWbNwOJSQfw53-aKMqDlwYIot9MNDhHSUqoIfogNmUA9BB02-_7kFZkKok6dYrdzhV8tiY2kZYPZG0VKmJBWcdq18Dvnbo51kKDv3f-pNvCVem0PW16tqWzSMsuewbDcVg?key=sdmC_0Z_tEH316O5RrzM-w

 

Il suffit comme vous pouvez le voir sur la feuille de calculs de Mélanie de simplement lister les sous réseaux en regardant où se trouvent les bits à la valeur 1.

Mélanie décide de créer d’autres sous réseaux. Elle prend le dixième sous 2025:8891:1922:A000::/52 pour créer 4 sous réseaux : 

Elle commence par décomposer le quatrième groupe : A000

  • En rouge, elle identifie  les bits qui appartiennent déjà au préfixe /52 : elle comprend qu’elle ne peut pas y toucher.

  • En bleu, elle identifie les 2 bits nécessaires pour la création de ses 4 sous réseaux (2 Puissance 2 = 4), c’est sur cette partie qu’elle va poser son calcul binaire, enfin en vert elle indique les bits qui appartiennent à la partie hôtes : 

AD_4nXc6_ltGVmeQljDe8zr-Kvy-Bl6VCEs3B8V1ep5YgntaicAfQNGbIFqQjomNvXqRfIkgvL3t-3SUhzyjg68PLVQvlUKDt6KakSoxNY1yc7DCjKr9NdhB4r-NAe4BKrHLo1lpjCRN?key=sdmC_0Z_tEH316O5RrzM-w

Le préfixe va devenir /54, les sous réseaux seront :

Quatre lignes montrant des binaires « 00 », « 01 », « 10 », « 11 » suivis d’adresses IPv6. Dans chaque adresse, un groupe en rouge : « A0 », « A4 », « A8 », « AC ».

En parallèle, Mélanie découvre un site qui permet de vérifier ses calculs de sous réseaux :

https://www.site24x7.com/fr/tools/ipv6-sous-reseau-calculatrice.html

À vous de jouer

Dans cet exercice, vous allez vous placer dans le rôle de Mélanie et déterminer le préfixe de différentes adresses IPv6 et calculer des sous réseaux.

1) Pour chaque adresse IPv6, indiquez le préfixe :

  • 2A3B:5C7D:9E1F:2468:B0C9: D4E2:7AF3:1865/51

  • 3F2A:7B9C:1D4E:8065:C2F1:9A3B:E7D8:2041/60

  • 2C9D:4E8A:B3F2:1764:8D0C:5A9E:F1B7:3920/56

  • 2E7F:9A1B:3C4D:6823:F0E9:1D5A:7B2C:4061/59

2) Créez les sous réseaux :

  • 2A4B:7C2D:9E3F::/48 4 Sous réseaux

  • 3B6C:8D4E:2F1A::/48 10 sous réseaux

Voici la correction qui vous permettra de vérifier votre travail.

Devinez la suite

Vous venez de parcourir le chapitre. Avec la vidéo Devinez la suite, reprenez-les sous forme ludique : complétez les phrases et stimulez votre mémoire pour mieux ancrer vos apprentissages. 

En résumé

  • Ipv6 est codé sur 128 bits et dispose d’environ 340 undécillions d’adresses IP.

  • Le flux de Broadcast n’existe plus en IPv6, le multicast est massivement utilisé à la place.

  • Utilisez un préfixe au lieu d’un masque de sous réseau.

  • On ne retire plus deux adresses IP de chaque sous réseau contrairement à IPv4.

  • Utilisez l'hexadécimal à la place du décimal.

Bravo, vous connaissez maintenant les sous réseaux avec IPv6, découvrez dans la partie suivante les différents types d’adresses !

Et si vous obteniez un diplôme OpenClassrooms ?
  • Formations jusqu’à 100 % financées
  • Date de début flexible
  • Projets professionnalisants
  • Mentorat individuel
Trouvez la formation et le financement faits pour vous