Version Filtre
Architecture, Protocole & Maîtrise Opérationnelle
Architecture, Protocole & Maîtrise Opérationnelle
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é"
Processus complet DHCPv4 de l'acquisition à la gestion du bail :
Points clés du modèle :
ip dhcp excluded-address + ip dhcp pool + network + default-router.
ip helper-address.
ip dhcp excluded-address) sont GLOBALES au routeur et prioritaires sur tous les pools.
Impact Métier : Panne réseau généralisée, interception de trafic (Man-in-the-Middle), vol d'informations.
! 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
! É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
- 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.
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.
! 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
"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?"
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.
Topologie :
! 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
! 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
#!/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))
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.
! 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
Preuve :
! 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 *
show ip dhcp pool show ip dhcp binding show ip dhcp conflict show ip dhcp server statistics debug ip dhcp detail
ip helper-address sur interface LANipconfig /allshow ip dhcp server statisticsshow ip dhcp poolshow run interface vlan Xip dhcp snooping ip dhcp snooping vlan 10,20 interface Gi1/0/1 ip dhcp snooping trust
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.
Testez vos commandes DHCP Cisco IOS :