DHCPv6 stateful et stateless
Définition
DHCPv6 est la version IPv6 du protocole DHCP, qui fournit des informations de configuration aux hôtes IPv6. Il existe en deux modes :
- Stateless DHCPv6 : fournit uniquement des paramètres supplémentaires (DNS, domaine) ; l'adresse IPv6 est obtenue via SLAAC
- Stateful DHCPv6 : fournit l'adresse IPv6 complète + les paramètres, comme un serveur DHCP classique
Contexte
La certification CCST couvre les deux modes de DHCPv6 car ils sont complémentaires au SLAAC. En entreprise, le mode stateful est souvent préféré pour garder un contrôle centralisé de l'attribution des adresses.
Détails techniques
Trois méthodes d'attribution d'adresse IPv6
| Méthode | Adresse fournie par | Infos supplémentaires (DNS, etc.) |
|---|---|---|
| SLAAC seul | L'hôte lui-même (EUI-64 ou aléatoire) | Non (sauf DNS via RDNSS dans le RA) |
| SLAAC + Stateless DHCPv6 | L'hôte lui-même | Oui (DHCPv6 fournit DNS, NTP, etc.) |
| Stateful DHCPv6 | Le serveur DHCPv6 | Oui (tout est centralisé) |
Contrôle par les flags du Router Advertisement (RA)
Le routeur indique aux hôtes quelle méthode utiliser via les flags M et O du message RA (ICMPv6 type 134) :
| Flag M | Flag O | Méthode |
|---|---|---|
| 0 | 0 | SLAAC seul |
| 0 | 1 | SLAAC + Stateless DHCPv6 (Other config) |
| 1 | 0 | Stateful DHCPv6 (Managed address) |
| 1 | 1 | Stateful DHCPv6 + infos de SLAAC |
Configuration Cisco — Stateless DHCPv6
! Serveur DHCPv6 stateless
Router(config)# ipv6 dhcp pool STATELESS-POOL
Router(config-dhcpv6)# dns-server 2001:db8::53
Router(config-dhcpv6)# domain-name example.com
Router(config)# interface GigabitEthernet 0/0
Router(config-if)# ipv6 nd other-config-flag ! Flag O = 1
Router(config-if)# ipv6 dhcp server STATELESS-POOL
Configuration Cisco — Stateful DHCPv6
! Serveur DHCPv6 stateful
Router(config)# ipv6 dhcp pool STATEFUL-POOL
Router(config-dhcpv6)# address prefix 2001:db8:1::/64
Router(config-dhcpv6)# dns-server 2001:db8::53
Router(config-dhcpv6)# domain-name example.com
Router(config)# interface GigabitEthernet 0/0
Router(config-if)# ipv6 nd managed-config-flag ! Flag M = 1
Router(config-if)# ipv6 dhcp server STATEFUL-POOL
Processus DHCPv6 (SARR)
| Étape | Message | Direction |
|---|---|---|
| Solicit | DHCPv6 Solicit | Client → multicast (ff02::1:2) |
| Advertise | DHCPv6 Advertise | Serveur → client |
| Request | DHCPv6 Request | Client → multicast |
| Reply | DHCPv6 Reply | Serveur → client |
En stateless, seuls 2 messages suffisent : Information-Request et Reply.
DHCPv6 Relay
Comme en IPv4, si le serveur DHCPv6 est sur un autre sous-réseau :
Router(config-if)# ipv6 dhcp relay destination 2001:db8:10::100
Exemple concret
Un réseau d'entreprise utilise SLAAC + Stateless DHCPv6. Le routeur annonce le préfixe 2001:db8:1::/64 dans ses RA (flag O=1). Les PC génèrent leur adresse via SLAAC puis contactent le serveur DHCPv6 pour obtenir l'adresse du serveur DNS interne (2001:db8::53) et le domaine de recherche.