Cours Admin Système

Module-Kit de Maîtrise

Allocation dynamique d'adresses IPv6 | Reconstruction pédagogique 200%

📍

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 :

  1. S'Autoconstruire (SLAAC Pur) : Chacun bâtit sa maison (adresse) selon des normes, sans registre central. Simple, scalable.
  2. 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ù.
  3. 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 :

  1. 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.
  2. 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).

Question Type CCNA :

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 ?

A. Seulement l'adresse obtenue via SLAAC.
B. Seulement l'adresse obtenue via DHCPv6 Stateful.
C. Les deux adresses (SLAAC et DHCPv6), mais il préférera celle obtenue via DHCPv6.
D. Aucune, la combinaison de flags est invalide.

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.

Processus de Diagnostic (Arbre Décisionnel)
  1. Vérifier la méthode sur le VLAN 30. Sur un hôte : ipconfig /all (Win) ou ip -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.
  2. 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).
  3. Pour SLAAC + Stateful : Vérifier la configuration du pool DHCPv6 sur le routeur.
    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ètres
    Si le serveur DNS est configuré, vérifier la connectivité entre l'hôte et le serveur DNS (ping 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 et Rollback
! 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

Question de Concept :

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.

Question de Piège :

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.

Question de Crise :

"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 :

  1. show run interface port-channel1 sur les deux switches pour vérifier lacp max-bundle
  2. Uniformiser à la même valeur (ex: 4) des deux côtés
  3. clear lacp counters et surveiller la reconvergence avec show 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

  1. Gateway IPv6 = RA LLA, jamais DHCP
  2. Comportement hôte = Combinaison binaire A/O/M
  3. LLA FE80::/10 = Obligatoire, auto-générée
  4. ID Interface : Privilégier Aléatoire > EUI-64
  5. 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

  1. DHCPv6 Stateless = A=1 ET O=1
  2. Ports UDP: Client 546 ← Serveur 547 (inverse DHCPv4)
  3. A=1,M=1 peut créer 2 adresses sur Windows

Dépannage 3 Étapes

  1. Vérifier méthode sur l'hôte (1 ou 2 GUA ?)
  2. Diagnostiquer flags sur le routeur
  3. 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)

Module-Kit de Maîtrise SLAAC et DHCPv6 - CCNA

@2025