ANALOGIE SYSTÉMIQUE
Thème_central: "L'Urbanisme Dynamique : Autoconstruction vs Cadastre Centralisé"
Métaphore: Un nouveau quartier (réseau IPv6) est loti. L'urbaniste (le routeur) définit les règles du plan (préfixe /64, passerelle). Les propriétaires (hôtes) peuvent alors :
- S'Autoconstruire (SLAAC Pur) : Chacun bâtit sa maison (adresse) selon des normes, sans registre central. Simple, scalable.
- Consulter la Mairie pour les Services (DHCPv6 Stateless) : Ils construisent leur maison mais obtiennent l'eau/électricité (DNS, NTP) d'un service municipal qui ne suit pas qui habite où.
- Obtenir un Permis de Construire Centralisé (DHCPv6 Stateful) : Une mairie (serveur) attribue chaque parcelle et tous les services, gardant un cadastre exhaustif.
Éléments_clés:
- Plan de Zonage (RA) : Définit le préfixe (rue) et la sortie (passerelle). Indicateurs A/O/M = types de permis.
- Autoconstruction (SLAAC) : Méthode EUI-64 (basée sur MAC) ou aléatoire (pour la confidentialité).
- Vérification de l'Adresse (DAD) : Crier "Cette adresse est-elle libre ?" avant d'emménager.
- Cadastre (Serveur Stateful) : Base de données des baux (bindings) DHCPv6.
Risque_analogique: Un faux urbaniste (rogue RA) qui donne de mauvais plans, menant à un quartier dysfonctionnel ou isolé.
MODÈLE MENTAL
NOYAU DUR (Les lois Immuables)
LOI #1 : La passerelle par défaut est UNIQUEMENT fournie par le RA ICMPv6, JAMAIS par DHCPv6.
Preuve : C'est l'adresse source LLA du RA. Un serveur DHCPv6 (stateful ou stateless) ne contient pas ce champ. Oublier ipv6 unicast-routing sur le routeur = pas de RA = pas de gateway pour les hôtes.
LOI #2 : Le comportement de l'hôte est dicté par la combinaison BINAIRE des indicateurs A, O, M dans le RA.
Preuve : C'est le noyau du module. A=1 = "Générez votre adresse". M=1 = "Obtenez tout du DHCP". O=1 = "Obtenez des infos supplémentaires du DHCP". A=1,M=1 sur certains OS crée DEUX adresses.
LOI #3 : L'adresse Lien-Local (LLA) FE80::/10 est MANDATOIRE et auto-générée pour toute communication IPv6 sur le lien.
Preuve : C'est la première adresse créée, utilisée pour le DAD, les RS/RA, et souvent comme adresse source. Sans LLA, pas de couche 3 IPv6 opérationnelle sur l'interface.
LOI #4 : Pour la sécurité et la vie privée, l'ID d'interface généré aléatoirement doit être préféré à EUI-64.
Preuve : EUI-64 embarque l'adresse MAC (OUI fixe), permettant le traçage de l'appareil. Windows 10+ et iOS utilisent l'aléatoire par défaut.
LOI #5 : Un agent de relais DHCPv6 est REQUIS lorsque le client et le serveur sont sur des sous-réseaux IPv6 différents.
Preuve : Les messages DHCPv6 (SOLICIT, etc.) sont de portée lien-local. Sans relais (ipv6 dhcp relay destination), ils ne traversent pas le routeur.
PROFONDEUR SÉCURITÉ & MÉTIER
🧠 Intégration Métier (Admin Réseau) :
Dans un parc mature, on n'utilise presque jamais SLAAC seul. Le choix est entre :
- DHCPv6 Stateless (Scalable, Centralisé) : Adresses gérées par l'hôte (SLAAC), paramètres critiques (DNS, NTP, domaine) gérés de façon centralisée et versionnée via un serveur DHCPv6. Permet un inventory léger.
- DHCPv6 Stateful (Audit, Contrôle) : Nécessaire pour le tracking d'adresses exact (compliance), la réservation d'adresses, ou lorsque la politique interdit l'auto-configuration. Plus lourd à gérer.
# Exemple de playbook Ansible pour standardiser la config DHCPv6 Stateless
- name: Configure DHCPv6 Stateless sur les routers d'accès
hosts: edge_routers
tasks:
- name: Activer le routage IPv6
cisco.ios.ios_config:
lines: ipv6 unicast-routing
- name: Configurer le pool DHCPv6 Stateless
cisco.ios.ios_config:
lines:
- ipv6 dhcp pool DHCPv6-STATELESS
- dns-server 2001:4860:4860::8888
- domain-name enterprise.com
- information refresh 86400
- name: Appliquer le pool et les flags sur l'interface VLAN
cisco.ios.ios_config:
lines:
- ipv6 dhcp server DHCPv6-STATELESS
- ipv6 nd other-config-flag
parents: interface Vlan10
🚨 RISQUE PRINCIPAL : Usurpation de Routeur (Rogue RA) & Empoisonnement de Configuration
→ Attaque Type : Rogue Router Advertisement. Un attaquant connecté au réseau envoie des RA malveillants avec un M=1 ou un préfixe incorrect.
→ Détection :
show ipv6 routers sur un hôte. Surveiller les logs système pour des changements de gateway IPv6 inattendus.
debug ipv6 nd sur un routeur Cisco (à utiliser avec précaution) pour voir les RA en transit.
→ Mitigation Immédiate :
! Sur les ports d'accès des switches
interface GigabitEthernet0/1
ipv6 nd raguard
ipv6 dhcp guard
RA Guard bloque les RA non autorisés sur les ports hôtes. DHCPv6 Guard bloque les messages de serveurs DHCPv6 non autorisés.
→ Intégration Entreprise : Ces commandes guard doivent faire partie de votre baseline de sécurité des ports d'accès déployée via Ansible/Terraform. Les alertes SIEM doivent être configurées pour détecter les changements de gateway IPv6 sur les serveurs critiques.
PROFONDEUR EXAMEN CCNA
? Piège Fréquent #1 : "Quels indicateurs RA activent le DHCPv6 Stateless ?" Beaucoup répondent O=1. La réponse vraie est A=1 ET O=1. A=1 déclenche SLAAC, O=1 dit "va chercher le reste en DHCP".
? Piège Fréquent #2 : La passerelle par défaut. L'examen aime demander "D'où l'hôte obtient-il son adresse de passerelle IPv6 ?" Réponse : Uniquement depuis l'adresse source LLA du RA. Pas du DHCP.
Détail Oublié #3 : Les ports UDP. Client (546) ← Serveur (547). C'est l'inverse de DHCPv4 (client 68, serveur 67).
Un hôte reçoit un RA avec les flags A=1, O=0, M=1. Quelle adresse IPv6 l'hôte Windows 10 utilisera-t-il pour envoyer du trafic vers Internet ?
Analyse : Bien que rare, A=1,M=1 est possible. Windows créera DEUX adresses mais utilisera par défaut celle obtenue par DHCPv6 (stateful). Réponse C.
LAB COMPLET : DE LA CONFIG À L'AUTOMATISATION
Niveau 1 (CCNA) : Configuration Fondamentale
! Sur le Routeur (R1) - Servant de Serveur DHCPv6 Stateful et envoyant des RA
R1(config)# ipv6 unicast-routing ! ÉTAPE ABSOLUMENT CRITIQUE
R1(config)# ipv6 dhcp pool LAN-POOL
R1(config-dhcpv6)# address prefix 2001:DB8:ACAD:1::/64
R1(config-dhcpv6)# dns-server 2001:4860:4860::8888
R1(config-dhcpv6)# domain-name ccna-lab.com
R1(config-dhcpv6)# exit
R1(config)# interface GigabitEthernet0/0
R1(config-if)# ipv6 address 2001:DB8:ACAD:1::1/64
R1(config-if)# ipv6 dhcp server LAN-POOL
R1(config-if)# ipv6 nd managed-config-flag ! Force M=1 pour le Stateful
R1(config-if)# ipv6 nd prefix default no-autoconfig ! Désactive A=1 pour éviter 2 adresses
Vérification : show ipv6 dhcp pool show ipv6 dhcp binding
Niveau 2 (Production Sécurisée) : Hardening
! Sur le Switch (Couche 2) - Protection contre les Rogue RA/DHCPv6
SW1(config)# interface range GigabitEthernet0/1-24
SW1(config-if-range)# switchport mode access
SW1(config-if-range)# ipv6 nd raguard ! Bloque les RA sur les ports hôtes
SW1(config-if-range)# ipv6 dhcp guard ! Bloque les messages de serveur DHCPv6 non autorisés
! Option : Politique de destination des RA bloqués
SW1(config-if-range)# ipv6 nd raguard policy drop
Risque si omis : Un attaquant sur un port peut usurper le rôle de routeur ou de serveur DHCPv6, interceptant ou redirigeant le trafic.
Niveau 3 (Expert/Automatisation) : Script & Scale
#!/usr/bin/env python3
# Script Python (Netmiko) pour auditer la config DHCPv6 sur un parc de routeurs
from netmiko import ConnectHandler
import json
device = {
'device_type': 'cisco_ios',
'host': '192.168.1.1',
'username': 'admin',
'password': 'secret',
}
commands = [
'show ipv6 interface brief',
'show ipv6 dhcp pool',
'show run | section ipv6 dhcp',
'show ipv6 neighbors'
]
with ConnectHandler(**device) as net_connect:
output = {}
for cmd in commands:
output[cmd] = net_connect.send_command(cmd, use_textfsm=True)
# Analyse : Vérifier si 'ipv6 unicast-routing' est présent, cohérence des pools, etc.
print(json.dumps(output, indent=2))
→ Avantage : Audit automatisé de la conformité, détection des configs manquantes (ipv6 unicast-routing), gain de temps massif.
SCÉNARIO DE DÉPANNAGE AVANCÉ
Symptôme Complexe : Les hôtes sur le VLAN 30 obtiennent une adresse IPv6 et une passerelle, mais ne peuvent pas résoudre les noms de domaine. Les hôtes sur le VLAN 20 fonctionnent parfaitement.
- Vérifier la méthode sur le VLAN 30. Sur un hôte :
ipconfig /all(Win) ouip -6 addr show(Linux). L'hôte a-t-il une ou deux adresses IPv6 globales ?- Si une seule adresse GUA : Méthode probable = SLAAC seul (A=1, O=0, M=0). Aller à l'étape 2.
- Si deux adresses GUA : Méthode = SLAAC + DHCPv6 Stateful (A=1,M=1). Problème différent. Aller à l'étape 3.
- Pour SLAAC seul : Le DNS n'est PAS fourni. C'est le comportement attendu. Le problème n'est pas une panne, mais une mauvaise conception. La solution est de passer en DHCPv6 Stateless (A=1,O=1).
- Pour SLAAC + Stateful : Vérifier la configuration du pool DHCPv6 sur le routeur.
Si le serveur DNS est configuré, vérifier la connectivité entre l'hôte et le serveur DNS (R1# show run | section ipv6 dhcp pool VLAN30-POOL ! Vérifier la ligne 'dns-server' R1# show ipv6 dhcp pool VLAN30-POOL ! Vérifier l'activité et les paramètresping 2001:4860:4860::8888).
Root Cause Probable (pour l'étape 2) : L'interface routeur sur VLAN 30 est configurée avec ipv6 nd managed-config-flag (M=1) mais le pool DHCPv6 correspondant n'est pas configuré ou n'est pas lié à l'interface. Ou, l'indicateur O n'est pas défini alors qu'un serveur DHCPv6 stateless est attendu.
! FIX - Configurer un serveur DHCPv6 Stateless pour fournir le DNS
R1(config)# ipv6 dhcp pool VLAN30-STATELESS
R1(config-dhcpv6)# dns-server 2001:4860:4860::8888 2001:4860:4860::8844
R1(config-dhcpv6)# domain-name enterprise.com
R1(config)# interface Vlan30
R1(config-if)# ipv6 dhcp server VLAN30-STATELESS
R1(config-if)# ipv6 nd other-config-flag ! Définit O=1
R1(config-if)# no ipv6 nd managed-config-flag ! Assure M=0 (si précédemment set)
! VÉRIFICATION
R1# show ipv6 dhcp pool VLAN30-STATELESS
R1# show ipv6 interface Vlan30 | include ND
! Vérifier 'Hosts use DHCP to obtain other configuration.'
! ROLLBACK (au cas où)
R1(config)# interface Vlan30
R1(config-if)# no ipv6 dhcp server VLAN30-STATELESS
R1(config-if)# no ipv6 nd other-config-flag
R1(config-if)# ipv6 nd managed-config-flag ! Revenir à l'ancienne config supposée
CONNECTIONS SYSTÉMIQUES
← Module Précédent (Adressage IPv6) : SLAAC/DHCPv6 résolvent la limitation de la configuration manuelle fastidieuse et error-prone des GUA IPv6. Ils automatisent la partie "hôte" du plan d'adressage défini manuellement sur les routeurs.
→ Module Suivant (FHRP pour IPv6) : Une fois que les hôtes ont une GUA et une passerelle via SLAAC/DHCPv6, ils dépendent de la disponibilité de cette passerelle. Les protocoles comme HSRPv2 ou GLBP pour IPv6 (ou VRRPv3) fournissent une redondance de passerelle par défaut, cruciale pour un réseau résilient.
🔄 Écosystème Réel : Dans un réseau d'entreprise avec contrôleur Wi-Fi (ex: Cisco WLC), le WLC agit souvent comme agent de relais DHCPv6 pour les clients sans fil, transmettant leurs requêtes au serveur DHCPv6 central situé sur le réseau filaire.
VALIDATION PAR EXERCICE MENTAL
En utilisant l'analogie de l'urbanisme, expliquez pourquoi le "plan de zonage" (RA) doit être protégé (RA Guard). Que se passe-t-il si un faux urbaniste distribue de mauvais plans ?
Si un faux urbaniste (rogue RA) donne de mauvais plans, les propriétaires (hôtes) construiront leurs maisons (adresses) au mauvais endroit (mauvais préfixe) ou utiliseront la mauvaise sortie de la ville (mauvaise passerelle). Cela peut isoler les hôtes, rediriger leur trafic vers un attaquant (man-in-the-middle) ou provoquer des conflits d'adresses. RA Guard agit comme la police municipale, vérifiant l'identité de l'urbaniste avant de laisser passer ses plans.
Un routeur a ipv6 unicast-routing et une GUA configurée sur Gi0/0. Un hôte connecté à ce port obtient une adresse LLA mais jamais de GUA. Quelle commande simple sur le routeur permettra très probablement de diagnostiquer le problème de base ?
La commande show ipv6 interface gigabitethernet 0/0 et vérifier la ligne "ICMP router advertisements are sent every 200 seconds". Si cette ligne est absente, le routage IPv6 n'est pas actif sur cette interface spécifique (peut-être dû à une commande shutdown ou à l'absence d'adresse GUA). Le problème fondamental est souvent l'absence d'adresse GUA configurée sur l'interface du routeur, ce qui l'empêche d'envoyer des RA avec un préfixe.
"Il est 3h du matin, tous les nouveaux clients IPv6 du bâtiment A ne peuvent plus surfer. Votre monitoring montre que le serveur DHCPv6 principal est UP. Votre première commande SSH ? Votre première hypothèse ? Votre plan d'action en 3 étapes ?"
Première commande : ssh @router_building_a show ipv6 interface vlan 10 | include unicast-routing|ND. Vérifier si le routage IPv6 est actif et les paramètres ND.
Première hypothèse : Un administrateur a accidentellement ajouté no ipv6 unicast-routing sur le routeur d'accès ou un ipv6 nd raguard trop restrictif sur un switch.
Plan d'action :
show run interface port-channel1sur les deux switches pour vérifierlacp max-bundle- Uniformiser à la même valeur (ex: 4) des deux côtés
clear lacp counterset surveiller la reconvergence avecshow etherchannel summary
MICRO-KIT ESSENTIEL (SYNTHÈSE 1 PAGE A4)
Version imprimable pour révision accélérée avant l'examen
Les 5 Lois Immuables
- Gateway IPv6 = RA LLA, jamais DHCP
- Comportement hôte = Combinaison binaire A/O/M
- LLA FE80::/10 = Obligatoire, auto-générée
- ID Interface : Privilégier Aléatoire > EUI-64
- Relais DHCPv6 obligatoire si client/serveur sur subnets différents
6 Commandes CLI Incontournables
ipv6 unicast-routing
ipv6 nd other-config-flag
ipv6 nd managed-config-flag
ipv6 dhcp pool
ipv6 dhcp server POOL
ipv6 dhcp relay destination
3 Pièges CCNA
- DHCPv6 Stateless = A=1 ET O=1
- Ports UDP: Client 546 ← Serveur 547 (inverse DHCPv4)
- A=1,M=1 peut créer 2 adresses sur Windows
Dépannage 3 Étapes
- Vérifier méthode sur l'hôte (1 ou 2 GUA ?)
- Diagnostiquer flags sur le routeur
- Corriger pool/service DHCPv6
Risque + Mitigation
Risque : Rogue RA / Usurpation de Routeur
Mitigation : ipv6 nd raguard et ipv6 dhcp guard sur ports d'accès
Équation Mentale
SLAAC = Préfixe RA (64 bits) + ID Interface (64 bits)