NDP — Neighbor Discovery Protocol
Le protocole NDP (ICMPv6) remplace ARP en IPv6 : résolution d'adresses, découverte de routeurs, autoconfiguration SLAAC et détection de doublons.
1 mars 2026Peran4 min de lecture
#ipv6#ndp#icmpv6#layer3#arp#slaac
Introduction
NDP (Neighbor Discovery Protocol) est défini dans la RFC 4861. Il s'appuie sur ICMPv6 et remplace plusieurs fonctions d'IPv4 : ARP, ICMP Router Discovery et ICMP Redirect. NDP utilise des messages ICMPv6 et les adresses multicast pour fonctionner, sans broadcast.
Points Clés
- NDP repose entièrement sur ICMPv6 (pas d'ARP en IPv6).
- Toutes les opérations NDP utilisent des adresses multicast (jamais de broadcast).
- Cinq types de messages NDP couvrent toutes les fonctions de découverte.
- SLAAC (Stateless Address Autoconfiguration) permet à un hôte de configurer automatiquement son adresse sans DHCP.
- DAD (Duplicate Address Detection) vérifie l'unicité d'une adresse avant de l'utiliser.
- La table de voisinage est l'équivalent IPv6 de la table ARP.
Les 5 Messages NDP (ICMPv6)
| Message | Type ICMPv6 | Rôle |
|---|---|---|
| RS — Router Solicitation | 133 | Hôte → sollicite les routeurs présents |
| RA — Router Advertisement | 134 | Routeur → annonce préfixe, MTU, passerelle |
| NS — Neighbor Solicitation | 135 | Résolution d'adresse (comme ARP Request) |
| NA — Neighbor Advertisement | 136 | Réponse à NS (comme ARP Reply) |
| Redirect | 137 | Routeur → informe d'un meilleur prochain saut |
Processus de Résolution d'Adresse (NS/NA)
Hôte A veut joindre 2001:DB8::2
1. A envoie NS → Multicast Solicited-Node : FF02::1:FF00:0002
"Qui possède 2001:DB8::2 ? Mon adresse MAC est XX:XX"
2. B répond NA → Unicast vers A
"C'est moi ! MAC = YY:YY"
3. A met à jour sa table de voisinage (NEI table)Processus SLAAC (Autoconfiguration Sans État)
slaac-process.txttext
1. L'hôte génère une adresse Link-Local : FE80::/10 + EUI-64 ou aléatoire
2. L'hôte effectue le DAD sur cette adresse link-local
3. L'hôte envoie un RS (Router Solicitation) vers FF02::2
4. Le routeur répond avec un RA contenant :
- Préfixe réseau (ex: 2001:DB8:1::/64)
- Durée de validité du préfixe
- Adresse du routeur (passerelle par défaut)
- Flags M et O (gestion DHCPv6)
5. L'hôte combine préfixe + Interface ID (EUI-64) → Adresse unicast globale complète
6. L'hôte effectue le DAD sur la nouvelle adresse globale
DAD — Détection de Doublons
Avant d'utiliser toute adresse, un hôte envoie un NS avec comme source ::
(adresse non spécifiée) vers l'adresse Solicited-Node correspondante.
Si personne ne répond → l'adresse est unique → elle est assignée.
dad-process.txttext
Hôte X veut utiliser 2001:DB8:1::A8BB:CCFF:FEDD:EEFF
NS source :: → dest FF02::1:FFDD:EEFF
"Y'a-t-il déjà quelqu'un avec cette adresse ?"
[Attente ~1 seconde]
→ Pas de réponse → l'adresse est valide
→ Réponse NA → DAD échec → adresse non utilisable (conflit)
Configuration du Router Advertisement (Cisco)
ndp-ra-config.shcisco-ios
! Activer le routage IPv6 (prérequis pour envoyer des RA)
Router(config)# ipv6 unicast-routing
! Configurer l'intervalle des RA (défaut : 200 secondes)
Router(config-if)# ipv6 nd ra-interval 60
! Supprimer les RA (mode "silent" / no-RA)
Router(config-if)# ipv6 nd ra suppress
! Forcer l'utilisation de DHCPv6 avec stateful (flag M=1)
Router(config-if)# ipv6 nd managed-config-flag
! Indiquer que des infos supplémentaires sont dans DHCPv6 (flag O=1)
Router(config-if)# ipv6 nd other-config-flag
! Définir une adresse de routeur par défaut dans RA
Router(config-if)# ipv6 address FE80::1 link-local
Vérification NDP
ndp-verification.shcisco-ios
! Table de voisinage (équivalent de "show arp")
Router# show ipv6 neighbors
! Statut des interfaces avec NDP
Router# show ipv6 interface GigabitEthernet0/0
! Déboguer les messages NDP en temps réel
Router# debug ipv6 nd
Flux NDP : SLAAC complet
Live
[Hôte] [Routeur]
│── RS → FF02::2 ──────────────>│
│<── RA (préfixe, gateway) ─────│
│ │
│── NS (DAD) → FF02::1:FF.. ──>│ (pas de réponse)
│ │
[Adresse configurée automatiquement]
Liens Connexes
- Pour comprendre les adresses multicast utilisées par NDP, voir Adressage IPv6.
- Pour la configuration réseau complète, voir Routage Statique IPv6.
- Dans les environnements mixtes, voir Transition IPv4/IPv6.