Adressage IPv6 — Types & Notation
Structure des adresses IPv6, types (GUA, LLA, ULA, multicast), EUI-64, SLAAC, DHCPv6
Structure d'une adresse IPv6
128 bits = 8 groupes de 16 bits, séparés par ':'Chaque groupe = 4 chiffres hexadécimauxExemple complet (non compressé) :2001:0db8:0000:0000:0001:0000:0000:0001Règles de compression :1. Supprimer les zéros en tête DANS chaque groupe0db8 → db8 | 0001 → 1 | 0000 → 02. Remplacer une ou plusieurs suites de groupes à 0000 par '::'(une seule fois dans l'adresse)Exemples de compression :2001:0db8:0000:0000:0001:0000:0000:0001→ 2001:db8:0:0:1:0:0:1 (étape 1 seulement)→ 2001:db8::1:0:0:1 (étape 2 — remplace la suite la plus longue)NB : 2001:db8::1::1 est INVALIDE (double '::')fe80:0000:0000:0000:021a:2bff:fe3c:4d5e→ fe80::21a:2bff:fe3c:4d5e0000:0000:0000:0000:0000:0000:0000:0001→ ::1 (loopback)
Types d'adresses IPv6
| Type | Préfixe | Portée | Usage | |---------------------|---------------|---------------|----------------------------------------------------| | GUA (Global Unicast)| 2000::/3 | Global | Routage Internet — équivalent IP publique | | LLA (Link-Local) | fe80::/10 | Lien local | Obligatoire sur toute interface, non routable | | ULA (Unique Local) | fc00::/7 | Site | Équivalent RFC 1918 — fd00::/8 en pratique | | Loopback | ::1/128 | Hôte | Équivalent 127.0.0.1 | | Non spécifiée | ::/128 | — | Source avant assignation d'adresse | | Multicast | ff00::/8 | Variable | Groupes de diffusion (remplace broadcast) | | Anycast | — | Global | Même adresse sur plusieurs nœuds, routage au plus proche |
GUA — 2000::/3 (bits 001xxxxx...) :Plage effective : 2000:: à 3fff:ffff:...Structure typique : /48 site | /16 sous-réseau | /64 interfaceExemple : 2001:db8:1234:0001::1/64LLA — fe80::/10 :Toujours présente, générée automatiquement (EUI-64 ou aléatoire)Utilisée par NDP, OSPF, EIGRP comme source de helloNon routée — scope = segment Ethernet uniquementULA — fc00::/7 (fd00::/8 recommandé) :Bit L=1 → fd00::/8 (unique local, à usage pratique)40 bits aléatoires → unicité quasi-garantie entre sitesFormat : fdXX:XXXX:XXXX::/48
EUI-64 — Génération de l'identifiant d'interface
Convertir une adresse MAC 48 bits en identifiant d'interface 64 bits :1. Diviser le MAC en deux moitiés de 3 octets2. Insérer FF:FE au milieu3. Inverser le bit U/L (bit 7 = Universal/Local) du premier octetbit 7 à 0 → mettre à 1 (MAC administré globalement → universel)bit 7 à 1 → mettre à 0Exemple : MAC 00:1A:2B:3C:4D:5E1. Diviser : 00:1A:2B | 3C:4D:5E2. Insérer : 00:1A:2B:FF:FE:3C:4D:5E3. Bit U/L : 00 = 00000000 → bit 7 → 00000010 = 02Résultat EUI-64 : 02:1A:2B:FF:FE:3C:4D:5E → 021a:2bff:fe3c:4d5eLLA résultante : fe80::21a:2bff:fe3c:4d5eGUA résultante : 2001:db8:1::21a:2bff:fe3c:4d5e/64Note : Privacy Extensions (RFC 4941) génèrent une partie interfacealéatoire et rotative pour les hôtes clients — désactiver en prod serveur.
Multicast IPv6
Format : ffXY::/16X = flags (0 = bien connu, 1 = transitoire)Y = scope (1=nœud, 2=lien, 5=site, e=global)ff02:: = link-local multicast (scope=2, non routé)
| Adresse | Équivalent IPv4 | Usage | |---------------------|-------------------|-------------------------------------------| | ff02::1 | 224.0.0.1 | All nodes (tous les nœuds du lien) | | ff02::2 | 224.0.0.2 | All routers (tous les routeurs du lien) | | ff02::5 | 224.0.0.5 | OSPFv3 — All OSPF routers | | ff02::6 | 224.0.0.6 | OSPFv3 — All DR routers | | ff02::9 | 224.0.0.9 | RIPng routers | | ff02::a | 224.0.0.10 | EIGRP routers | | ff02::d | 224.0.0.13 | PIM routers | | ff02::fb | 224.0.0.251 | mDNS | | ff02::1:2 | — | DHCPv6 — All DHCP agents (relays/servers) | | ff02::1:3 | — | DHCPv6 — All DHCP servers | | ff02::1:ffXX:XXXX | — | Solicited-node multicast (NDP, par nœud) |
Solicited-node multicast :Préfixe ff02::1:ff00:0/104 + 24 derniers bits de l'adresse unicastEx : 2001:db8::21a:2bff:fe3c:4d5e → ff02::1:ff3c:4d5eUtilisé par NDP pour la résolution d'adresse (remplace ARP broadcast)
NDP — Neighbor Discovery Protocol
Remplace ARP (IPv4) — basé sur ICMPv6Messages NDP :RS (Router Solicitation) — hôte demande les infos réseau au routeurRA (Router Advertisement) — routeur annonce préfixe, gateway, flagsNS (Neighbor Solicitation) — résolution d'adresse (équiv. ARP request)NA (Neighbor Advertisement) — réponse à un NS (équiv. ARP reply)Redirect — routeur redirige vers meilleur next-hopFlags dans les RA :M (Managed) = 1 → DHCPv6 stateful pour l'adresseO (Other) = 1 → DHCPv6 stateless pour les infos DNS/domaineM=0, O=0 → SLAAC pur (pas de DHCPv6)
! Cisco — vérifications NDPshow ipv6 neighborsshow ipv6 neighbors detailclear ipv6 neighbors! Linuxip -6 neighip -6 neigh show dev eth0
SLAAC — Stateless Address Autoconfiguration
RFC 4862 — configuration automatique sans serveur DHCPProcessus :1. Interface génère une LLA (EUI-64 ou aléatoire) → test DAD2. Envoi d'un RS à ff02::2 (all routers)3. Routeur répond avec un RA : préfixe /64, gateway (LLA du routeur)4. Hôte construit son GUA : préfixe + partie interface (EUI-64 ou RFC 4941)5. DAD (Duplicate Address Detection) via NS/NA avant d'utiliser l'adresseConditions requises :- Sous-réseau DOIT être /64 (SLAAC n'est pas défini pour d'autres préfixes)- RA doit avoir le flag A (Autonomous) = 1DAD (Duplicate Address Detection) :NS vers solicited-node multicast de sa propre adresse tentativeSi NA reçu en retour → conflit → adresse non assignée
! Cisco — configuration SLAAC côté routeurconf tipv6 unicast-routing ! activer le routage IPv6interface GigabitEthernet0/0ipv6 address 2001:db8:1:1::/64 eui-64 ! ou adresse manuelleipv6 address fe80::1 link-local ! LLA manuelle (facilite troubleshooting)ipv6 nd ra-interval 30 ! intervalle RA (défaut 200s)no ipv6 nd ra suppress ! s'assurer que les RA sont envoyésno shutdown
DHCPv6 Stateful vs Stateless
Stateless (O=1, M=0) :L'adresse est auto-configurée via SLAACDHCPv6 fournit uniquement : DNS, domaine, NTP, etc.Cisco interface : ipv6 nd other-config-flagStateful (M=1) :DHCPv6 attribue l'adresse + infos DNSÉquivalent DHCPv4 classiqueCisco interface : ipv6 nd managed-config-flagLes deux flags sont dans les RA — les hôtes lisent M et O pour décider.
Configuration Cisco — référence rapide
conf t! Activer le routage IPv6 (obligatoire)ipv6 unicast-routing! Adresses sur une interfaceinterface GigabitEthernet0/0ipv6 address 2001:db8:1::1/64 ! GUA manuelleipv6 address fe80::1 link-local ! LLA manuelleipv6 enable ! active IPv6 sans adresse GUA (génère LLA auto)no shutdown! Vérificationsshow ipv6 interface briefshow ipv6 interface GigabitEthernet0/0show ipv6 routeshow ipv6 neighborsping ipv6 2001:db8:1::2ping ipv6 ff02::2 ! ping all-routers (debug)
Chaque interface Cisco avec ipv6 enable génère automatiquement une LLA fe80::/10 basée sur EUI-64. Forcer une LLA simple (ipv6 address fe80::1 link-local) sur tous les routeurs facilite le troubleshooting — dans les traces NDP et les tables de routage, fe80::1 est immédiatement identifiable.