DHCP Snooping Configuration

Topologie du réseau avec un routeur en tant que serveur DHCP et un PC connecté via un commutateur, utilisé pour la configuration de DHCP Snooping.

1. DHCP Snooping Configuration

Ce guide de configuration du DHCP Snooping explique comment sécuriser un commutateur Cisco contre les serveurs DHCP malveillants, à l’aide d’une topologie simple et pratique.

Nous utiliserons une topologie simple : un routeur (R1) comme serveur DHCP et un PC connecté par un commutateur.

Topologie du réseau avec un routeur en tant que serveur DHCP et un PC connecté via un commutateur, utilisé pour la configuration de DHCP Snooping.

Activer DHCP Snooping

Tout d’abord, nous devons activer la fonctionnalité au niveau global:

SW1#(config)# ip dhcp snooping

Définir le VLAN à protéger

Ensuite, nous spécifions le VLAN dans lequel DHCP Snooping doit fonctionner.

Par défaut, nous utiliserons le VLAN 1.

SW1#(config)# ip dhcp snooping vlan 1

Cela indique au commutateur d’inspecter et de filtrer le trafic DHCP uniquement sur ce VLAN.

Définir l’interface de confiance

Par défaut, toutes les interfaces sont non fiables, ce qui signifie que le commutateur bloque les réponses DHCP (comme Offer et ACK) provenant de ces ports.

Vous devez faire confiance à l’interface qui se connecte au serveur DHCP légitime :

Topologie du réseau avec un routeur en tant que serveur DHCP et un PC connecté via un commutateur, utilisé pour la configuration de DHCP Snooping.
SW1(config)# interface gigabitEthernet0/0
SW1(config-if)# ip dhcp snooping trust

Cela permet aux messages DHCP du serveur d’atteindre les clients. Toutes les autres interfaces restent non fiables afin de bloquer les serveurs DHCP malhonnêtes.

Désactivation de l’option 82

Les commutateurs Cisco ajoutent par défaut l’option 82 aux messages DHCP.
Dans les réseaux simples (sans agents de relais), cela peut entraîner le rejet des demandes par le serveur DHCP.

Désactivez-la pour éviter les problèmes :

SW1(config)# no ip dhcp snooping information option

Ce sujet sera expliqué plus en détail ultérieurement.

Vérifier la configuration

Pour valider votre configuration DHCP Snooping, exécutez la commande suivante :

SW1#show ip dhcp snooping         
Switch DHCP snooping is enabled
Switch DHCP gleaning is disabled
DHCP snooping is configured on following VLANs:
1
DHCP snooping is operational on following VLANs:
1
DHCP snooping is configured on the following L3 Interfaces:

Insertion of option 82 is disabled
   circuit-id default format: vlan-mod-port
   remote-id: 50f6.1504.7a00 (MAC)
Option 82 on untrusted port is not allowed
Verification of hwaddr field is enabled
Verification of giaddr field is enabled
DHCP snooping trust/rate is configured on the following Interfaces:

Interface                  Trusted    Allow option    Rate limit (pps)
-----------------------    -------    ------------    ----------------   
GigabitEthernet0/0         yes        yes             unlimited
  Custom circuit-ids:

Cette sortie confirme que votre configuration dhcp snooping est active, que les ports de confiance sont correctement définis et que l’option 82 est désactivée.

Visualiser la Binding Table

Le commutateur suit dynamiquement les clients légitimes :

SW1#show ip dhcp snooping binding 
MacAddress          IpAddress        Lease(sec)  Type           VLAN  Interface
------------------  ---------------  ----------  -------------  ----  --------------------
00:50:79:66:68:7B   192.168.10.10    86390       dhcp-snooping   1     GigabitEthernet0/1
Total number of bindings: 1

Ce que cela nous apprend :

  • L’adresse MAC et l’adresse IP du client sont enregistrées.
  • L’interface et le VLAN correspondent à notre configuration
  • La durée du bail indique que l’IP est toujours valide.

Cette table permet au commutateur de suivre les clients DHCP légitimes et de bloquer le trafic provenant de sources non autorisées.

2. Rate Limiting

Après avoir terminé la configuration de dhcp snooping, il est essentiel de protéger le commutateur contre un trafic DHCP excessif qui pourrait conduire à des attaques par inondation.

Une attaque d’inondation qu’est-ce que c’est ?

Un attaquant pourrait inonder le commutateur de faux messages DHCP Discover. Cela surcharge l’unité centrale du commutateur et peut provoquer :

  • Le commutateur ne traite plus correctement le DHCP
  • les contrôles de sécurité tels que le DHCP Snooping échouent
  • Les interfaces deviennent instables
Diagramme expliquant la limitation du taux de DHCP Snooping avec un commutateur protégeant contre les attaques par inondation de DHCP

Pour éviter cela, nous avons fixé une limite au nombre de paquets DHCP autorisés par seconde.

Configurer le Rate Limiting

Voici comment appliquer une limite de 10 paquets par seconde sur une interface orientée client.

SW1(config)# interface g0/1
SW1(config-if)# ip dhcp snooping limit rate 10

Si l’interface reçoit plus de 10 paquets DHCP par seconde, elle passe automatiquement à l’état err-disabled.

Exemple : L’interface dépasse la limite

Si une interface reçoit des messages DHCP dépassant la limite configurée, le commutateur génère des journaux indiquant que l’interface est maintenant configurée sur err-disabled (shutdown).

Exemple de journal de commutation DHCP Snooping montrant une interface définie comme err-disabled après avoir dépassé la limite de débit des messages DHCP.

Lorsque la limite est dépassée, le commutateur enregistre des messages tels que :

SW1#
*Jan 22 22:08:52.275: %DHCP_SNOOPING-4-DHCP_SNOOPING_ERRDISABLE_WARNING: DHCP Snooping received 11 DHCP packets on interface Gi0/1

*Jan 22 22:08:52.275: %DHCP_SNOOPING-4-DHCP_SNOOPING_RATE_LIMIT_EXCEEDED: The interface Gi0/1 is receiving more than the threshold set

*Jan 22 22:08:52.275: %PM-4-ERR_DISABLE: dhcp-rate-limit error detected on Gi0/1, putting Gi0/1 in err-disable state

*Jan 22 22:08:53.278: %LINEPROTO-5-UPDOWN: Line protocol on Interface Gi0/1, changed state to down

*Jan 22 22:08:54.277: %LINK-3-UPDOWN: Interface GigabitEthernet0/1, changed state to down

L’interface est maintenant dans l’état err-disabled et ne peut pas traiter le trafic.

3. Re-Enable Interface

Lorsqu’une interface entre dans l’état err-disabled en raison de la limitation du débit DHCP, elle cesse de transmettre tout trafic. Il s’agit d’un mécanisme de sécurité, mais il peut perturber la connectivité.

Récupération manuelle

Pour rétablir manuellement l’interface, procédez comme suit :

SW1(config)#interface g0/1
SW1(config-if)#shutdown
SW1(config-if)#no shutdown

Cette opération permet d’éteindre l’interface et de la rallumer, en supprimant l’état d’erreur. C’est efficace, mais imaginez que vous fassiez cela sur plusieurs interfaces pendant une attaque, ce n’est pas extensible.

Récupération automatique avec Error Disabled Recovery

Les commutateurs Cisco offrent une fonction appelée Error Disabled Recovery, qui permet au commutateur de réactiver automatiquement les interfaces après un délai d’attente.

Étape 1 : Vérifier les paramètres de récupération actuels

Cette commande permet de vérifier si la récupération liée au DHCP est activée :

SW1# show errdisable recovery 
ErrDisable Reason            Timer Status
-----------------            --------------
arp-inspection               Disabled
bpduguard                    Disabled
channel-misconfig (STP)      Disabled
dhcp-rate-limit              Disabled
dtp-flap                     Disabled
gbic-invalid                 Disabled
inline-power                 Disabled
l2ptguard                    Disabled
link-flap                    Disabled
// OUTPUT OMMITED FOR CLARITY

Timer interval: 300 seconds

Interfaces that will be enabled at the next timeout:

Comme vous le voyez ci-dessus, la liste des causes (comme bpduguard, dhcp-rate-limit, etc.) avec leur recovery status et le timer.

Notre cause dhcp-rate-limit est désactivé.

Étape 2 : Activer la récupération pour le DHCP Rate Limit

Pour l’activer :

SW1(config)#errdisable recovery cause dhcp-rate-limit

Vous pouvez également régler la durée d’attente avant la réactivation de l’interface (la valeur par défaut est de 300 secondes) :

SW1(config)#errdisable recovery interval 60

Cette option fixe le délai d’attente à 60 secondes.

Étape 3 : Vérifier les nouveaux paramètres

Une fois la configuration effectuée, confirmez avec :

SW1#show errdisable recovery 
ErrDisable Reason            Timer Status
-----------------            --------------
arp-inspection               Disabled
bpduguard                    Disabled
channel-misconfig (STP)      Disabled
dhcp-rate-limit              Enabled
dtp-flap                     Disabled
gbic-invalid                 Disabled
inline-power                 Disabled
l2ptguard                    Disabled
link-flap                    Disabled
// OUTPUT OMMITED FOR CLARITY
          
Interface       Errdisable reason       Time left(sec)
---------       -----------------       --------------
unicast-flood                Disabled
vmps                         Disabled
psp                          Disabled
dual-active-recovery         Disabled
evc-lite input mapping fa    Disabled
Recovery command: "clear     Disabled

Timer interval: 60 seconds

Interfaces that will be enabled at the next timeout:

Interface       Errdisable reason       Time left(sec)
---------       -----------------       --------------
Gi0/1            dhcp-rate-limit          45

Si une interface a été arrêtée en raison d’une limitation de débit, elle apparaît désormais dans la liste des interfaces dont le rétablissement est programmé :

Cela signifie que l’interface GigabitEthernet0/1 sera rétablie dans 45 secondes.

La récupération en action

À l’expiration du délai, le commutateur tente de réactiver le port. Voici ce que cela donne dans les journaux :

*Jan 22 22:16:52.290: %PM-4-ERR_RECOVER: Attempting to recover from dhcp-rate-limit err-disable state on Gi0/1

*Jan 22 22:16:54.323: %LINK-3-UPDOWN: Interface GigabitEthernet0/1, changed state to up

*Jan 22 22:16:55.324: %LINEPROTO-5-UPDOWN: Line protocol on Interface Gi0/1, changed state to up

À ce stade, l’interface est à nouveau pleinement fonctionnelle sans nécessiter d’intervention manuelle.

4. DHCP Snooping Option 82 (Information Option)

Lorsque DHCP Snooping est activé, un commutateur Cisco insère automatiquement un champ spécial dans les messages DHCP, appelé Option 82.

Cette option inclut des détails tels que le numéro du VLAN et le port du commutateur où le client est connecté. Dans les réseaux plus avancés, un agent de relais DHCP ajoute généralement l’option 82 pour aider le serveur à déterminer l’origine de la demande.

Mais dans un réseau simple comme le nôtre, ce comportement peut poser des problèmes.

Quel est le problème ?

Le commutateur n’agit pas comme un véritable agent de relais, mais il ajoute toujours l’option 82 aux requêtes DHCP sortantes.

Voici ce qui se passe :

  • Le client envoie un message DHCP DISCOVER.
  • Le commutateur insère l’option 82 dans le message.
  • Le serveur DHCP le voit et rejette la demande, pensant qu’elle n’est pas valide.
Problème d'option DHCP Snooping 82 où un commutateur ajoute des informations de relais, ce qui oblige le serveur DHCP à rejeter la demande

Comme indiqué ci-dessus, le serveur indique :
>« Vous avez l’option 82, mais vous n’êtes pas un relais DHCP. Je ne souhaite pas recevoir votre demande ! »

Cela empêche le client d’obtenir une adresse IP.

Comment résoudre ce problème : désactiver l’option 82

Pour résoudre ce problème, nous désactivons l’option 82 sur le commutateur :

SW1(config)#no ip dhcp snooping information option

Après avoir exécuté cette commande, le commutateur arrête de modifier les messages DHCP.

DHCP Snooping avec l'option 82 supprimée, permettant au serveur DHCP d'accepter et de répondre au message DISCOVER du client

Le serveur considère la demande du client comme valide et répond normalement.

5. Conclusion

Prenons un moment pour revoir tout ce que vous avez appris.

Une configuration DHCP Snooping robuste protège votre réseau contre les serveurs malveillants, empêche les attaques par famine DHCP et améliore la sécurité de la couche 2.

En comprenant son fonctionnement et comment le configurer correctement, vous pouvez éviter de nombreux problèmes potentiels dans un réseau commuté.

Pour sécuriser correctement votre environnement de commutation, assurez-vous que votre configuration de surveillance DHCP inclut toutes les étapes suivantes.

FonctionnalitéCe qu’il faitPourquoi c’est important
Activer DHCP SnoopingActive la fonctionnalité globalement sur le commutateurProtège le réseau contre les réponses DHCP non autorisées
Définir les VLANApplique DHCP Snooping uniquement aux VLAN spécifiésLimite la protection aux parties pertinentes du réseau
Définir des interfaces de confianceMarque les interfaces connectées à des serveurs DHCP valides comme étant fiablesPermet aux messages DHCP légitimes de passer
Désactiver l’option 82Empêche le commutateur d’ajouter l’option 82 aux messages DHCPAssure la compatibilité avec les serveurs DHCP de base
Rate LimitingContrôle le nombre de paquets DHCP par seconde et par portEmpêche les attaques DoS et la surcharge du processeur du commutateur
Récupération automatique (Errdisable)Réactive automatiquement les ports après une violation de limite de débitÉvite l’intervention manuelle et maintient la disponibilité
Binding TableSuivi des adresses MAC, IP, VLAN et interface des clients DHCPValide le trafic et bloque les paquets falsifiés

En combinant ces éléments, vous renforcez la sécurité de votre infrastructure de couche 2. DHCP Snooping filtre les sources non fiables et fournit la base de fonctionnalités telles que l’inspection ARP dynamique et la protection de la source IP.

Si vous souhaitez explorer des comportements avancés ou des détails spécifiques au matériel, vous pouvez vous référer au guide officiel de Cisco : Configuration de DHCP Snooping