ITSkillsCenter
Cybersécurité

DHCP, DNS et NAT/PAT sur un routeur Cisco — tutoriel CCNA 2026

14 min de lecture

Configurer un serveur DHCP IOS, un relais DHCP entre VLAN, un client DNS, puis NAT statique, NAT dynamique et PAT (overload) pour partager une seule adresse publique entre 50 PC. Toutes les commandes, vérifications et erreurs classiques pour le CCNA 200-301 v1.1.

📍 À lire d’abord : Réussir le CCNA 200-301 depuis l’Afrique de l’Ouest — Guide complet 2026 · VLAN, trunk 802.1Q et inter-VLAN routing.

Introduction

Imagine une PME de Dakar avec 30 postes de travail, 5 imprimantes, une caméra IP, un point d’accès Wi-Fi et un serveur de fichiers. Personne ne configure manuellement les 37 adresses IP — c’est le serveur DHCP qui distribue. Imagine maintenant que cette PME a un seul abonnement Sonatel avec une adresse IP publique : pourtant les 37 équipements vont sur Internet simultanément. C’est NAT/PAT qui multiplexe. DHCP et NAT/PAT sont les services réseau les plus invisibles pour l’utilisateur final et les plus indispensables au quotidien.

Ce tutoriel construit une PME virtuelle complète sur Packet Tracer : trois VLAN, un serveur DHCP IOS qui sert chaque VLAN via un relais (ip helper-address), un client DNS résolvant les noms internes, et un router de bordure qui fait du PAT vers Internet. À la fin, tu sais ce qu’il y a à savoir au CCNA sur le domaine IP Services (10 % de l’examen) plus la partie NAT du domaine Security Fundamentals.

Prérequis

  • Lab Packet Tracer 9.0 fonctionnel.
  • Maîtrise de la configuration VLAN/trunk et du routage inter-VLAN.
  • Compréhension de l’adressage IP, masques, plages d’hôtes utilisables.
  • Familiarité avec les commandes show running-config, show ip interface brief, show ip route.
  • Niveau attendu : intermédiaire.
  • Temps estimé : 2 heures.

Étape 1 — Comprendre DHCP en deux minutes

DHCP (RFC 2131) est un protocole client-serveur qui distribue automatiquement des paramètres réseau à un client qui démarre. L’échange DHCP se fait en quatre étapes appelées DORA :

1. DISCOVER  → le client broadcast "qui est serveur DHCP ?"
2. OFFER     → un serveur répond "j'ai cette IP pour toi : 192.168.10.20"
3. REQUEST   → le client confirme "oui, je veux cette IP-là"
4. ACKNOWLEDGE → le serveur valide "elle est à toi pour 24 heures"

Les paquets DHCP sont en UDP (ports 67 serveur et 68 client) et utilisent le broadcast de couche 2 dans la phase Discover. Conséquence : un serveur DHCP doit être dans le même domaine de broadcast que le client, ou il faut un relai (un routeur qui transforme le broadcast DHCP local en unicast vers le serveur distant via la commande ip helper-address).

Les paramètres typiquement distribués : adresse IP, masque, passerelle par défaut, serveur(s) DNS, nom de domaine, durée du bail, et optionnellement : serveur NTP, serveur TFTP, options spécifiques.

Étape 2 — Configurer un serveur DHCP IOS

Sur un routeur Cisco, on peut activer un service DHCP intégré. C’est suffisant pour les PME ; les grandes entreprises préfèrent des serveurs DHCP dédiés (Microsoft DHCP, ISC DHCP, ou Infoblox). Reprenons la topologie à trois VLAN du tutoriel inter-VLAN routing : DATA (10), VOICE (20), MGMT (99). On va configurer le routeur R1 pour distribuer les paramètres aux VLAN 10 et 20.

R1>enable
R1#configure terminal
R1(config)#ip dhcp excluded-address 192.168.10.1 192.168.10.20
R1(config)#ip dhcp excluded-address 192.168.20.1 192.168.20.20

R1(config)#ip dhcp pool LAN_DATA
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 8.8.8.8
R1(dhcp-config)#domain-name pme.local
R1(dhcp-config)#lease 1
R1(dhcp-config)#exit

R1(config)#ip dhcp pool LAN_VOICE
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 192.168.99.10
R1(dhcp-config)#option 150 ip 192.168.99.20
R1(dhcp-config)#lease 0 8 0
R1(dhcp-config)#end

Décortiquons. ip dhcp excluded-address réserve les 20 premières IP de chaque sous-réseau pour les attributions statiques (passerelle, serveurs, imprimantes). Sans ça, le serveur DHCP pourrait attribuer .1 (passerelle) à un PC, conflit assuré.

ip dhcp pool LAN_DATA ouvre la définition d’un pool — un bloc d’attribution. network 192.168.10.0 255.255.255.0 indique la plage d’adressage. default-router distribue la passerelle par défaut. dns-server peut être doublé (primaire + secondaire). domain-name distribue le nom de domaine pour la résolution courte. lease 1 fixe la durée du bail à 1 jour.

Sur le pool LAN_VOICE, l’option option 150 est intéressante : c’est l’option DHCP standard pour distribuer l’adresse du serveur TFTP de provisionnement des téléphones IP Cisco. Quand un téléphone démarre, il prend une IP DHCP, lit l’option 150, télécharge sa configuration depuis le TFTP indiqué. C’est exactement comme ça que les téléphones se déploient en masse dans une banque sans intervention manuelle.

lease 0 8 0 se lit jours/heures/minutes : 8 heures. Pour la voix, un bail court permet aux téléphones de récupérer rapidement leur conf après un déménagement.

Étape 3 — Vérifier le serveur DHCP

Connecte un PC sur SW1 Fa0/1 (VLAN 10) et passe-le en DHCP (Desktop > IP Configuration > DHCP). Au bout de quelques secondes, il reçoit une adresse. Sur R1, vérifie les baux distribués :

R1#show ip dhcp binding
IP address       Client-ID/             Lease expiration       Type
                 Hardware address
192.168.10.21    0001.2345.6789         Apr 30 2026 14:00 PM   Automatic

R1#show ip dhcp pool LAN_DATA
Pool LAN_DATA :
 Utilization mark (high/low)    : 100 / 0
 Subnet size (first/next)       : 0 / 0
 Total addresses                : 254
 Leased addresses               : 1
 Pending event                  : none
 1 subnet is currently in the pool :
 Current index        IP address range                    Leased addresses
 192.168.10.22        192.168.10.1     - 192.168.10.254       1

show ip dhcp conflict liste les conflits détectés (cas rare mais possible si une IP statique chevauche le pool). show ip dhcp server statistics donne les compteurs DORA.

Étape 4 — Relai DHCP entre VLAN

Quand le serveur DHCP est sur un sous-réseau différent du client, le broadcast DHCP du client ne traverse pas le routeur (les routeurs filtrent les broadcasts par construction). Solution : configurer un relai DHCP sur l’interface du routeur côté client, qui convertit le broadcast en unicast vers le serveur.

Imagine maintenant que le serveur DHCP n’est pas R1 mais un serveur dédié sur le VLAN 99, à l’IP 192.168.99.10. Sur R1, il faut :

R1(config)#interface GigabitEthernet0/0.10
R1(config-subif)#ip helper-address 192.168.99.10
R1(config)#interface GigabitEthernet0/0.20
R1(config-subif)#ip helper-address 192.168.99.10

Désormais, un Discover broadcast arrivant sur la sous-interface .10 est intercepté, encapsulé en unicast UDP vers 192.168.99.10, et l’Offer revient en suivant le chemin inverse. Le client n’a aucune conscience de cette mécanique. La même commande fonctionne pour relayer d’autres protocoles UDP en broadcast (TFTP, DNS, NetBIOS) — c’est l’option ip forward-protocol qui contrôle quels protocoles sont relayés.

Étape 5 — Configurer le client DNS sur le routeur

Le routeur Cisco peut lui-même utiliser DNS pour résoudre les noms (utile par exemple pour pinger cisco.com au lieu d’une IP). Deux commandes suffisent :

R1(config)#ip name-server 8.8.8.8 1.1.1.1
R1(config)#ip domain-lookup
R1(config)#ip domain-name pme.local

ip domain-lookup est activé par défaut, mais on le mentionne pour être explicite. Si tu fais ping google.com, le routeur résoudra. Désactive ip domain-lookup (avec no) en lab si tu veux éviter les longues attentes après une faute de frappe en CLI — Cisco interprète toute commande inconnue comme un nom DNS à résoudre, ce qui freeze 10 secondes en attente du timeout.

Étape 6 — Comprendre NAT et PAT

NAT (Network Address Translation) permet à un routeur de réécrire l’IP source d’un paquet sortant. Trois saveurs au CCNA :

  • NAT statique : un mapping permanent entre une IP interne et une IP publique. Typique pour publier un serveur web : 192.168.30.10 ↔ 200.64.30.10. Tout trafic vers 200.64.30.10 arrive sur 192.168.30.10, et le retour est translaté.
  • NAT dynamique : un pool d’IP publiques distribué à la volée aux clients internes qui sortent. Les clients sont toujours en NAT 1:1, mais l’attribution est dynamique. Peu utilisé en pratique.
  • PAT (Port Address Translation, ou NAT overload) : une seule IP publique partagée entre N clients internes en multiplexant sur les ports source. C’est ce qu’utilisent 99 % des PME et tous les FAI grand public (CGNAT). Le routeur maintient une table NAT qui mappe IP_interne:port_interne ↔ IP_publique:port_aléatoire.

Au CCNA, on configure les trois et on lit la table de translation.

Étape 7 — Configurer PAT (le cas le plus fréquent)

Suppose que R1 a une interface WAN GigE0/3 avec l’adresse publique 200.64.30.5/30 fournie par Sonatel. Tous les PC du LAN doivent sortir via cette IP unique.

R1(config)#ip access-list standard NAT_INSIDE
R1(config-std-nacl)#permit 192.168.10.0 0.0.0.255
R1(config-std-nacl)#permit 192.168.20.0 0.0.0.255
R1(config-std-nacl)#permit 192.168.99.0 0.0.0.255
R1(config-std-nacl)#exit

R1(config)#interface GigabitEthernet0/0.10
R1(config-subif)#ip nat inside
R1(config-subif)#exit
R1(config)#interface GigabitEthernet0/0.20
R1(config-subif)#ip nat inside
R1(config-subif)#exit
R1(config)#interface GigabitEthernet0/0.99
R1(config-subif)#ip nat inside
R1(config-subif)#exit

R1(config)#interface GigabitEthernet0/3
R1(config-if)#ip address 200.64.30.5 255.255.255.252
R1(config-if)#ip nat outside
R1(config-if)#no shutdown
R1(config-if)#exit

R1(config)#ip nat inside source list NAT_INSIDE interface GigabitEthernet0/3 overload
R1(config)#ip route 0.0.0.0 0.0.0.0 200.64.30.6

Décortiquons. L’ACL standard NAT_INSIDE définit qui a le droit d’être translaté. Les commandes ip nat inside et ip nat outside désignent quelles interfaces sont à l’intérieur (LAN, à translater) et à l’extérieur (Internet). La commande critique est ip nat inside source list NAT_INSIDE interface GigabitEthernet0/3 overload : elle dit « translate les sources qui matchent l’ACL NAT_INSIDE en utilisant l’IP de GigE0/3, en mode overload (PAT) ».

La route par défaut envoie tout ce qui n’est pas connu vers la passerelle Sonatel.

Teste depuis un PC du LAN : ping 8.8.8.8 doit fonctionner. Sur R1, observe la table NAT en action :

R1#show ip nat translations
Pro Inside global         Inside local         Outside local         Outside global
icmp 200.64.30.5:1         192.168.10.21:1      8.8.8.8:1             8.8.8.8:1
tcp  200.64.30.5:51234     192.168.10.21:51234  142.250.74.46:443     142.250.74.46:443
tcp  200.64.30.5:51235     192.168.20.50:51235  140.82.121.4:443      140.82.121.4:443

Trois flux simultanés : un ping vers 8.8.8.8, une connexion HTTPS depuis 192.168.10.21 vers Google, une autre depuis 192.168.20.50 vers GitHub. Tous translaté en sortie sur l’IP publique unique 200.64.30.5, distingués par leur port source aléatoire.

Étape 8 — NAT statique pour publier un serveur

Cas d’usage : la PME héberge un serveur web sur 192.168.30.10 et veut le rendre accessible depuis Internet via une seconde IP publique 200.64.30.6 (ou via le port 80 de l’IP principale en port-forwarding).

NAT statique 1:1 :

R1(config)#ip nat inside source static 192.168.30.10 200.64.30.6

Désormais, tout trafic vers 200.64.30.6 atterrit sur 192.168.30.10 et inversement. C’est bidirectionnel.

NAT statique avec port-forwarding (PAT statique) — partager le port 80 de l’IP WAN avec le serveur interne :

R1(config)#ip nat inside source static tcp 192.168.30.10 80 200.64.30.5 80
R1(config)#ip nat inside source static tcp 192.168.30.10 443 200.64.30.5 443

Désormais, un visiteur qui tape http://200.64.30.5 voit le serveur web 192.168.30.10. Toutes les autres requêtes vers 200.64.30.5 (HTTPS, SSH, etc.) sont gérées par PAT pour le LAN sortant.

Étape 9 — Vérifier et dépanner NAT

Les commandes essentielles :

show ip nat translations           (table de translation active)
show ip nat translations verbose   (avec timers de bail)
show ip nat statistics             (compteurs de hits, misses, expirations)
clear ip nat translation *         (vider la table — utile en debug)
debug ip nat                       (suivre les translations en temps réel)

Vérifie aussi avec show ip nat statistics la présence de l’ACL et l’identification correcte des interfaces inside/outside. Une erreur fréquente : oublier ip nat outside sur l’interface WAN, ce qui produit un comportement bizarre où NAT semble ignoré.

Erreurs fréquentes

Erreur Cause Solution
Client DHCP ne reçoit pas d’IP Pool DHCP mal configuré ou pas de relais entre VLAN Vérifier show ip dhcp pool et ip helper-address sur la sous-interface
Conflit d’IP entre statique et DHCP Plage d’exclusion non définie Ajouter ip dhcp excluded-address pour les IP statiques
Bail DHCP refusé en boucle ip address dhcp sur une interface du routeur lui-même Vérifier que le routeur n’est pas client DHCP sur le segment où il est serveur
NAT translate mais pas de réponse ip nat outside manquant sur WAN Ajouter ip nat outside sur l’interface publique
Tout trafic NAT vers une seule destination échoue Route par défaut absente Ajouter ip route 0.0.0.0 0.0.0.0 <gateway>
Table NAT remplit la mémoire Pas d’expiration des translations Vérifier les timeouts avec show ip nat translations verbose ; ajuster avec ip nat translation timeout
PAT échoue sur le 65 000ᵉ flux simultané Limite des ports éphémères atteinte Acceptable pour 95 % des PME ; sinon pool d’IP publiques avec NAT pool
Port-forwarding ne fonctionne que de l’extérieur Hairpin NAT non configuré Pour CCNA, sortir du LAN puis revenir ; en prod, configurer NAT loopback
Translation timeout après quelques secondes Timeout TCP par défaut trop court ip nat translation tcp-timeout 86400 pour 24h

Adaptation au contexte ouest-africain

Pour les PME équipées d’un Cisco ISR (1900, 2900, 4000) : la configuration ci-dessus tient sur 30 lignes et couvre 100 % des besoins quotidiens. Cisco IOS n’est pas le DHCP/NAT le plus performant du marché (un Mikrotik fait mieux pour 5 fois moins cher), mais pour une banque ou une grande entreprise déjà engagée Cisco, c’est ce qui sera déployé.

Pour les FAI locaux (Sonatel, Orange, Free SN, Africa Towers) : les box ADSL/FTTH grand public font du NAT/PAT par défaut avec une seule IP publique partagée. Pour les forfaits pro, l’opérateur peut fournir un /29 ou /30 avec IP publique fixe — utile pour publier un serveur. Toujours négocier l’IP publique lors de la souscription pro.

Pour les ESN qui font du dépannage : le diagnostic port-forwarding cassé est une plainte récurrente quand un client a changé de routeur. La compétence à vendre : reconfigurer un port-forwarding en 5 minutes via SSH plutôt que de demander au client de comprendre l’interface web Sonatel.

Pour les startups qui veulent héberger en interne : la combinaison PAT + port-forwarding sur Cisco te permet d’auto-héberger un site web ou un serveur de fichiers sur ta connexion fibre Sonatel pro pour 50 000 FCFA/mois, alternative crédible à un VPS à 30 000 FCFA chez Hetzner (cf. nos tutoriels self-hosting).

FAQ

DHCP IOS supporte combien de clients ?

Officiellement, des milliers, mais en pratique c’est limité par la mémoire du routeur. Pour plus de 200 clients ou des fonctionnalités avancées (réservations, options custom, scope par MAC), passer à un serveur DHCP dédié (Windows Server, ISC DHCP).

NAT casse-t-il IPv6 ?

NAT existe pour pallier l’épuisement IPv4. Avec IPv6, on a 340 sextillions d’adresses, donc plus besoin de NAT — chaque équipement a son IP publique. Les RFC IPv6 déconseillent NAT mais n’interdisent pas (NPTv6 existe pour des cas marginaux). Au CCNA, on étudie NAT exclusivement en IPv4.

Différence entre NAT et un firewall ?

NAT translate, firewall filtre. NAT a un effet de filtrage implicite (un attaquant Internet ne peut pas atteindre un PC interne car il n’y a pas de règle inbound pour lui), mais c’est un effet de bord. Un vrai firewall (Cisco ASA, FortiGate, pfSense) fait stateful inspection, deep packet inspection, IPS — c’est un autre niveau.

PAT supporte-t-il VoIP / SIP ?

Avec des limites. SIP a un problème classique : il transporte l’IP source dans le payload, ce qui passe à travers PAT sans être translaté, cassant la signalisation. Solution : SIP ALG (Application Layer Gateway) sur le routeur, ou STUN/TURN côté SIP. Hors scope CCNA, mais bon à savoir en prod.

Un client DHCP renouvelle son bail comment ?

À 50 % de la durée du bail, le client envoie un Request unicast au serveur d’origine pour renouveler. Si pas de réponse, à 87,5 %, il broadcaste un Discover. C’est pour ça qu’un bail trop court (1 minute) charge le serveur, et un bail trop long (1 mois) ne libère pas les IP des équipements partis.

Pourquoi le PAT s’appelle-t-il aussi NAT overload ?

Parce qu’on surcharge une seule IP publique avec N translations simultanées en variant le port source. La syntaxe Cisco utilise overload à la fin de la commande pour activer ce mode.

Pour aller plus loin


Mots-clés secondaires : DHCP Cisco IOS, ip helper-address, NAT PAT overload, ip nat inside outside, port forwarding Cisco, lease DHCP, option 150 téléphonie IP, RFC 1918 adresses privées.

Besoin d'un site web ?

Confiez-nous la Création de Votre Site Web

Site vitrine, e-commerce ou application web — nous transformons votre vision en réalité digitale. Accompagnement personnalisé de A à Z.

À partir de 250.000 FCFA
Parlons de Votre Projet
Publicité