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 vers200.64.30.10arrive sur192.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
- 🔝 Article cadre : Réussir le CCNA 200-301 depuis l’Afrique de l’Ouest — Guide complet 2026
- ⬅️ Prérequis : VLAN, trunk 802.1Q et inter-VLAN routing · ACL standards et étendues
- ➡️ Suite logique : Sécurité L2 Cisco : port-security, SSH, AAA local (à venir).
- ➡️ Plan de carrière : Plan de révision CCNA en 90 jours et examens blancs (à venir).
- Documentation officielle Cisco : DHCP Configuration Guide, NAT Configuration Guide sur cisco.com.
- RFC 2131 : DHCP. RFC 3022 : NAT traditionnel. RFC 1918 : adresses privées (10/8, 172.16/12, 192.168/16).
- Suggestion d’entraînement : ajoute un quatrième VLAN INVITE (15) au lab, avec son propre pool DHCP, sa propre route NAT, et une ACL qui interdit l’accès aux VLAN internes (DATA, VOICE, MGMT). C’est exactement le cas Wi-Fi invité d’une PME.
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.