IPv6 (Internet Protocol Version 6) est une version de protocole IP développée par Internet Engineering Task Force (IETF). Cette version de protocole vise à remplacer le protocole IP version 4 (IPv4) utilisé jusqu'à présent et représente une procédure standardisée pour le transfert de paquets de données dans des réseaux informatiques. L'adressage d'éléments réseau par le biais de ce que l'on appelle des adresses IPv6 ainsi que la redirection de paquets entre des sous-réseaux (routing) font partie des fonctions centrales du protocole IPv6. Le manque d'adresses Internet publiques est l'une des raisons principales du développement du protocole IPv6. Le protocole IPv4 utilise des adresses 32 bits. En résulte un espace d'adressage contenant environ 4,3 milliards d'adresses. Le protocole IPv6 utilise quant à lui des adresses IPv6 d'une longueur de 128 bits. Cette longueur d'adresse permet une quantité inimaginable de 2^128 oder 3,4 x 10^38  adresses IPv6. 

Structure d'une adresse IPv6

Les adresses IPv6 sont composées de 8 blocs de 16 bits ayant chacun des nombres hexadécimaux de quatre chiffres. Ces blocs sont séparés par deux points (:). Exemple :

2001:0620:0000:0000:0211:24FF:FE80:C12C

Les premiers 64 bits sont utilisés pour le routing et désignent le préfixe du réseau. Le préfixe du réseau caractérise le réseau, le sous-réseau ou la plage d'adresse. Les derniers 64 bits sont désignés comme "Interface Identifier" (IID : identificateur d'interface). L'Interface Identifier désigne un hôte dans ce réseau : il est constitué à partir de l'adresse MAC 48 bits et est converti en une adresse 64 bits. Il s'agit là du format EUI-64 modifié. Ainsi, l'interface est clairement identifiable indépendamment du préfixe du réseau.

Le masque réseau ou sous-réseau connu par le protocole IPv4 disparaît avec le protocole IPv6 sans être remplacé. Pour pouvoir tout de même procéder à une segmentation, la longueur du préfixe est définie et est ajoutée avec un "/" (slash ou barre oblique) à l'adresse IPv6 en soi. Exemple :

Un sous-réseau avec les adresses IPv6 entre 2001:0820:9511:0000:0000:0000:0000:0000 et 2001:0820:9511:FFFF:FFFF:FFFF:FFFF:FFFF peut être décrit avec la notation 2001:0820:9511::/48.

Affectation d'adresse

En règle générale, les fournisseurs d'accès Internet (ISP) obtiennent des réseaux /32 de la part du registre Internet régional (RIR) et les structurent ensuite en sous-réseaux. Les clients finaux se voient attribuer des réseaux /48 ou /56.

Extensions privées (Privacy Extensions)

Une adresse IPv6 basée sur le format EUI-64 modifié permet de déduire l'adresse MAC sous-jacente. Étant donné que cela pourrait susciter des inquiétudes auprès des utilisateurs en ce qui concerne la protection des données, une procédure d'extensions privées (Privacy Extensions) a été développée afin de rendre anonyme la partie hôte des adresses IPv6. À cet effet, le système d'extensions privées abroge le couplage entre l'Interface Identifier et l'adresse MAC et génère des Interface Identifier temporaires pour des connexions sortantes.

Règles de notation

Les adresses IPv6 pouvant être très longues, elles sont en règle générale raccourcies. Les règles de notation obligatoires à ce propos sont définies sous le lien RFC 5952. Ce lien contient entre autres les règles suivantes :

  • Les zéros situés au début d'un bloc peuvent être ignorés.

  • Un bloc unique contenant 4 zéros est résumé en un seul zéro. 

  • Les blocs successifs suivants dont la valeur est de 0 ou de 0000 sont raccourcis par deux deux-points ("::"). Ce raccourcissement ne peut cependant avoir lieu qu'une seule fois dans une adresse : dans le cas contraire, l'unicité est perdue. Exemple : 

    L'adresse 2001:0dc8:0:0:8d5:0:0:0 peut ainsi être raccourcie de la manière suivante : 2001:0dc8:0:0:8d5:0:: ou 2001:0dc8:0::8d5:0:0:0 

  • Si une adresse contient plusieurs séquences de zéros, seule la séquence la plus à gauche peut être remplacée.

Notation URL

Les adresses IPv6 sont placées entre crochets dans une adresse URL. Exemple :

http://[2001:0db8:83a3:08d3::0380:7344]/ 

Les numéros de port doivent se trouver après le dernier crochet. Ceux-ci sont séparés par deux points.

http://[2001:0db8:83a3:08d3::0380:7344]:8080/ 

Le signe du pourcentage (%) est également utilisé pour le marquage du codage hexadécimal des caractères dans des adresses URL. Dans une adresse URL, le signe du pourcentage doit être remplacé par son propre code hexadécimal "%25" (RFC 6874). Ceci est nécessaire lorsque l'on souhaite forcer la connexion via une interface précise.

Types d'adresse IPv6

Comme pour les protocoles IPv4, différentes plages d'adresses ont été définies avec des tâches et des propriétés spécifiques pour IPv6. Celles-ci ont été spécifiées dans RFC 4291 et RFC 5156 et peuvent être identifiées au moyen des premiers bits d'une adresse IPv6, ce que l'on appelle le préfixe de format.

  • Adresses Loopback : l'adresse 0:0:0:0:0:0:0:1 (également ::1/128) est appelée adresse Loopback. Il s'agit de l'adresse de l'emplacement en lui-même. 

  • Adresses Link-Local : les adresses Link-Local sont valables uniquement au sein de réseaux locaux et commencent par le préfixe de format FE80::/10. Ces adresses sont utilisées pour l'adressage d'éléments au sein d'un réseau local ainsi que pour la configuration automatique ou pour la "Neighbour-Discovery".  En règle générale, la portée d'une adresse Link-Local suffit jusqu'au prochain routeur, de sorte que chaque appareil connecté au réseau soit en mesure de communiquer avec celui-ci afin de générer une adresse IPv6 globale. Ce processus est appelé "Neighbor Discovery". 

  • Adresses Unique-Local : des plages d'adresses réservées pour le protocole IPv6 ont été définies pour les réseaux locaux privés. Celles-ci sont décrites dans RFC 4193 et ont une fonction similaire aux plages d'adresses privées définies dans le protocole IPv4. Les adresses Unique-Local se trouvent dans la plage d'adresses "fc00::/7" (fc00… jusqu'à fdff…) et ne sont pas routées sur Internet. Elles sont au contraire valides uniquement au sein d'une plage de réseaux définie. Il convient de ne pas confondre les préfixes "fc" et "fd" car ceux-ci ont des significations différentes. Tandis que les adresses IPv6 sont affectées par le prestataire avec le préfixe fc, les adresses IPv6 peuvent être utilisées avec le préfixe fd dans le réseau local propre. 

  • Adresses Global-Unicast : les adresses Global-Unicast sont des adresses uniques au monde qui sont routées dans le monde entier. Celles-ci sont requises par un dispositif réseau afin d'établir une connexion à Internet. Un hôte peut posséder plusieurs de ces adresses IPv6. Elles sont prises en charge par l'hôte au moyen de la configuration automatique.

  • Adresses Multicast : les adresses Multicast permettent de réaliser une communication entre une et de nombreuses entités. Les paquets envoyés à une adresse Multicast atteignent tous les appareils du réseau qui font partie d'un groupe Multicast. Dans ce contexte, un appareil peut appartenir parallèlement à plusieurs groupes Multicast. Si une adresse IPv6 Unicast est créée pour un appareil de réseau, celui-ci devient automatiquement membre de certains groupes Multicast requis pour la détection, l'accessibilité et la détermination du préfixe. Les adresses Multicast sont signalisées par le préfixe "ff::/8". Ensuite, 4 bits suivent pour des drapeaux (flags) et 4 bits supplémentaires pour la saisie du Multicast Scope.

    Les adresses Multicast se terminent par un numéro représentant un groupe Multicast. Vous trouverez sous le lien https://www.iana.org/assignments/ipv6-multicast-addresses/ipv6-multicast-addresses.xhtml 

  • Adresses Anycast : les adresses de ce type peuvent être adressées à des groupes d'appareils destinataires. Les paquets de données sont ici envoyés uniquement à l'appareil le plus proche de l'émetteur. Les adresses Anycast peuvent donc être utilisées dans le cadre de la répartition des ressources et pour une fiabilité plus élevée.

Format de paquet IPv6

Le protocole IPv6 se distingue par un format de paquet simplifié. L'en-tête dispose d'une longueur fixe de 40 octets. Des informations optionnelles sont externalisées dans des en-têtes d'extension entre la zone de données d'en-tête IPv6 et les ressources utiles en soi. Ainsi, des options peuvent être insérées sans modifier l'en-tête. Parmi les informations susceptibles de contenir des extensions d'en-tête IPv6, nous trouvons entre autres des options "nœuds-nœuds", des options cibles, des options de routing ainsi que des options concernant la fragmentation, l'authentification et le chiffrement. Vous trouverez de plus amples informations relatives au format de paquet IPv6 sous le lien RFC 2460

Configuration automatique d'adresse Stateless

La configuration automatique d'adresse Stateless (SLAAC) est un processus de configuration automatique et indépendante du statut pour adresses IPv6 dans une interface réseau. Au moyen de ce processus, un hôte peut établir de manière entièrement automatique une connexion Internet opérationnelle. "Stateless" signifie dans ce contexte que l'adresse IPv6 respective ne sera ni attribuée, ni enregistrée de manière centrale. Au contraire, l'hôte crée une adresse IPv6 de type Link-Local pour une communication initiale et se l'attribue. Au moyen de cette adresse IPv6 Link-Local, un appareil est en mesure de rechercher les routeurs présents dans son segment de réseau grâce au protocole Neighbour Discovery (NDP). Cela se déroule par le biais d'une requête envoyée à l'adresse Multicast via laquelle tous les routeurs d'un segment sont accessibles. 

Après la réception d'une telle requête, un routeur envoie des informations concernant les préfixes disponibles. Afin d'éviter une double-affectation d'adresses IPv6, l'hôte effectue une détection d'adresses dupliquées (DAD) pour une adresse IPv6 nouvellement générée. Dans ce but, l'hôte envoie une requête à l'adresse générée dans le réseau local. Une adresse Multicast fait office d'adresse de réponse. Lorsqu'une autre station utilise déjà l'adresse IPv6, une réponse est renvoyée. Si aucune réponse de la part de cette adresse n'est envoyée, l'hôte utilise l'adresse IPv6 pour la communication. 

Protocole Neighbour Discovery

Le protocole Neighbour Discovery (NPD) est un protocole IPv6. Il est utilisé entre autres afin de résoudre des adresses IPv6 en adresses Link-Layer (adresses MAC). De plus, il est utilisé pour effectuer une mise à jour des adresses mises en mémoire cache. Lorsqu'un nœud ne se trouve pas dans le même réseau, le protocole Neighbour Discovery est utilisé afin de trouver un routeur capable de rediriger les paquets. Ce protocole remplit également entre autres les tâches suivantes :

  • Détection de paramètres

  • Configuration automatique d'adresse Stateless

  • Résolution de l'adresse (Adress Resolution avec Neighbor Discovery) 

  • Reconnaissance de l'inaccessibilité du voisin (Neighbor Unreachability Detection, NUD)

  • Reconnaissance d'adresses doublons (Duplicate Address Detection, DAD)

  • Redirection (Redirect)

Vous trouverez de plus amples informations concernant le protocole Neighbour Discovery sous le lien RFC 4861.

DHCP6

DHCP est un protocole utilisé pour la gestion de la configuration IP dans un réseau TCP/IP. Cela permet d'intégrer des clients connectés dans un réseau existant sans configuration manuelle de l'interface réseau. Dans un réseau IPv6, DHCP6 n'est pas nécessaire, étant donné que cette tâche est prise en charge par la configuration automatique d'adresse Stateless (SLAAC). Cependant, de bonnes raisons parlent en faveur de l'utilisation de DHCP6. Le cas se présente par exemple lorsque le client IPv6 ne peut accepter les options de la configuration IP au moyen de la configuration automatique d'adresse Stateless. Dans cette situation, l'adresse IP (au moyen de la configuration automatique d'adresse Stateless) et les paramètres de configuration restants (au moyen de DHCPv6) peuvent être attribués.