DHCPv6 vs SLAAC : attribution des adresses IPv6, état, passerelle et DNS, usages

Un hôte IPv6 peut obtenir automatiquement une adresse de deux façons : DHCPv6 et SLAAC. Avec SLAAC (autoconfiguration d’adresse sans état, RFC 4862), l’hôte apprend le préfixe du lien à partir des annonces de routeur (RA) envoyées par les routeurs, crée son propre identifiant d’interface et assemble l’adresse. Aucun serveur ne garde trace de l’adresse utilisée par chaque hôte, d’où le qualificatif « sans état ». Avec DHCPv6 (RFC 8415), comme avec DHCP pour IPv4, un serveur choisit une adresse, la prête pour une durée limitée (bail) et en conserve la trace. Dans les deux cas, la passerelle par défaut est apprise par les RA. Il existe aussi une combinaison appelée DHCPv6 sans état, dans laquelle l’adresse est formée par SLAAC et seules d’autres informations, comme l’adresse du serveur DNS, proviennent de DHCPv6.

CritèreDHCPv6SLAAC
Qui choisit l’adresseLe serveur DHCPv6, qui en choisit une dans la plage qu’il gère et la prête pour une durée limitéeL’hôte lui-même, qui combine le préfixe appris par les RA avec un identifiant d’interface qu’il crée
ÉtatAvec état : le serveur enregistre quelle adresse il a prêtée à quel hôteSans état : aucun serveur n’enregistre les attributions d’adresses
PrérequisUn serveur DHCPv6 (et un agent relais s’il se trouve sur un autre lien), plus des RA indiquant aux hôtes d’utiliser DHCPv6Un routeur qui envoie des RA annonçant le préfixe
Messages utilisésUDP (port 546 pour les clients, 547 pour les serveurs et les agents relais) ; l’échange de base est Solicit, Advertise, Request et ReplySollicitation de routeur (RS) et annonce de routeur (RA) de la découverte des voisins ICMPv6 (NDP)
Passerelle par défautNon fournie par DHCPv6 ; on utilise l’adresse lien-local du routeur qui a envoyé la RAOn utilise l’adresse lien-local du routeur qui a envoyé la RA
Adresse du serveur DNSFournie dans une option DHCPv6Fournie dans une option de RA (RDNSS) ou par DHCPv6 sans état
Identifiant d’interface (64 bits de poids faible)Choisi par le serveurFormat EUI-64 dérivé de l’adresse MAC, ou valeur fondée sur des nombres aléatoires ; pour la confidentialité, de nombreux systèmes d’exploitation utilisent des valeurs aléatoires
Longueur de préfixe et délégationAttribue les adresses une par une : fonctionne donc aussi avec des préfixes autres que /64 ; peut aussi déléguer des préfixes entiers à des routeurs (DHCPv6-PD)Suppose en général un préfixe /64 ; ne peut pas déléguer de préfixes
Facilité de suivi des adressesLes enregistrements du serveur montrent quel hôte utilise quelle adresse ; les clients sont identifiés par un identifiant appelé DUIDAucun enregistrement côté serveur : pour trouver l’adresse d’un hôte, il faut par exemple consulter le cache des voisins du routeur

Les valeurs indiquées sont des ordres de grandeur typiques et varient selon la génération de procédé et le produit.

Quand choisir l'un ou l'autre ?

DHCPv6
Les réseaux d’entreprise qui veulent gérer et enregistrer quelle adresse a été attribuée à quel hôte, et les lignes des fournisseurs qui distribuent des préfixes aux routeurs (DHCPv6-PD). Certains systèmes d’exploitation d’hôtes ne peuvent pas obtenir d’adresse par DHCPv6 : vérifiez la prise en charge.
SLAAC
Lorsque les adresses doivent être distribuées simplement, sans faire fonctionner de serveur, comme à domicile et dans de nombreux LAN. Les informations de serveur DNS sont fournies par l’option RDNSS des RA ou par DHCPv6 sans état.

Questions fréquentes

Les annonces de routeur (RA) restent-elles nécessaires avec DHCPv6 ?

Oui. DHCPv6 ne peut pas fournir de passerelle par défaut ; les hôtes utilisent comme passerelle par défaut l’adresse lien-local du routeur qui a envoyé la RA. Les RA indiquent aussi aux hôtes, par le drapeau M (Managed), d’obtenir leurs adresses par DHCPv6, et par le drapeau O (Other), d’obtenir d’autres informations, comme les serveurs DNS, par DHCPv6.

Qu’est-ce que le DHCPv6 sans état ?

Une configuration dans laquelle les hôtes forment eux-mêmes leurs adresses par SLAAC et n’obtiennent d’un serveur DHCPv6 que des informations autres que l’adresse, comme les adresses des serveurs DNS. Le serveur n’enregistre pas quelle adresse appartient à quel hôte, d’où « sans état ». Les hôtes y sont invités par une RA dont le drapeau M vaut 0 et le drapeau O vaut 1.

Comment SLAAC évite-t-il les adresses en double ?

Avant d’utiliser une adresse qu’il a formée, l’hôte vérifie par la découverte des voisins qu’aucun autre appareil n’utilise la même adresse. C’est la détection d’adresse dupliquée (DAD). Une adresse détectée comme dupliquée n’est pas utilisée. Les adresses obtenues par DHCPv6 sont vérifiées de la même façon.

Peut-on suivre un hôte à partir de son adresse SLAAC ?

Avec un identifiant d’interface EUI-64 dérivé de l’adresse MAC, les 64 bits de poids faible sont identiques sur tous les réseaux, ce qui facilite le suivi de l’hôte. C’est pourquoi on utilise des identifiants d’interface d’apparence aléatoire et différents selon le réseau (RFC 7217), ainsi que des adresses temporaires qui changent au fil du temps (RFC 8981).

Vérifier vos connaissances

En IPv6, quelle plage contient les adresses lien-local, qui ne servent qu'à l'intérieur d'un même lien et sont toujours configurées automatiquement sur chaque interface qui utilise IPv6 ?

  1. A2001:db8::/32
  2. Bff00::/8
  3. Cfe80::/10
Afficher la réponse et l'explication

Réponse : C. fe80::/10

Les adresses lien-local appartiennent à la plage fe80::/10 ; elles ne sont pas transmises au-delà d'un routeur et ne servent qu'aux communications à l'intérieur d'un même lien. Elles sont utilisées pour des échanges comme la découverte des voisins (NDP) et les annonces de routeur, et la passerelle par défaut d'un hôte est normalement, elle aussi, l'adresse lien-local du routeur. 2001:db8::/32 est une plage réservée aux exemples dans les explications et les documents (adresses de documentation). ff00::/8 contient les adresses de multidiffusion ; IPv6 utilise la multidiffusion à la place de la diffusion.

Avec SLAAC (autoconfiguration d'adresse sans état) d'IPv6, comment un hôte crée-t-il une adresse unicast globale ?

  1. AIl interroge un serveur DHCPv6 et loue pour une durée déterminée une adresse de 128 bits gérée par le serveur
  2. BIl combine le préfixe /64 contenu dans l'annonce de routeur (RA) envoyée par un routeur avec un identifiant d'interface (les 64 bits de poids faible) qu'il crée lui-même, et utilise l'adresse après avoir vérifié qu'aucun autre équipement n'a la même adresse
  3. CIl place telle quelle sa propre adresse IPv4 dans les 32 bits de poids faible et remplit les bits de poids fort avec une valeur commençant par fe80
Afficher la réponse et l'explication

Réponse : B. Il combine le préfixe /64 contenu dans l'annonce de routeur (RA) envoyée par un routeur avec un identifiant d'interface (les 64 bits de poids faible) qu'il crée lui-même, et utilise l'adresse après avoir vérifié qu'aucun autre équipement n'a la même adresse

Avec SLAAC, un hôte apprend le préfixe de son lien (normalement un /64) grâce aux annonces de routeur (RA) que les routeurs envoient périodiquement ou à la demande. Il le combine avec un identifiant d'interface, soit au format EUI-64 dérivé de son adresse MAC, soit fondé sur une valeur aléatoire, pour former une adresse. Avant de l'utiliser, l'hôte vérifie au moyen de la découverte des voisins qu'aucun autre équipement n'utilise la même adresse (détection d'adresse dupliquée, DAD). L'adresse lien-local du routeur qui a envoyé la RA devient la passerelle par défaut, et comme aucun serveur ne gère l'attribution des adresses, on parle d'autoconfiguration « sans état ». Les adresses des serveurs DNS sont fournies par une option de la RA ou par DHCPv6 sans état.

Une interface dont l'adresse MAC est 00-1A-2B-3C-4D-5E crée par SLAAC une adresse à partir du préfixe 2001:db8:1:1::/64 et d'un identifiant d'interface au format EUI-64. Quelle adresse obtient-on ?

  1. A2001:db8:1:1:21a:2bff:fe3c:4d5e
  2. B2001:db8:1:1:1a:2bff:fe3c:4d5e
  3. C2001:db8:1:1:21a:2bfe:ff3c:4d5e
Afficher la réponse et l'explication

Réponse : A. 2001:db8:1:1:21a:2bff:fe3c:4d5e

Au format EUI-64, l'adresse MAC de 48 bits est coupée en ses 24 bits de poids fort et ses 24 bits de poids faible, et l'on insère FF-FE entre les deux pour obtenir 64 bits. Insérée entre 00-1A-2B et 3C-4D-5E, cette valeur donne 00-1A-2B-FF-FE-3C-4D-5E. En outre, le deuxième bit de poids faible du premier octet (le bit U/L) est inversé : 00 devient 02, ce qui donne 02-1A-2B-FF-FE-3C-4D-5E. En groupant par 16 bits et en supprimant les zéros de tête de chaque groupe, on obtient 21a:2bff:fe3c:4d5e, et avec le préfixe, l'adresse est 2001:db8:1:1:21a:2bff:fe3c:4d5e. Comme une adresse qui laisse voir l'adresse MAC permet de suivre plus facilement un hôte, la plupart des systèmes d'exploitation actuels utilisent des identifiants d'interface fondés sur des valeurs aléatoires.

  1. Les hôtes du VLAN 20 (192.168.20.0/24) doivent obtenir leurs adresses auprès d'un serveur DHCP, 10.0.0.5, situé sur un autre réseau. On configure donc un agent de relais DHCP sur l'interface 192.168.20.1 du commutateur L3, qui est la passerelle par défaut du VLAN 20. Quelle description du fonctionnement de l'agent de relais est correcte ?
  2. Lorsqu'un terminal obtient une adresse IP par DHCP, quel est l'ordre correct des messages ?

Questions d'entraînement sur Conception et exploitation des réseaux

Termes clés expliqués

SLAAC (autoconfiguration d'adresse sans état)
Mécanisme d'IPv6 par lequel un hôte apprend le préfixe du réseau (normalement un /64) grâce aux annonces de routeur (RA) envoyées par les routeurs, et le combine avec un identifiant d'interface qu'il crée lui-même pour configurer automatiquement une adresse. L'identifiant d'interface est soit au format EUI-64 dérivé de l'adresse MAC, soit fondé sur une valeur aléatoire pour empêcher le suivi. Avant d'utiliser l'adresse, l'hôte vérifie par la détection d'adresse dupliquée (DAD) qu'aucun autre équipement ne l'utilise.
DHCP (Dynamic Host Configuration Protocol)
Protocole qui attribue automatiquement, pour une durée limitée, aux terminaux qui se connectent à un réseau une adresse IP, un masque de sous-réseau, une passerelle par défaut, des serveurs DNS et d'autres paramètres.
IPv6
Version 6 d'IP. Elle porte les adresses à 128 bits, écrites en huit groupes de 16 bits en hexadécimal, comme 2001:db8::1. L'en-tête, simplifié, a une longueur fixe de 40 octets, et les routeurs du parcours ne fragmentent pas les paquets. Elle n'est pas compatible avec IPv4 : la transition s'appuie donc sur la double pile (dual stack), qui fait fonctionner les deux à la fois, et sur des mécanismes de traduction.
Passerelle par défaut
Routeur auquel un terminal confie les paquets destinés à d'autres réseaux. Le terminal utilise son masque de sous-réseau pour déterminer si une destination est sur le même réseau, et l'envoie à ce routeur dans le cas contraire.
DNS (Domain Name System)
Système, géré de façon distribuée par des serveurs du monde entier, qui associe des noms de domaine comme www.example.com aux adresses IP utilisées pour la communication.
Adresse MAC
Adresse de 48 bits utilisée en Ethernet et en LAN sans fil pour désigner les équipements au sein d'un même réseau. Les 24 bits de poids fort identifient le fabricant, et l'adresse est attribuée à chaque interface lors de la fabrication.
ICMP (Internet Control Message Protocol)
Protocole qui signale les erreurs et les états de la communication IP. Il indique par exemple à l'expéditeur qu'une destination est injoignable (Destination Unreachable) ou que le TTL d'un paquet a atteint 0 (Time Exceeded). ping utilise des requêtes et des réponses d'écho pour vérifier l'accessibilité et mesurer le RTT, et traceroute utilise les messages Time Exceeded pour retracer un chemin. En IPv6, ICMPv6 assure aussi, entre autres, la découverte des voisins.

Comparatifs associés