DHCPv6 et SLAAC
Définition
IPv6 offre trois façons d'attribuer une adresse à une interface : SLAAC (Stateless Address Autoconfiguration, sans état côté serveur), DHCPv6 stateful (le serveur gère les adresses comme en IPv4), et un mode mixte. La méthode dépend des drapeaux M (Managed) et O (Other) portés par les Router Advertisements émis par le routeur du premier hop.
Contexte
Le sujet apparaît dans le blueprint 200-301 via les topics adressage IPv6 et DHCP/DNS (4.3, section adressage). L'examen demande de retenir le comportement des trois modes, le rôle des RA, et la différence fondamentale avec DHCPv4 : en IPv6, le routeur annonce son préfixe et le client se construit son adresse, là où DHCPv4 lui envoie une adresse complète.
Détails techniques
SLAAC en quatre temps
- Le client génère une adresse link-local :
FE80::suivi de l'interface identifiée, en général en EUI-64 à partir de l'adresse MAC. - Il vérifie l'unicité de cette adresse par Duplicate Address Detection (DAD) : Neighbor Solicitation pour l'adresse cible, si personne ne répond elle est utilisable.
- Il écoute les Router Advertisements (RA) multicast vers
FF02::1. Le RA transporte le préfixe /64, le MTU, et les drapeaux. - Il combine préfixe du RA + identifiant d'interface pour former son adresse globale. Aucun état n'est stocké côté routeur : le serveur ne sait pas qui a quoi, c'est le sens du mot stateless.
Les drapeaux du Router Advertisement
Le champ flags du RA contient six bits utiles, dont deux commandent l'autoconfiguration :
| M | O | Mode | Adresse globale via | Autres options (DNS, NTP) via |
|---|---|---|---|---|
| 0 | 0 | SLAAC pur | RA (EUI-64 ou adresses privées) | RA (RDNSS, option 25) |
| 0 | 1 | SLAAC + DHCPv6 stateless | RA | DHCPv6 (Information-request) |
| 1 | 0 | DHCPv6 stateful | DHCPv6 | DHCPv6 |
| 1 | 1 | DHCPv6 stateful | DHCPv6 | DHCPv6 |
Le bit A (Managed) dit "adresse-toi à un serveur DHCPv6 pour ton IP" ; le bit O (Other) dit "l'adresse vient du RA mais va chercher les options chez DHCPv6". En pratique les étiquettes exactes des flags IOS sont Managed address configuration et Other configuration dans la sortie de show ipv6 interface.
Messages DHCPv6
DHCPv6 a été redéfini par la RFC 3315 (puis 8415). Il n'utilise pas de broadcast : les messages transitent en multicast IPv6 vers le groupe des agents DHCPv6 FF02::1:2, ports UDP 546 (client) et 547 (serveur), ou en unicast. L'échange complet stateful est SARR : Solicit, Advertisement, Request, Reply. En mode stateless, le client envoie simplement un Information-request et reçoit un Reply. Un serveur stateful garde un état : leases, bindings, DUID (DHCP Unique Identifier) du client.
Configuration IOS
R1(config)# ipv6 unicast-routing
R1(config)# interface GigabitEthernet0/0
R1(config-if)# ipv6 address 2001:DB8:ACAD:10::1/64
R1(config-if)# ipv6 nd managed-config-flag
R1(config-if)# ipv6 nd other-config-flag
R1(config-if)# exit
R1(config)# ipv6 dhcp pool RESEAU10
R1(dhcpv6-config)# address prefix 2001:DB8:ACAD:10::/64
R1(dhcpv6-config)# dns-server 2001:DB8:ACAD:1::53
R1(config)# ipv6 dhcp server RESEAU10 interface GigabitEthernet0/0
Sans la commande ipv6 dhcp server, le routeur n'émet que des RA en mode SLAAC : c'est le comportement par défaut dès que l'interface est routable en IPv6. Côté vérification : show ipv6 dhcp binding, show ipv6 interface GigabitEthernet0/0 | section flags.
Adresses temporaires
Un même préfixe /64 permet de générer plusieurs adresses par interface. Windows active par défaut les adresses temporaires (RFC 8981, privacy extensions) pour la navigation, et conserve une adresse EUI-64 stable. L'exam demandait historiquement de savoir que la sortie show ipv6 interface liste alors deux adresses globales, une "temporary" et une "EUI-64".
Exemple concret
Un labo Packet Tracer avec R1 (G0/0 en 2001:DB8:CAFE:1::1/64) et un PC. Sans configuration DHCPv6, le PC obtient une adresse globale via SLAAC : RA reçu, préfixe 2001:DB8:CAFE:1::/64, identifiant issu du MAC. Le PC n'a en revanche aucun serveur DNS si le RA ne transporte pas d'option RDNSS. L'administrateur ajoute ipv6 nd other-config-flag sur R1 et un serveur DHCPv6 stateless avec dns-server : le PC garde son adresse SLAAC (le bit M reste à 0) mais envoie un Information-request et récupère le DNS. Vérification : show ipv6 interface affiche Other configuration flag is set.
Pièges fréquents
- Penser que SLAAC et DHCPv6 sont mutuellement exclusifs : le mode mixte (M=0, O=1) est le plus déployé.
- Oublier
ipv6 unicast-routingglobal : sans lui, pas de RA émis. - Un serveur DHCPv6 stateful sans le flag M dans le RA : les clients ne le découvriront jamais, ils resteront en SLAAC.
- En DHCPv6, pas de diffusion des adresses DNS par le RA sauf si l'implémentation supporte RDNSS (option 25) : sinon DHCPv6 stateless obligatoire.