ping6.net
Fondamentaux

DHCPv6 vs SLAAC : comment les appareils obtiennent des adresses IPv6

Comprenez les deux façons dont les appareils obtiennent des adresses IPv6 : SLAAC utilise les annonces de routeur, DHCPv6 utilise un serveur. Apprenez quand utiliser chacun.

ping6.net14 décembre 20249 min read
IPv6DHCPv6SLAACauto-configurationannonce de routeur

Quand un appareil rejoint un réseau IPv6, il a besoin d'une adresse. Contrairement à IPv4 où DHCP est l'approche standard, IPv6 offre deux mécanismes : SLAAC (Stateless Address Autoconfiguration) et DHCPv6. Comprendre quand utiliser chacun est essentiel pour les ingénieurs réseau.

TL;DR - Résumé rapide

Points clés :

  • SLAAC est sans état et automatique via Router Advertisements — aucun serveur nécessaire
  • DHCPv6 fournit un contrôle centralisé et un suivi des adresses comme DHCPv4
  • Les drapeaux M et O dans les Router Advertisements contrôlent quelle méthode utiliser

Aller à : SLAAC pour la configuration automatique, DHCPv6 pour la gestion centralisée, ou Lequel utiliser quand pour des conseils de déploiement.

SLAAC : auto-configuration sans état#

SLAAC permet aux appareils de se configurer eux-mêmes sans maintenir d'état sur le réseau. Le routeur envoie périodiquement des messages d'annonce de routeur (RA) contenant le préfixe réseau, et les appareils génèrent leurs propres adresses.

Comment fonctionnent les annonces de routeur#

Les routeurs diffusent en multicast des messages RA vers ff02::1 (multicast tous-nœuds) toutes les 200 secondes par défaut. Les appareils peuvent aussi demander un RA immédiatement en envoyant une sollicitation de routeur (RS) vers ff02::2 (multicast tous-routeurs).

Un RA contient :

  • Préfixe réseau (ex. 2001:db8::/64)
  • Adresse de passerelle par défaut
  • Durée de vie du préfixe (valide et préférée)
  • Drapeaux M et O (expliqués ci-dessous)

L'appareil combine le préfixe annoncé avec un ID d'interface auto-généré de 64 bits pour créer son adresse.

Génération d'ID d'interface#

Deux méthodes courantes existent :

EUI-64 (Extended Unique Identifier modifié) Dérive l'ID d'interface de l'adresse MAC. Pour la MAC 00:11:22:33:44:55 :

  1. Insérer ff:fe au milieu : 00:11:22:ff:fe:33:44:55
  2. Inverser le 7e bit : 02:11:22:ff:fe:33:44:55
  3. Résultat : 2001:db8::211:22ff:fe33:4455

C'est déterministe mais révèle l'identité matérielle, créant des problèmes de confidentialité.

Extensions de confidentialité (RFC 4941) Génère des ID d'interface aléatoires. Les systèmes d'exploitation modernes créent des adresses temporaires qui changent périodiquement (quotidiennement sur la plupart des systèmes). L'appareil maintient à la fois une adresse stable (pour les connexions entrantes) et des adresses temporaires (pour les connexions sortantes).

# Linux : voir les types d'adresses
ip -6 addr show eth0
 
# Vous verrez scope global pour les adresses stables
# et scope global temporary pour les adresses de confidentialité

Ce que SLAAC fournit#

SLAAC gère :

  • Attribution d'adresse IPv6
  • Passerelle par défaut
  • Longueur de préfixe

Ce qu'il ne fournit pas par défaut :

  • Serveurs DNS
  • Liste de recherche de domaine
  • Serveurs NTP

Option RDNSS (Recursive DNS Server) RFC 8106 permet aux routeurs d'annoncer les serveurs DNS dans les messages RA. La plupart des systèmes modernes supportent ceci, éliminant le besoin de DHCPv6 dans les réseaux simples.


DHCPv6 : configuration gérée#

DHCPv6 fonctionne de manière similaire à DHCPv4 : les clients demandent la configuration à un serveur. Il opère en deux modes.

DHCPv6 avec état#

Le serveur assigne des adresses et suit quel client a quelle adresse. Les clients effectuent un échange de quatre messages :

  1. Solicit : Le client demande la configuration
  2. Advertise : Le serveur offre une adresse
  3. Request : Le client accepte l'offre
  4. Reply : Le serveur confirme l'attribution

Les adresses sont louées avec des durées de vie préférées et valides, nécessitant un renouvellement.

DHCPv6 sans état#

Les appareils utilisent SLAAC pour les adresses mais interrogent DHCPv6 pour des options supplémentaires comme les serveurs DNS, le nom de domaine ou les serveurs NTP. Le serveur ne suit pas les adresses, d'où « sans état ».

Drapeaux M et O#

Les annonces de routeur contiennent deux drapeaux critiques :

Drapeau M (Managed Address Configuration) Quand mis à 1, les appareils doivent utiliser DHCPv6 pour obtenir des adresses. Les adresses SLAAC peuvent toujours être générées selon le drapeau A dans l'information de préfixe.

Drapeau O (Other Configuration) Quand mis à 1, les appareils doivent utiliser DHCPv6 pour obtenir des options supplémentaires (DNS, NTP, etc.) mais pas les adresses.

Combinaisons de drapeaux :

  • M=0, O=0 : SLAAC uniquement (utiliser RDNSS pour DNS)
  • M=0, O=1 : SLAAC + DHCPv6 sans état
  • M=1, O=0 : DHCPv6 pour les adresses (configuration rare)
  • M=1, O=1 : DHCPv6 pour les adresses et options

Comparaison SLAAC vs DHCPv6#

FonctionnalitéSLAACDHCPv6
Attribution d'adresseAutomatique (préfixe + ID interface)Assigné par serveur
État sur serveurAucunAvec état suit les liaisons
Configuration DNSRDNSS dans RA (RFC 8106)Option 23 (serveurs DNS)
Suivi d'adressePas possibleVisibilité complète
Complexité clientMinimaleNécessite client DHCPv6
Mode de défaillanceContinue de fonctionnerPoint unique de défaillance
Délégation de préfixeNon supportéeSupportée (DHCPv6-PD)

Configurations courantes#

SLAAC uniquement (avec RDNSS)#

Idéal pour les réseaux simples où le suivi d'adresses n'est pas requis. Exemple radvd.conf sur Linux :

interface eth0 {
    AdvSendAdvert on;
    prefix 2001:db8:1::/64 {
        AdvOnLink on;
        AdvAutonomous on;
    };
    RDNSS 2001:4860:4860::8888 2001:4860:4860::8844 {
        AdvRDNSSLifetime 300;
    };
};

Cette configuration fournit tout ce dont la plupart des clients ont besoin sans DHCPv6.

SLAAC + DHCPv6 sans état#

À utiliser quand RDNSS n'est pas supporté ou quand des options supplémentaires sont nécessaires. Définir le drapeau O dans radvd :

interface eth0 {
    AdvSendAdvert on;
    AdvOtherConfigFlag on;  # O=1
    prefix 2001:db8:1::/64 {
        AdvOnLink on;
        AdvAutonomous on;
    };
};

Le serveur DHCPv6 fournit DNS et autres options mais n'assigne pas d'adresses.

DHCPv6 uniquement (géré)#

Les entreprises préfèrent souvent ceci pour la responsabilité et le contrôle d'accès. Définir le drapeau M :

interface eth0 {
    AdvSendAdvert on;
    AdvManagedFlag on;  # M=1
    AdvOtherConfigFlag on;  # O=1
    prefix 2001:db8:1::/64 {
        AdvOnLink on;
        AdvAutonomous off;  # Ne pas utiliser SLAAC
    };
};

Note : certains clients généreront quand même des adresses link-local et peuvent créer des adresses SLAAC malgré AdvAutonomous off. Les politiques de sécurité réseau ne doivent pas se fier uniquement à la désactivation de SLAAC.


Lequel utiliser quand#

Utilisez SLAAC quand :

  • Réseaux petits à moyens
  • Les appareils sont de confiance
  • Le suivi d'adresses n'est pas requis
  • La simplicité est prioritaire
  • Tous les clients supportent RDNSS

Utilisez DHCPv6 quand :

  • Besoin de gestion d'adresses centralisée
  • La conformité nécessite la journalisation des adresses
  • Besoin de délégation de préfixe (FAI vers routeur client)
  • Besoin de fournir des options complexes au-delà du DNS
  • Réseaux Windows (historiquement meilleur support DHCPv6)

Approche hybride (SLAAC + DHCPv6 sans état) :

  • Bon compromis pour beaucoup de réseaux
  • Résilient (SLAAC fonctionne si DHCPv6 échoue)
  • Fournit de la flexibilité pour des options supplémentaires

Dépannage de l'attribution d'adresse#

L'appareil n'a que link-local (fe80::/10) Aucune annonce de routeur reçue. Vérifiez :

# Linux : capturer les RA
tcpdump -i eth0 'icmp6 && ip6[40] == 134'
 
# Vérifier que le routeur envoie des RA
radvdump

L'appareil a une adresse SLAAC mais pas de DNS Le routeur n'envoie pas RDNSS, ou le client ne le supporte pas. Vérifiez le contenu du RA :

radvdump | grep RDNSS

Si manquant, ajoutez RDNSS à la configuration du routeur ou activez DHCPv6 sans état.

DHCPv6 ne fonctionne pas Vérifiez que le drapeau M ou O est défini dans les RA :

radvdump | grep -E "M flag|O flag"

Vérifiez que le serveur DHCPv6 fonctionne et est accessible sur le port UDP 547 :

# Côté serveur
ss -ulnp | grep 547
 
# Côté client
tcpdump -i eth0 port 547

Plusieurs adresses sur l'interface C'est normal. Vous pourriez voir :

  • Adresse link-local (toujours présente)
  • Adresse SLAAC stable (EUI-64)
  • Adresses SLAAC temporaires (extensions de confidentialité)
  • Adresse DHCPv6 (si utilisation de DHCPv6 avec état)

Toutes sont valides ; l'OS sélectionne l'adresse source appropriée selon RFC 6724.

Articles connexes#

La plupart des réseaux modernes fonctionnent bien avec SLAAC + RDNSS pour la simplicité, ou SLAAC + DHCPv6 sans état pour une compatibilité plus large. Réservez le DHCPv6 complètement géré pour les environnements avec des exigences spécifiques de conformité ou de journalisation. Quel que soit votre choix, documentez votre décision et configurez-le de manière cohérente sur votre réseau.

Questions fréquentes#

Puis-je utiliser SLAAC et DHCPv6 en même temps ?

Oui. C'est ce qu'on appelle une approche hybride. Les appareils peuvent obtenir leurs adresses via SLAAC et une configuration supplémentaire (comme les serveurs DNS) via DHCPv6 sans état. De nombreux réseaux utilisent cette combinaison pour obtenir les avantages des deux méthodes.

Quelle méthode est la plus sécurisée ?

Ni SLAAC ni DHCPv6 n'est intrinsèquement plus sécurisé. Les deux peuvent être vulnérables aux annonces de routeur malveillantes ou aux serveurs DHCPv6 malveillants. La sécurité provient d'une segmentation réseau appropriée, RA Guard, DHCPv6 Shield et règles de pare-feu, pas du choix de la méthode d'attribution d'adresses.

SLAAC fonctionne-t-il sans routeur ?

Non. SLAAC nécessite des annonces de routeur pour fournir le préfixe réseau. Sans routeur envoyant des RA, les appareils ne configureront pas d'adresses IPv6 globales via SLAAC. Ils n'auront que des adresses link-local (fe80::/10).

Pourquoi certains systèmes d'exploitation préfèrent-ils SLAAC à DHCPv6 ?

SLAAC est plus simple, sans état et intégré dans la spécification IPv6 dès le départ. Il nécessite moins d'infrastructure et de configuration. Certains éditeurs d'OS (notamment Apple) ont priorisé le support SLAAC car il s'aligne avec la philosophie de conception IPv6 d'autoconfiguration.