Cours BUT Info

Ch. 4 — IP version 6

Pourquoi IPv6 remplace IPv4 : 128 bits et notation abrégée RFC 5952, les types d'adresses (lien local, locales uniques, globales, multicast sollicitée, anycast), l'en-tête de 40 octets, la découverte de voisins ICMPv6, la SLAAC et la renumérotation.

Ce que fait ce cours

Le ch. 1 posait l'adressage IPv4 et le ch. 3 décrivait le fonctionnement d'IP « au mieux ». Ici, la nouvelle génération d'IP : IPv6, pensée dès le départ pour corriger ce qui manque à la précédente — l'espace d'adresses, la taille des tables de routage, le multicast, la QoS — tout en gardant le même service best effort. C'est aussi le socle du TP 4, qui observe tout ce mécanisme en direct dans Wireshark, et du mémo IPv6 pour les commandes.

Les faits à placer en tête : la spécification vient des travaux de l'IETF sur IPng (première spécification adoptée en 1994), le réseau de production date de juin 2006 (fin du réseau expérimental 6bone) et ≈ 200 000 préfixes IPv6 sont aujourd'hui annoncés par BGP. Les motivations de la refonte : l'épuisement des adresses IPv4, l'augmentation de la taille des tables de routage, une transition sur la durée, et l'intégration de l'expérience acquise — nettoyage des en-têtes, prise en compte de la sécurité et de la qualité de service, généralisation du multicast.

Une adresse sur 128 bits, à écrire correctement

Une adresse IPv6 tient sur 128 bits, découpés en 8 blocs de 16 bits écrits en hexadécimal et séparés par des deux-crochets. Pour l'utiliser dans une URL, on l'encadre de crochets (sinon les deux-crochets de l'adresse se confondent avec ceux du port) : http://[2001:db8:3003:1::6543:210f]:80/index.html.

L'écriture abrégée est un sujet d'examen à part entière — la RFC 5952 fixe des règles strictes, et une adresse mal abrégée est simplement une autre adresse :

Une adresse IPv6 s'écrit en hexadécimal, 8 blocs de 16 bits séparés par des deux-crochets. La moitié gauche porte le préfixe de réseau, la moitié droite l'interface ID. L'écriture abrégée suit des règles strictes (RFC 5952) : zéros de tête supprimés, un seul :: sur la plus longue suite de blocs nuls, tout en minuscules.

Le piège du ::

Le double deux-crochets ne remplace jamais un seul bloc nul — 2001:db8:0:1:1:1:1:1 reste tel quel — et n'apparaît qu'une fois par adresse, sur la plus longue suite de blocs nuls (à égalité, la première : 2001:0:0:1:0:0:0:1 s'écrit 2001:0:0:1::1, pas 2001::1:0:0:1). Comptez toujours les blocs : l'adresse abrégée doit en reconstituer 8.

Les types d'adresses

Là où IPv4 distinguait juste « publiques, privées, diffusion », IPv6 structure tout son espace en trois familles — unicast, multicast, anycast — avec des plages bien définies :

La carte des types d'adresses IPv6. Unicast : cinq plages à connaître, du lien local au préfixe mondial. Multicast : les groupes du lien (tous les nœuds, tous les routeurs) tiennent lieu de diffusion. Anycast : une adresse partagée par plusieurs interfaces, le paquet part vers la plus proche.

Deux plages méritent une attention particulière pour le cours :

  • Lien local fe80::/10 : configurée automatiquement par la machine, elle permet de communiquer sur le réseau local seulement — un paquet avec cette adresse destination ne sort jamais du réseau local. Comme la même adresse existe sur chaque lien du monde, l'utiliser impose de préciser l'interface de sortie : ping6 fe80::c634:6bff:fe24:e80c %eth0.
  • Locales uniques fc00::/7 : l'analogue des adresses privées IPv4 (RFC 1918), mais avec une unicité globale obtenue par une génération pseudo-aléatoire de l'identifiant : deux sites peuvent fusionner leurs réseaux sans collision. Elles ne sont pas censées être annoncées à l'extérieur et les paquets de/vers ces préfixes doivent être filtrés.

Pas de diffusion, pas d'ARP

IPv6 n'a pas d'adresse de diffusion (broadcast) : son rôle est tenu par le multicast ff02::1 (tous les nœuds du lien) et ff02::2 (tous les routeurs). Une adresse multicast se lit : ff, 4 bits de pérennité (0 permanent / 1 temporaire), 4 bits d'étendue (1 interface, 2 lien, 5 site, e global), puis l'ID du groupe.

Préfixe + interface ID : EUI-64 et multicast sollicitée

Une adresse unicast globale se découpe toujours en deux moitiés de 64 bits : le préfixe de réseau (préfixe de routage global + ID de sous-réseau) et l'interface ID qui identifie une interface sur le réseau physique. L'interface ID peut être généré de plusieurs façons — fonction aléatoire (RFC 7217), adresses cryptographiques (CGA, HBA) — le format EUI-64 dérivé de la MAC étant aujourd'hui déconseillé (RFC 8064) : il rend la machine traçable. Il reste celui du cours, et celui que vous observerez en TP :

Deux transformations à connaître. La MAC devient un identifiant d'interface EUI-64 (7ᵉ bit inversé, ff:fe inséré au milieu) que le préfixe de lien local fe80::/10 habille en adresse. Et les 24 derniers bits d'une adresse unicast ressortent dans son adresse de multicast sollicitée — le canal de la découverte de voisins.

L'adresse de multicast sollicitée est l'outil clé de tout le fonctionnement d'IPv6 : au lieu de diffuser une question à tout le monde comme ARP, on parle à une adresse que une seule machine écoute — celle dont l'adresse unicast se termine par les mêmes 24 bits.

L'en-tête IPv6 : 40 octets, rien de plus

RFC 8200 (juillet 2017, ex-RFC 2460). La refonte passe par une simplification radicale de l'en-tête : taille fixe, champs alignés sur 64 bits, suppression du contrôle d'erreur, options déménagées hors de l'en-tête, QoS et sécurité prises en charge.

L'en-tête IPv6 (RFC 8200) tient en 40 octets, taille fixe : plus de somme de contrôle ni d'options dans l'en-tête — les options vivent dans des extensions chaînées via le champ Prochain en-tête. Surlignés : le chainage des extensions et le nombre de sauts, l'ancien TTL.

Les différences qui tombent en QCM

IPv6 n'a pas de somme de contrôle (l'en-tête IPv4 en avait une, TCP/UDP la recalculent à chaque routeur en IPv4, plus rien à faire ici), pas de champ de fragmentation (une adresse de 128 bits serait trop petite pour tout caser : la fragmentation passe dans une extension), et le TTL devient nombre de sauts. La taille de l'en-tête est fixe : plus de champ IHL.

Les champs optionnels sont placés dans des extensions d'en-tête suivant l'en-tête IP : elles sont chaînées par le champ Prochain en-tête dans un ordre prédéfini, et le destinataire doit les traiter dans l'ordre (IPv6 → routage → fragment → TCP, par exemple). Seule l'extension hop-by-hop doit être examinée par tous les routeurs du chemin.

La découverte de voisins : ICMPv6 remplace ARP

Toute la plomberie de niveau 3-2 est regroupée dans le protocole de découverte de voisin (Neighbor Discovery), intégré à ICMPv6 et construit sur les adresses de multicast sollicitées. Ses objectifs : découvrir les adresses de niveau 2 (il remplace les requêtes ARP), permettre l'auto-configuration (unicité des adresses, préfixes à utiliser, paramètres du lien comme le MTU), trouver les routeurs sur le lien, choisir le routeur de sortie pour une destination, et vérifier l'accessibilité des voisins.

Le protocole de découverte de voisins (intégré à ICMPv6) se sert des adresses de multicast sollicitées. En haut : la détection d'adresse dupliquée, qui valide une adresse avant de l'utiliser. En bas : la sollicitation et l'annonce de voisin, qui remplacent les requêtes ARP d'IPv4 — question en multicast, réponse en direct.

Les quatre messages à connaître par numéro

Sollicitation de voisin (type 135), annonce de voisin (136) — le couple qui remplace ARP — et sollicitation de routeur (133), annonce de routeur (134) — le couple de l'auto-configuration. En Wireshark (TP 4), ce sont les seuls types ICMPv6 que vous verrez.

La détection d'adresse dupliquée (DAD, Duplicate Address Detection) est réalisée pour toute adresse unicast avant usage : l'hôte envoie une sollicitation de voisin depuis l'adresse :: vers l'adresse de multicast sollicitée de l'adresse testée. Si une annonce de voisin répond, l'adresse est déjà utilisée — on arrête l'auto-configuration. Silence, et l'adresse devient « préférée ».

L'auto-configuration sans état (SLAAC)

Le grand confort d'IPv6 : une machine qui arrive sur un lien se configure toute seule, sans DHCP ni fichier de configuration. La séquence tient en cinq étapes :

L'autoconfiguration sans état (SLAAC, RFC 4862) : l'hôte se débrouille seul pour le lien local, puis apprend tout le reste du routeur — préfixes, MTU, durées de vie — dans une annonce de routeur. Aucun serveur n'a mémorisé quoi que ce soit : c'est pour ça qu'on dit « sans état ».

Le routeur ne se contente pas de fournir le préfixe : son annonce apporte aussi les paramètres du lien (nombre de sauts, MTU, temporisateurs de voisinage) et les durées de vie de chaque préfixe — durée de validité et durée de préférence. C'est cette information qui rend la renumérotation d'un réseau presque invisible : on annonce un nouveau préfixe pendant l'ancien, puis on raccourcit la vie de l'ancien.

SLAAC « sans état » vs DHCPv6 « avec état »

La SLAAC est sans état : aucun serveur ne mémorise qui a quelle adresse — le routeur annonce des préfixes, les machines se débrouillent. L'auto-configuration avec état repose sur DHCPv6 : le routeur peut l'indiquer dans son annonce (ou juste un complément, p. ex. la configuration DNS) ; elle est aussi tentée quand aucun routeur ne répond aux sollicitations.

Les états d'une adresse : la clé de la renumérotation

Chaque adresse unicast passe par des états, pilotés par les durées annoncées dans l'annonce de routeur :

Les états d'une adresse unicast IPv6. Validée par la détection d'adresse dupliquée, l'adresse devient préférée ; quand la durée de préférence expire elle est obsolète (les connexions en cours continuent, les nouvelles en partent) ; à l'expiration de la durée de vie totale elle est invalide.

Cette double horloge est tout l'art de la renumérotation (RFC 4192) : ajouter le nouveau préfixe avant de retirer l'ancien, laisser les connexions en cours finir sur l'adresse obsolète, et laisser les nouvelles connexions basculer d'elles-mêmes sur l'adresse préférée. Le TP 4 met exactement en scène cette bascule sur FRR.

À retenir

  • Une adresse IPv6 = 128 bits, 8 blocs de 16 bits en hexadécimal. Abréviation RFC 5952 : zéros de tête supprimés, un seul :: sur la plus longue suite de blocs nuls (jamais un seul bloc), tout en minuscules — et l'adresse doit reconstituer 8 blocs.
  • Plages : ::/128 non spécifiée, ::1 bouclage, fe80::/10 lien local (automatique, jamais routée, interface à préciser), fc00::/7 locales uniques (privées filtrées), 2000::/3 globales (la seule allouée). Multicast ff00::/8 au lieu des diffusions : ff02::1 tous les nœuds, ff02::2 tous les routeurs. Anycast : remise à la plus proche.
  • Adresse unicast = 64 bits de préfixe + 64 bits d'interface ID (EUI-64 : MAC avec 7ᵉ bit inversé et ff:fe inséré — aujourd'hui déconseillé pour la vie privée). Multicast sollicitée = ff02::1:ff + 24 derniers bits de l'adresse.
  • En-tête 40 octets fixes : pas de somme de contrôle, pas d'options (→ extensions chaînées), classe de trafic + label de flot (QoS), nombre de sauts = TTL.
  • La découverte de voisins (ICMPv6) remplace ARP : sollicitation/annonce de voisin (135/136) sur les multicast sollicitées, DAD pour vérifier l'unicité, sollicitation/annonce de routeur (133/134) pour la SLAAC — préfixes, MTU, durées de validité/préférence qui pilotent les états tentative → préférée → obsolète → invalide et rendent la renumérotation douce.

cours-4-ipv6.pdf

R3.06 · Cours — Yvan Peter, IUT de Lille · 42 diapositives

Consultation seule — téléchargement désactivé

Chargement du document…

Dernière mise à jour le

Sur cette page