Version Filtre

Module-Kit de Maîtrise: DHCPv4

Architecture, Protocole & Maîtrise Opérationnelle

Contenu sourceLe texte et les structures utiles du document d'origine sont conservés dans cette reconstruction.
RenduHabillage moderne inspire du modele principal, sans supprimer les blocs specifiques du document initial.
FocusModule-Kit de Maîtrise: DHCPv4

Module-Kit de Maîtrise: DHCPv4

Architecture, Protocole & Maîtrise Opérationnelle

✅ Kit validé | 🎯 200% de valeur ajoutée | 🔐 Sécurité intégrée

📍 ANALOGIE SYSTÉMIQUE PÉDAGOGIQUE

Thème central: "Gestion dynamique des identités réseau avec contrat de location"

Métaphore: "Service de Location de Véhicules avec Contrôle Centralisé"

Éléments clés:

  • 🚗 Agence de Location (Serveur DHCP): Possède un parc de véhicules (adresses IP), établit des contrats (baux), tient un registre des locations en cours.
  • 🔑 Véhicule Loué (Adresse IP + Config): Identifié par une plaque unique (IP), loué pour durée limitée, avec équipements inclus (GPS=Gateway, Radio=DNS).
  • 👤 Client (Client DHCP): Doit faire une demande (DORA), signer contrat, renouveler avant expiration.
  • 🏪 Antenne Locale (Relay DHCP): Dans une autre ville (sous-réseau), transmet les demandes à l'agence centrale.
  • 👮 Contrôle Technique (DHCP Snooping): Vérifie que seules les agences autorisées louent des véhicules.

🧠 MODÈLE MENTAL DÉTAILLÉ

Processus complet DHCPv4 de l'acquisition à la gestion du bail :

flowchart TD A[Client: État INIT
Sans IP] --> B{Boot ou
Réinitialisation} B --> C[Étape 1: DHCPDISCOVER
Broadcast L2/L3
Src: 0.0.0.0:68
Dst: 255.255.255.255:67] C --> D{Serveur(s)
disponible(s)?} D -->|Oui| E[Étape 2: DHCPOFFER
Unicast ou Broadcast
Propose IP, Masque, Serveur ID] D -->|Non
Timeout| F[Attente 1-10s aléatoire
Retransmission x4
Si échec → APIPA 169.254.x.x] E --> G[Client: État SELECTING
Compare les offres
Premier arrivé ou préférence] G --> H[Étape 3: DHCPREQUEST
Broadcast pour sélection
"J'accepte l'offre du serveur X"] H --> I[Étape 4: DHCPACK
Confirmation finale
Inclut toutes les options] I --> J[Client: État BOUND
Configure l'interface
Lance les timers T1 & T2] J --> K[Utilisation normale
Timers actifs] K --> L{T1 atteint?
50% du bail} L -->|Oui| M[Renouvellement UNICAST
DHCPREQUEST → Serveur original] M --> N{Réponse
DHCPACK?} N -->|Oui| O[Bail renouvelé
Reset T1/T2] N -->|Non
Timeout| P[Attente jusqu'à T2] P --> Q{T2 atteint?
87.5% du bail} Q -->|Oui| R[Renouvellement BROADCAST
DHCPREQUEST → Tous serveurs] R --> S{Réponse
DHCPACK?} S -->|Oui| O S -->|Non| T[Expiration du bail
Retour à l'état INIT] T --> A O --> K

Points clés du modèle :

  • Processus en 4 étapes obligatoires (DORA) pour toute nouvelle acquisition
  • Deux mécanismes de renouvellement distincts (T1 unicast, T2 broadcast)
  • Gestion des timeouts et repli sur APIPA (169.254.x.x)
  • États clients clairement définis : INIT → SELECTING → BOUND

⚡ NOYAU DUR TECHNIQUE (7 Principes Fondamentaux)

Loi #1 : DHCPv4 est un protocole de couche application (UDP ports 67/68) qui résout le problème de la configuration manuelle d'adresses IP.
Preuve technique : Basé sur BOOTP (RFC 951), étendu par RFC 2131. Utilise UDP car la connexion TCP nécessiterait déjà une adresse IP configurée.
Loi #2 : Le processus DORA (Discover-Offer-Request-Acknowledge) est obligatoire pour toute nouvelle acquisition d'adresse.
Détails critiques : DHCPDISCOVER (Client → Broadcast), DHCPOFFER (Serveur → Unicast/Broadcast), DHCPREQUEST (Client → Broadcast), DHCPACK (Serveur → Confirmation).
Loi #3 : Les routeurs Cisco IOS peuvent agir comme serveur DHCPv4, mais nécessitent une configuration explicite par pool par sous-réseau.
Configuration minimale obligatoire : ip dhcp excluded-address + ip dhcp pool + network + default-router.
Loi #4 : Un routeur ne transmet PAS les broadcasts entre interfaces par défaut. La communication avec un serveur DHCP sur un autre sous-réseau nécessite ip helper-address.
Fonctionnement du relay : Interception paquet UDP port 67 → Modification IP source → Forwarding unicast vers serveur spécifié.
Loi #5 : Le bail DHCP a une durée définie avec deux timers critiques : T1 (50%) pour le renouvellement auprès du serveur original, T2 (87.5%) pour la recherche de tout serveur disponible.
Calcul des timers : Bail 24h = T1 à 12h, T2 à 21h. Bail 8 jours = T1 à 4 jours, T2 à 7 jours.
Loi #6 : Les exclusions (ip dhcp excluded-address) sont GLOBALES au routeur et prioritaires sur tous les pools.
Conséquence importante : Une adresse exclue ne sera JAMAIS offerte, même si elle appartient au réseau d'un pool.
Loi #7 : DHCPv4 inclut des options extensibles (Option 53 = Type de message, Option 61 = Client Identifier, etc.) qui permettent des fonctionnalités avancées comme les réservations par adresse MAC.
Option critique : Option 50 ("Requested IP Address") permet à un client de demander une adresse spécifique (utile après un reboot).

🔐 PROFONDEUR SÉCURITÉ & MÉTIER INTÉGRÉE

🚨 RISQUE PRINCIPAL : SERVEUR DHCP ROGUE (USURPATION)

Impact Métier : Panne réseau généralisée, interception de trafic (Man-in-the-Middle), vol d'informations.

Mécanisme de l'attaque :

  1. L'attaquant connecte un serveur DHCP non autorisé
  2. Ce serveur répond PLUS VITE aux DHCPDISCOVER (temps de réponse minimal)
  3. Il attribue de fausses configurations :
    • Passerelle par défaut = adresse de l'attaquant
    • Serveurs DNS = serveurs contrôlés par l'attaquant
  4. Résultat : Tout le trafic passe par l'attaquant

Détection Avancée :

Commandes de détection Cisco
! Surveillance des logs DHCP
Router# show logging | include DHCP

! Vérification des adresses de serveur inattendues
Router# debug ip dhcp server packet

! Vérification des baux actifs
Router# show ip dhcp binding

Mitigation Immédiate (Cisco) :

Configuration DHCP Snooping
! Étape 1: Activer DHCP Snooping globalement
Switch(config)# ip dhcp snooping
Switch(config)# ip dhcp snooping vlan 10,20,30

! Étape 2: Définir les ports de confiance (seulement vers serveurs légitimes)
Switch(config)# interface gigabitEthernet 1/0/1
Switch(config-if)# description Serveur DHCP Principal
Switch(config-if)# ip dhcp snooping trust

! Étape 3: Limiter le taux de requêtes DHCP sur ports non-trust
Switch(config)# interface range gigabitEthernet 1/0/2 - 24
Switch(config-if-range)# ip dhcp snooping limit rate 10

! Étape 4: Valider la table de binding
Switch# show ip dhcp snooping binding

Intégration Entreprise :

Playbook Ansible pour DHCP Snooping
- name: Configure DHCP Snooping on all access switches
  cisco.ios.ios_config:
    lines:
      - "ip dhcp snooping"
      - "ip dhcp snooping vlan {{ vlans_list }}"
      - "interface {{ trusted_port }}"
      - "ip dhcp snooping trust"
    save_when: always

SIEM Integration : Alerte sur offres DHCP provenant de ports non-trust, changements ARP, augmentation taux requêtes DHCP.

🚨 RISQUE SECONDAIRE : DHCP STARVATION ATTACK

Mécanisme : L'attaquant envoie des milliers de requêtes DHCPDISCOVER avec des adresses MAC sources forgées, épuisant tout le pool d'adresses disponibles.

Mitigation Cisco
! Option 1: Limite de taux globale
Switch(config)# ip dhcp snooping limit rate 15

! Option 2: Détection avancée avec storm-control
Switch(config)# interface gigabitEthernet 1/0/5
Switch(config-if)# storm-control broadcast level 5.00
Switch(config-if)# storm-control action trap

📚 PROFONDEUR EXAMEN CCNA (DÉTAILS CRITIQUES)

❓ Question Type CCNA :

"Un client DHCP reçoit l'adresse 169.254.10.5 après avoir démarré. Le serveur DHCP est opérationnel et accessible. Quelle est la cause la plus probable?"

A. Le câble réseau est débranché
B. Le serveur DHCP a son pool épuisé
C. Le client est configuré avec une adresse IP statique
D. Le routeur entre le client et le serveur n'a pas `ip helper-address`

⚠️ Pièges Fréquents CCNA

Piège #1 : La différence entre ip helper-address et un serveur DHCP local sur le routeur. Beaucoup pensent que ip helper-address transforme le routeur en serveur, mais il ne fait que relayer.
Piège #2 : Le champ Lease Time dans le DHCPOFFER. C'est le SERVEUR qui propose la durée, mais le CLIENT peut en demander une différente via l'Option 51 dans son DHCPREQUEST.
Piège #3 : Les messages DHCP utilisent le port UDP 67 (serveur) et 68 (client). Le client utilise le port 68 car certains systèmes d'exploitation ne permettent pas aux applications utilisateur d'utiliser les ports bas (<1024).
Piège #4 : Le champ Client Identifier (Option 61) peut être soit l'adresse MAC, soit une chaîne arbitraire. Par défaut, c'est l'adresse MAC, mais certains systèmes (comme les téléphones VoIP) utilisent d'autres identifiants.

⚙️ LAB COMPLET : DE LA CONFIGURATION À LA PRODUCTION

SCÉNARIO : Entreprise avec 3 VLANs nécessitant DHCP

Topologie :

  • VLAN 10 : Employés (192.168.10.0/24)
  • VLAN 20 : Invités (192.168.20.0/24)
  • VLAN 30 : Serveurs (192.168.30.0/24) - Adresses statiques uniquement
  • Serveur DHCP central : 192.168.99.100

Niveau 1 (CCNA) : Configuration Serveur sur Routeur Cisco

Configuration DHCP multi-pools
! CONFIGURATION DU SERVEUR DHCP POUR VLAN 10
R1(config)# ip dhcp excluded-address 192.168.10.1 192.168.10.10
R1(config)# ip dhcp excluded-address 192.168.10.254
R1(config)# ip dhcp pool VLAN10_EMPLOYES
R1(dhcp-config)# network 192.168.10.0 255.255.255.0
R1(dhcp-config)# default-router 192.168.10.1
R1(dhcp-config)# dns-server 192.168.99.10 192.168.99.11
R1(dhcp-config)# domain-name entreprise.local
R1(dhcp-config)# lease 8 0 0  ! 8 jours de bail

! CONFIGURATION DU SERVEUR DHCP POUR VLAN 20
R1(config)# ip dhcp excluded-address 192.168.20.1 192.168.20.10
R1(config)# ip dhcp pool VLAN20_INVITES
R1(dhcp-config)# network 192.168.20.0 255.255.255.0
R1(dhcp-config)# default-router 192.168.20.1
R1(dhcp-config)# dns-server 8.8.8.8
R1(dhcp-config)# lease 0 1 0  ! 1 heure seulement pour les invités

Niveau 3 (Expert) : Réservations DHCP et Options Avancées

Réservation par adresse MAC
! RÉSERVATION D'ADRESSE POUR UN PÉRIPHÉRIQUE SPÉCIFIQUE
R1(config)# ip dhcp pool RESERVATION_IMPRIMANTE
R1(dhcp-config)# host 192.168.10.50 255.255.255.0
R1(dhcp-config)# client-identifier 0100.0c29.5a3b.87  ! MAC avec préfixe 01
R1(dhcp-config)# default-router 192.168.10.1
R1(dhcp-config)# option 150 ip 192.168.10.100  ! Pour téléphones VoIP (TFTP)

! OPTION 82 (AGENT CIRCUIT ID) POUR SUIVI AVANCÉ
R1(config)# ip dhcp relay information option

Niveau 4 (Automatisation) : Script Python pour Audit DHCP

Script d'audit DHCP Enterprise
#!/usr/bin/env python3
"""
Script d'audit DHCP Enterprise
Vérifie : Pools épuisés, Conflits IP, Serveurs non autorisés
"""
from netmiko import ConnectHandler
import json

def audit_dhcp(device):
    """Audit complet d'un routeur/serveur DHCP"""
    connection = ConnectHandler(**device)
    
    # 1. Vérifier les pools
    output = connection.send_command('show ip dhcp pool')
    pools = parse_dhcp_pools(output)
    
    # 2. Vérifier les conflits
    output = connection.send_command('show ip dhcp conflict')
    conflicts = parse_conflicts(output)
    
    # 3. Vérifier les statistiques
    output = connection.send_command('show ip dhcp server statistics')
    stats = parse_statistics(output)
    
    # 4. Générer rapport
    report = {
        'device': device['host'],
        'pools': pools,
        'conflicts': conflicts,
        'statistics': stats,
        'alert': check_alerts(pools, conflicts, stats)
    }
    
    connection.disconnect()
    return report

# Exécution
if __name__ == "__main__":
    devices = [
        {
            'device_type': 'cisco_ios',
            'host': '192.168.1.1',
            'username': 'admin',
            'password': 'password',
        }
    ]
    
    for device in devices:
        report = audit_dhcp(device)
        print(json.dumps(report, indent=2))

🚨 SCÉNARIO DE DÉPANNAGE AVANCÉ

SYMPTÔME COMPLEXE

30% des postes du bâtiment A n'obtiennent pas d'adresse IP. Certains obtiennent 169.254.x.x (APIPA), d'autres ont une adresse mais avec une mauvaise passerelle.

Investigation Systématique :

Étape 1 : Diagnostic initial
! Sur le routeur/serveur DHCP principal
R1# show ip dhcp pool
! Vérifier : Utilisation, Adresses disponibles

R1# show ip dhcp conflict
! Vérifier les adresses en conflit

R1# show ip dhcp server statistics
! Vérifier : Discovers reçus, Offers envoyés, NACKs
Root Cause Probable Identifiée : Serveur DHCP Rogue combiné avec attaque de starvation.

Preuve :

  1. Capture Wireshark montre des DHCPOFFER provenant de deux adresses IP serveur différentes
  2. Une des adresses serveur n'est pas dans la liste des serveurs autorisés
  3. Les DHCPOFFER du serveur rogue ont un temps de réponse plus court (10ms vs 50ms)
  4. Les offres du serveur rogue proposent une passerelle différente (192.168.10.254 au lieu de 192.168.10.1)

Correctif Immédiat :

Correction et renforcement sécurité
! 1. Identifier le port source du serveur rogue
Switch# show mac address-table address xxxx.xxxx.xxxx
! xxxx.xxxx.xxxx = adresse MAC du serveur rogue

! 2. Désactiver le port
Switch(config)# interface gigabitEthernet 1/0/15
Switch(config-if)# shutdown
Switch(config-if)# description ROGUE-DHCP-SERVER-DISABLED

! 3. Renforcer DHCP Snooping
Switch(config)# ip dhcp snooping vlan 10,20,30
Switch(config)# ip dhcp snooping verify mac-address

! 4. Nettoyer les conflits
R1# clear ip dhcp conflict *

🧩 MICRO-KIT ESSENTIEL (SYNTHÈSE 1 PAGE A4)

🔹 Les 7 Principes Fondamentaux

  1. DORA obligatoire : Discover → Offer → Request → ACK
  2. Relay DHCP requis entre sous-réseaux
  3. Timers de bail : T1=50%, T2=87.5%
  4. Exclusions globales sur tous pools
  5. DHCP = UDP 67/68
  6. Sécurité minimum : DHCP Snooping
  7. APIPA 169.254.x.x = Aucun serveur DHCP

🔧 Commandes de Diagnostic

show ip dhcp pool
show ip dhcp binding
show ip dhcp conflict
show ip dhcp server statistics
debug ip dhcp detail

⚠️ 5 Pièges CCNA

  • ip helper-address sur interface LAN
  • Exclusions AVANT création du pool
  • DHCPOFFER peut être unicast
  • Renouvellement à T1 est unicast
  • 169.254.x.x = Échec total DHCP

🛠️ Dépannage en 4 Étapes

  1. Client a-t-il une IP? ipconfig /all
  2. Serveur reçoit les req? show ip dhcp server statistics
  3. Pools épuisés? show ip dhcp pool
  4. Relay configuré? show run interface vlan X

🔐 Sécurité Minimum

ip dhcp snooping
ip dhcp snooping vlan 10,20
interface Gi1/0/1
  ip dhcp snooping trust

📊 Équations Clés

Bail 24h : T1 = 12h, T2 = 21h

Ports : Client=68, Serveur=67

Broadcast : MAC=FF:FF:FF:FF:FF:FF
IP=255.255.255.255

🎯 OBJECTIF : Fiche imprimable, parfaitement concise, mémorisable et utilisable en révision accélérée avant l'examen.

🔧 SIMULATEUR CLI DHCP

Testez vos commandes DHCP Cisco IOS :

> Bienvenue dans le simulateur CLI DHCP > Commandes disponibles : show ip dhcp pool, show ip dhcp binding, show ip dhcp conflict, show ip dhcp server statistics

Module-Kit de Maîtrise DHCPv4

@2025