CoursB2-07 - NAT/PAT et listes de contrôle d'accès
Cours · Fiche de cours
B2-07 - NAT/PAT et listes de contrôle d'accès
Sommaire
B2-07 NAT/PAT et listes de contrôle d'accès
🎓 SIO1 · semestre 2⏱️ 5 h (cours + TP)🎯 Bloc 2 – SISRFaire sortir tout un réseau privé sur Internet avec une seule adresse publique (NAT, PAT, redirection de port), puis contrôler qui a le droit de joindre quoi grâce aux listes de contrôle d'accès (ACL) du routeur.
🎯 Objectifs
Expliquer pourquoi les adresses privées ne sortent pas sur Internet et à quoi sert le NAT.
Distinguer NAT statique, NAT dynamique et PAT, et lire une table de traduction (inside local/global, ports).
Configurer le PAT et une redirection de port sur un routeur Cisco, puis les vérifier.
Écrire des ACL standard et étendues, numérotées et nommées, avec leur wildcard.
Placer une ACL au bon endroit et dans le bon sens, et limiter l'accès aux lignes vty.
Dépanner une panne de NAT ou d'ACL à partir des commandes de vérification.
Test express des prérequis 3 questions · 2 minutes · conseillé avant de commencer
1. Laquelle de ces adresses est une adresse privée ?
Le bloc privé 172.16.0.0/12 va de 172.16 à 172.31 : 172.20 en fait partie. Les deux autres adresses sont publiques. À revoir : B2-02 · Adressage IPv4.
2. Quand un routeur utilise-t-il sa route par défaut 0.0.0.0/0 ?
La plus longue correspondance l'emporte : /0 est le préfixe le moins précis, donc le dernier recours. À revoir : B2-06 · Routage statique et OSPF.
3. Quelles adresses peut-on donner à deux routeurs reliés par le réseau 203.0.113.0/30 ?
/30 : pas de 4, adresse du réseau .0, diffusion .3, donc seulement .1 et .2 sont utilisables. À revoir : B2-02 · Adressage IPv4.
Brocéliande Logistique (entreprise fictive, 60 salariés) vient de signer son accès Internet : l'opérateur livre une seule adresse publique, 203.0.113.2, pour tout le siège et l'agence de Rennes. Or tous les postes ont des adresses privées 172.16.x.x, que personne ne sait joindre sur Internet.
Deuxième sujet, interne cette fois : un terminal de l'entrepôt a ouvert par erreur un dossier de la comptabilité. Le responsable informatique veut que l'entrepôt ne puisse plus joindre la comptabilité, sans le couper du reste. Ta mission : faire sortir tout le monde par la même adresse (le NAT), puis poser le filtre sur le routeur (une ACL).
Le coursPourquoi et comment traduire les adresses (NAT, PAT, redirection de port), puis filtrer le trafic avec des ACL, les placer, les vérifier et dépanner l'ensemble.
1. Adresses privées, adresses publiques : pourquoi le NAT
IPv4 offre environ 4,3 milliards d'adresses : bien moins que d'appareils connectés dans le monde. Les adresses publiques sont donc rares et payantes. Pour que chaque entreprise ne gaspille pas les siennes, la RFC 1918 réserve trois blocs privés, réutilisables partout : 10.0.0.0/8, 172.16.0.0/12 et 192.168.0.0/16 (voir B2-02).
Mais un routeur d'Internet refuse de router une adresse privée : des millions de réseaux utilisent 172.16.10.1, personne ne saurait lequel joindre. Si PC-DIR envoyait tel quel un paquet à un serveur public, la réponse, adressée à 172.16.10.1, ne reviendrait jamais.
NAT (Network Address Translation) : le routeur de sortie réécrit les adresses des paquets qui le traversent. À l'aller, il remplace l'adresse source privée par une adresse publique ; au retour, il remet l'adresse privée dans la destination. Les postes gardent leurs adresses privées, Internet ne voit que l'adresse publique.
Clique sur le poste, sur le routeur R1 ou sur le serveur pour suivre l'adresse source d'un paquet.
Choisis un équipement : son rôle dans la traduction s'affiche ici.
Le NAT se fait sur le routeur qui relie le réseau privé à Internet : ici R1.
Pour bien comprendre : le standard téléphonique
Dans une entreprise, chaque bureau a un numéro de poste interne (101, 102…) que personne n'appelle de l'extérieur. Vers l'extérieur, tout le monde sort par le numéro du standard.
Quand le poste 102 appelle, le standard note dans son cahier d'appels « 102 a appelé ce correspondant » et le correspondant voit le numéro du standard. Quand il rappelle, le standard consulte son cahier et passe l'appel au poste 102.
Le routeur fait de même : postes = adresses privées, standard = adresse publique, cahier d'appels = table de traduction.
On dit souvent que le NAT « sécurise » le réseau parce que les postes ne sont pas joignables depuis Internet. C'est un effet de bord, pas une protection : le NAT ne filtre rien (un poste infecté sort très bien), et dès qu'on ajoute une redirection de port, le serveur redevient joignable. Le filtrage, c'est le rôle des ACL et du pare-feu (fiche B3-09).
2. Le vocabulaire du NAT : inside, outside, local, global
La documentation Cisco emploie quatre expressions qui déroutent au début. Elles répondent à deux questions : de quel côté du routeur se trouve la machine (inside : ton réseau, outside : Internet) et qui voit cette adresse (local : vue de l'intérieur, global : vue de l'extérieur).
R1 réécrit l'adresse source (inside local → inside global). Aucun changement pour la destination.
Inside localL'adresse du poste de ton réseau, telle qu'il la connaît : 172.16.10.1 (privée).
Inside globalLa même machine, vue d'Internet : 203.0.113.2 (publique, celle de R1).
Outside localLa machine distante, vue de l'intérieur : 198.51.100.10.
Outside globalLa machine distante, vraie adresse : 198.51.100.10. Presque toujours identique à l'outside local.
« Inside » désigne tes machines, « outside » celles d'en face. « Local » = ce que voit ton LAN, « global » = ce que voit Internet. Dans la pratique, une seule paire change : inside local (privée) → inside global (publique).
3. NAT statique, dynamique et PAT
Il existe trois façons de choisir l'adresse publique qui remplace l'adresse privée. Elles répondent à des besoins différents, et le routeur peut les utiliser en même temps.
Le PAT distingue les postes par le numéro de port : une seule adresse publique suffit.
Type
Principe
Quand l'utiliser
Commande IOS (forme)
Statique
Une adresse privée est liée à une adresse publique, en permanence et dans les deux sens
Un serveur qui doit être joignable de l'extérieur, avec sa propre adresse publique
ip nat inside source static 172.16.50.20 192.0.2.10
Dynamique
Le routeur prend une adresse libre dans un pool et la garde le temps de la communication
Plusieurs adresses publiques, mais moins que de postes
ip nat inside source list 1 pool PUBLIC
PAT (surcharge, overload)
Tous les postes partagent une adresse ; le routeur les distingue par le port source
Cas général : une seule adresse publique pour tout le site
ip nat inside source list 1 interface g0/1 overload
Les trois termes désignent la même chose. Dans le langage courant, « faire du NAT » sur une box ou un routeur d'entreprise veut presque toujours dire faire du PAT. Les adresses 192.0.2.x des exemples statique et dynamique sont réservées à la documentation, comme 203.0.113.x et 198.51.100.x.
4. Le PAT en détail : la table de traduction
Avec une seule adresse publique, comment R1 sait-il, quand une réponse arrive, à quel poste la rendre ? Grâce aux ports. Chaque connexion TCP ou UDP est identifiée par un couple adresse : port. R1 garde dans sa table une ligne par connexion, et c'est le port qui joue le rôle du numéro de poste dans le standard téléphonique.
La table de traduction est la mémoire du routeur : sans elle, la réponse ne pourrait pas retrouver le bon poste.
Et si deux postes choisissent le même port source ? C'est possible : le port est tiré au hasard dans une plage de 16 000 numéros environ. Dans ce cas, R1 choisit un autre port du côté public pour garder les lignes distinctes. Regarde l'animation : trois postes sortent en même temps par la même adresse.
Une adresse publique, des dizaines de milliers de ports : un site entier tient derrière une seule adresse.
Une ligne de la table disparaît après un temps d'inactivité : environ 1 minute pour un ping (ICMP), 5 minutes pour UDP et jusqu'à 24 heures pour TCP par défaut. On peut aussi la supprimer à la main avec clear ip nat translation *. Dans Packet Tracer, les numéros de ports traduits sont attribués autrement (souvent à partir de 1025) : lis la structure de la table, pas les chiffres exacts.
5. Redirection de port : joindre un serveur depuis l'extérieur
Le PAT ne marche que dans un sens : c'est un poste du réseau qui ouvre la connexion. Un visiteur qui tape https://203.0.113.2 arrive sur R1, qui ne trouve aucune ligne dans sa table : il ne sait pas à qui transmettre. Pour publier un service, on écrit la ligne à la main : c'est la redirection de port (port forwarding), un NAT statique limité à un port.
Seul le port 443 est redirigé : tous les autres ports de l'adresse publique restent fermés.
La règle se lit « tout ce qui arrive sur 203.0.113.2, port TCP 443, est renvoyé vers 172.16.50.20, port 443 ». SRV-WEB, l'intranet de Brocéliande Logistique, est le serveur du plan d'adressage qui arrive à l'étape 13 du fil rouge. La ligne apparaît dans la table sans qu'aucun poste n'ait rien demandé :
Cisco IOS R1redirection de port
R1(config)# ip nat inside source static tcp 172.16.50.20 443 203.0.113.2 443 R1(config)# do show ip nat translations
Pro Inside global Inside local Outside local Outside global
tcp 203.0.113.2:443 172.16.50.20:443 --- ---
Une redirection de port ouvre un chemin d'Internet vers ton réseau interne. Le serveur ainsi publié devient une cible : on le place dans une DMZ (zone séparée), derrière un pare-feu, avec des correctifs à jour. Le NAT seul ne remplace rien de tout cela (fiche B3-09).
6. Configurer et vérifier le NAT sur Cisco
6.1 Les quatre étapes
Désigner les interfaces : ip nat inside sur chaque interface qui reçoit le trafic du réseau privé, ip nat outside sur celle qui regarde Internet. Sur R1, il y a cinq sous-interfaces de VLAN et la liaison série vers Rennes à marquer « inside ».
Choisir ce qui sera traduit : une ACL standard qui liste les adresses privées concernées. Ici, ce n'est pas un filtre : permit signifie « à traduire ».
Écrire la règle : ip nat inside source list … interface … overload pour le PAT.
Prévoir la sortie : une route par défaut vers l'opérateur, sinon le paquet traduit ne sait pas où aller.
Cisco IOS R1PAT de tout le réseau 172.16.0.0/16
R1(config)# interface g0/1 R1(config-if)# ip address 203.0.113.2 255.255.255.252 R1(config-if)# ip nat outside ! côté Internet R1(config-if)# no shutdown R1(config-if)# interface g0/0.10 R1(config-subif)# ip nat inside ! à répéter sur .20 .30 .50 .99 et s0/0/0 R1(config-subif)# exit R1(config)# access-list 1 permit 172.16.0.0 0.0.255.255 ! qui a le droit d'être traduit R1(config)# ip nat inside source list 1 interface g0/1 overload ! la règle du PAT R1(config)# ip route 0.0.0.0 0.0.0.0 203.0.113.1 ! sortie vers l'opérateur
Les deux autres types utilisent le même schéma, seule la règle change. Avec un bloc public 192.0.2.8/29 acheté à l'opérateur :
Cisco IOS R1NAT dynamique et NAT statique (exemples)
! dynamique : un pool d'adresses publiques, chacune prêtée à un poste à la fois R1(config)# ip nat pool PUBLIC 192.0.2.9 192.0.2.14 netmask 255.255.255.248 R1(config)# ip nat inside source list 1 pool PUBLIC ! statique : un serveur toujours joignable à la même adresse publique R1(config)# ip nat inside source static 172.16.50.20 192.0.2.10
À toi : complète la configuration NAT de R1 pour Brocéliande Logistique. L'ACL numéro 1 autorise tout le réseau 172.16.0.0/16 ; l'interface vers Internet est G0/1 ; la sous-interface du VLAN 10 est G0/0.10. Vérifie chaque ligne avec ✓.
R1(config)#
R1(config)#
R1(config)#
R1(config-if)#
R1(config-if)#
R1(config-subif)#
6.2 Vérifier : show ip nat translations et statistics
Fais d'abord générer du trafic (un ping, une page web depuis un poste), puis lis la table. Elle est vide tant que personne n'a rien envoyé.
Cisco IOS R1la table, puis les statistiques
R1# show ip nat translations
Pro Inside global Inside local Outside local Outside global
tcp 203.0.113.2:49200 172.16.10.1:49200 198.51.100.10:80 198.51.100.10:80
tcp 203.0.113.2:1024 172.16.20.1:49200 198.51.100.10:80 198.51.100.10:80
icmp 203.0.113.2:7 172.16.30.1:7 198.51.100.10:7 198.51.100.10:7 R1# show ip nat statistics
Total active translations: 3 (0 static, 3 dynamic; 3 extended)
Outside interfaces:
GigabitEthernet0/1
Inside interfaces:
GigabitEthernet0/0.10, GigabitEthernet0/0.20, GigabitEthernet0/0.30, GigabitEthernet0/0.50, GigabitEthernet0/0.99, Serial0/0/0
Hits: 128 Misses: 3
Dynamic mappings:
-- Inside Source
[Id: 1] access-list 1 interface GigabitEthernet0/1 refcount 3
Inside globalCe qu'Internet voit : l'adresse publique de R1 et le port attribué (colonne 2).
Inside localL'adresse privée du poste et son port (colonne 3). C'est elle qui dit « qui ».
Outside local / globalLa machine distante et le service joint. Ici identiques : SRV-PUBLIC n'est pas traduit.
Hits et MissesHits : paquets traduits grâce à une ligne existante. Misses : paquets qui ont dû créer une ligne. Si les deux restent à 0 pendant un test, le NAT ne s'applique pas.
6.3 Observer en direct : debug ip nat
debug ip nat affiche chaque traduction au moment où elle a lieu. Utile pour comprendre ; à utiliser brièvement, car il ralentit un routeur chargé.
Cisco IOS R1lance un ping depuis PC-DIR pendant ce temps
R1# debug ip nat
IP NAT debugging is on
NAT*: s=172.16.10.1->203.0.113.2, d=198.51.100.10 [31]
NAT*: s=198.51.100.10, d=203.0.113.2->172.16.10.1 [32] R1# undebug all ! indispensable : on arrête dès que c'est compris R1# clear ip nat translation * ! vide la table pour refaire un test propre
La première ligne est l'aller (la source passe de 172.16.10.1 à 203.0.113.2), la seconde le retour (la destination repasse de 203.0.113.2 à 172.16.10.1). Le nombre entre crochets est l'identifiant du paquet IP.
7. Les ACL : une liste lue de haut en bas
Une ACL (liste de contrôle d'accès) est une liste de règles permit (autorise) et deny (refuse). On la applique à une interface, dans un sens : à chaque paquet qui passe, le routeur parcourt la liste de haut en bas et s'arrête à la première règle qui correspond. Cette règle décide.
Si aucune règle ne correspond, le paquet est refusé : à la fin de toute ACL, IOS ajoute une dernière règle invisible, le deny implicite (deny ip any any). Suis deux paquets de l'entrepôt dans l'ACL de Brocéliande Logistique.
Une ACL qui ne contient que des « deny » refuse tout : il faut presque toujours finir par un « permit ».
De haut en bas, la première ligne qui correspond décide, puis on s'arrête. On écrit donc les règles précises d'abord, les règles larges ensuite. En fin de liste, le deny implicite refuse tout ce qui n'a pas été autorisé.
La même commande access-list sert à deux choses très différentes. Appliquée à une interface avec ip access-group, elle filtre (permit = laisse passer, deny = jette). Citée par une règle NAT (ip nat inside source list 1), elle sélectionne les adresses à traduire : permit = « à traduire », deny = « ne pas traduire », rien n'est jeté.
Une ACL est sans état (stateless) : elle juge chaque paquet isolément, sans savoir s'il répond à une connexion déjà ouverte. L'ACL qui interdit 172.16.30.0/24 → 172.16.20.0/24 bloque donc aussi les réponses du VLAN 30 aux requêtes venues du VLAN 20. Un pare-feu « à états » (pfSense, fiche B3-09) suit les connexions et n'a pas ce défaut.
8. Wildcard, ACL standard, étendues, numérotées et nommées
8.1 Le wildcard : un masque à l'envers
Dans une ACL, une adresse est suivie d'un wildcard. Il se lit à l'inverse d'un masque : 0 = ce bit doit être identique, 1 = peu importe. Pour passer d'un masque au wildcard, on retranche chaque octet de 255.
Dans chaque case : l'octet de l'adresse (en haut) et celui du wildcard (en bas). Bleu : comparé. Orange : ignoré. Jaune : comparé en partie.
Réseau
Masque
Wildcard
Mot-clé possible
Une seule machine (/32)
255.255.255.255
0.0.0.0
host 172.16.99.20
Liaison /30
255.255.255.252
0.0.0.3
–
Bloc /27
255.255.255.224
0.0.0.31
–
Un VLAN (/24)
255.255.255.0
0.0.0.255
–
Tout le siège (/16)
255.255.0.0
0.0.255.255
–
Tout le monde (/0)
0.0.0.0
255.255.255.255
any
Pour vérifier une plage, le décodeur d'adresse te donne le réseau, la diffusion et le nombre d'hôtes (le wildcard est le masque « retourné »).
Entraîne-toi : donne le wildcard de chaque réseau (calcule 255 moins l'octet du masque).
Protocoleip (tous), icmp (ping), tcp ou udp (les seuls à avoir des ports).
Source + wildcardQui envoie : un réseau (172.16.30.0 0.0.0.255), une machine (host …) ou tout le monde (any).
Destination + wildcardQui reçoit, avec la même écriture que la source.
Port (facultatif)eq 3389 (égal), range 20 21, gt 1023 (supérieur) ; un nom remplace le numéro pour certains ports connus : eq www (= eq 80) ; sinon on donne le numéro, par exemple eq 443.
8.3 Numérotée ou nommée
ACL numérotée
ACL nommée
Création
Une commande par ligne : access-list 110 …
ip access-list extended NOM, puis les lignes
Lisibilité
Un numéro dont on oublie le rôle
Un nom parlant : ENTREPOT-VERS-COMPTA
Modification
Difficile : les lignes se suivent dans l'ordre d'écriture
Facile : numéros de séquence, insertion et suppression d'une ligne
Commentaire
access-list 110 remark …
remark …
Cisco IOS R1modifier une ACL nommée
R1(config)# ip access-list extended ENTREPOT-VERS-COMPTA R1(config-ext-nacl)# remark Interdit le VLAN 30 vers le VLAN 20 R1(config-ext-nacl)# 5 permit tcp host 172.16.30.50 host 172.16.20.10 eq 443 ! insérée AVANT la ligne 10 R1(config-ext-nacl)# no 5 ! supprime cette seule ligne R1(config-ext-nacl)# end
Pour un usage professionnel, utilise des ACL nommées : le nom dit ce que fait la liste, et les numéros de séquence permettent d'insérer une exception sans tout réécrire. Les numérotées restent utiles pour les ACL courtes (une ligne pour le NAT, une pour les vty) et sont attendues à l'examen.
9. Où et dans quel sens poser une ACL
9.1 Standard près de la destination, étendue près de la source
Une ACL standard ne regarde que la source : posée près de la source, elle bloquerait cette source vers toutes les destinations. On la pose donc au plus près de la destination. Une ACL étendue sait désigner précisément le flux à refuser : on la pose au plus près de la source, pour que le trafic refusé ne traverse pas le réseau pour rien.
Clique sur « ACL étendue » puis sur « ACL standard » : l'interface choisie s'allume.
Choisis un type d'ACL : la bonne interface et le bon sens s'affichent ici.
Le fil rouge utilise une ACL étendue : elle se pose en entrée de G0/0.30, près de l'entrepôt.
Standard : près de la destination. Étendue : près de la source. Une ACL standard mal placée coupe trop de choses ; une ACL étendue trop loin de la source fait voyager des paquets qui seront jetés.
9.2 Le sens : in ou out
Le sens se juge du point de vue du routeur. in : le paquet est testé à son arrivée sur l'interface, avant la décision de routage. out : il est testé à son départ, après la décision de routage. Une interface peut avoir une ACL par sens (une en in, une en out), pas davantage. Le NAT s'intercale à un endroit précis de ce trajet, ce qui compte quand on filtre une adresse traduite :
in = avant le routage, à l'arrivée ; out = après le routage, au départ. Le NAT se place entre les deux.
Un test pour ne pas se tromper : pose-toi la question « le paquet que je veux arrêter entre-t-il dans le routeur par cette interface ? » Si oui, c'est in. L'erreur classique est de poser out sur l'interface d'arrivée ou in sur l'interface de départ : l'ACL est alors correcte mais ne voit jamais le trafic visé.
9.3 Protéger l'accès au routeur : les lignes vty
Les lignes vty sont les « portes » par lesquelles on administre un équipement à distance (SSH). Pour n'autoriser que le poste d'administration, on ne touche pas aux interfaces : on applique une ACL standard avec access-class, sur les lignes vty, en in. C'est l'adresse source de celui qui se connecte qui est testée.
ip access-group s'applique à une interface et filtre le trafic qui la traverse. access-class s'applique à une ligne vty et filtre qui peut ouvrir une session d'administration sur le routeur lui-même. Les confondre est une erreur de syntaxe très fréquente.
10. Configurer et vérifier les ACL sur Cisco
10.1 Interdire l'entrepôt vers la comptabilité
Cisco IOS R1ACL étendue nommée, appliquée près de la source
R1(config)# ip access-list extended ENTREPOT-VERS-COMPTA R1(config-ext-nacl)# deny ip 172.16.30.0 0.0.0.255 172.16.20.0 0.0.0.255 ! le flux à refuser R1(config-ext-nacl)# permit ip any any ! tout le reste passe (sinon : deny implicite) R1(config-ext-nacl)# exit R1(config)# interface g0/0.30 R1(config-subif)# ip access-group ENTREPOT-VERS-COMPTA in ! en entrée, côté entrepôt
À toi : écris les lignes qui manquent pour créer l'ACL, puis l'appliquer au bon endroit. Vérifie chaque ligne avec ✓.
R1(config)#
R1(config-ext-nacl)#
R1(config-ext-nacl)#
R1(config)#
R1(config-subif)#
10.2 Limiter l'administration aux postes de gestion
Cisco IOS R1ACL standard sur les lignes vty
R1(config)# access-list 10 permit 172.16.99.0 0.0.0.255 ! le VLAN 99 GESTION R1(config)# line vty 0 4 R1(config-line)# access-class 10 in ! pas ip access-group : on est sur une ligne R1(config-line)# end
Avant d'appliquer une ACL sur les vty, assure-toi d'avoir une session ouverte depuis une adresse autorisée et ne ferme pas la fenêtre avant d'avoir testé. Une faute de frappe et tu t'enfermes dehors : il faudra alors le câble console.
10.3 Vérifier
Cisco IOS R1les compteurs « matches » prouvent que la règle sert
R1# show access-lists
Standard IP access list 1
10 permit 172.16.0.0, wildcard bits 0.0.255.255 (128 matches)
Extended IP access list ENTREPOT-VERS-COMPTA
10 deny ip 172.16.30.0 0.0.0.255 172.16.20.0 0.0.0.255 (8 matches)
20 permit ip any any (53 matches) R1# show ip interface g0/0.30 | include access list
Outgoing access list is not set
Inbound access list is ENTREPOT-VERS-COMPTA R1# clear access-list counters ! remet les compteurs à zéro avant un test
Teste toujours les deux côtés : le flux refusé doit échouer (et son compteur monter sur la ligne deny), et un flux voisin autorisé doit continuer de marcher. Une ACL « qui marche » parce que tout est coupé n'est pas une réussite.
11. Dépanner le NAT et les ACL
11.1 La méthode : du poste vers Internet
Un poste n'atteint pas Internet. Ne change rien au hasard : avance du poste vers la sortie, une question à la fois, et chaque réponse te dit où chercher.
Un poste n'accède pas à Internet Réponds à partir de tes tests
Le poste joint-il sa passerelle (par exemple ping 172.16.10.254) ?Si la passerelle ne répond pas, le NAT n'est pas en cause.
Depuis R1, ping 198.51.100.10 répond-il ?R1 utilise alors sa propre adresse publique : on teste la liaison avec l'opérateur et la route par défaut.
Après un ping du poste, show ip nat translations contient-il une ligne pour ce poste ?Lance le ping, puis lis la table tout de suite (les lignes de ping disparaissent en 1 minute).
Dans show ip nat statistics, l'interface d'arrivée du poste est-elle bien « inside » et G0/1 « outside » ?Pense aux cinq sous-interfaces et à la liaison série de Rennes.
Problème d'adressage ou de VLAN, pas de NAT : revois la passerelle du poste, son masque et son VLAN (fiches B2-02 et B2-03).
La sortie de R1 est en cause : vérifie le câble et l'adresse de G0/1 (show ip interface brief), la route par défaut (show ip route) et l'état de R-FAI.
Corrige les marquages : ip nat inside sur l'interface d'arrivée, ip nat outside sur G0/1. Une interface oubliée ou inversée n'est jamais traduite.
Les interfaces sont bonnes : regarde l'ACL de traduction (show access-lists) : le réseau du poste est-il bien couvert, le wildcard est-il juste ? Vérifie aussi la présence de overload dans la règle ip nat inside source.
Le NAT fonctionne : la panne est ailleurs. Cherche une ACL qui bloque le retour ou le service, la résolution de noms (teste d'abord par adresse IP) ou le serveur lui-même.
11.2 Pannes fréquentes
Symptôme
Cause probable
Vérification et correction
Table de traduction vide, Hits à 0
ip nat inside / outside absent ou inversé
show ip nat statistics : lister les interfaces et corriger
Un seul poste sort à la fois
Mot-clé overload oublié
show running-config | include nat, ajouter overload
Le siège sort, pas Rennes
S0/0/0 pas « inside », ou route par défaut non diffusée dans OSPF
show ip nat statistics sur R1, show ip route sur R2
Le ping répond, la page web non
Port refusé par une ACL, ou nom non résolu (DNS)
Tester par adresse IP ; show access-lists et ses compteurs
L'ACL n'a aucun effet
Non appliquée, mauvais sens ou mauvaise interface, règle trop large placée avant
show ip interface g0/0.30, show access-lists (matches à 0 ?)
Tout est coupé après la pose de l'ACL
Pas de permit final : le deny implicite refuse le reste
Ajouter permit ip any any en dernière ligne
11.3 Entraîne-toi : les tickets du support
Tu es de permanence au support de Brocéliande Logistique. Six tickets arrivent les uns après les autres : lis le message, observe le relevé, puis choisis la cause.
File d'attente du support6 tickets · un à la fois · l'explication s'affiche après ta réponse
Ticket n° 1De : toute l'entreprisePriorité haute
« Depuis la mise en place du NAT ce matin, plus personne ne sort sur Internet. Les routeurs se pingent entre eux. »
Cause : les sous-interfaces des VLAN sont déclarées « outside » et G0/1, qui regarde Internet, « inside ». Aucun paquet n'entre par une interface inside vers une interface outside : rien n'est traduit (Hits à 0). Correction :ip nat inside sur les sous-interfaces, ip nat outside sur G0/1, après avoir retiré les mauvaises commandes avec no ip nat outside et no ip nat inside.
Ticket n° 2De : agence de RennesPriorité haute
« Nous joignons le serveur du siège, mais impossible d'ouvrir un site Internet. Au siège, tout marche. »
Cisco IOS relevés sur R1 et R2
R1# show ip nat statistics
Outside interfaces:
GigabitEthernet0/1
Inside interfaces:
GigabitEthernet0/0.10, GigabitEthernet0/0.20, GigabitEthernet0/0.30,
GigabitEthernet0/0.50, GigabitEthernet0/0.99
Hits: 214 Misses: 3
R2# show ip route | include last resort
Gateway of last resort is 10.0.0.1 to network 0.0.0.0
Quelle est la cause ?
Cause : R2 a bien sa route par défaut (le relevé le montre). Mais le trafic de Rennes entre dans R1 par S0/0/0, qui n'est pas listée parmi les interfaces inside : il est routé vers Internet sans traduction, avec une source privée que R-FAI ne sait pas joindre. Correction :interface s0/0/0 puis ip nat inside.
Ticket n° 3De : comptabilitéPriorité moyenne
« La direction navigue sans problème, mais chez nous, à la comptabilité, rien ne sort. »
Cisco IOS R1 · show running-config | include nat|access-list 1
access-list 1 permit 172.16.10.0 0.0.0.255
ip nat inside source list 1 interface GigabitEthernet0/1 overload
Quelle est la cause ?
Cause : l'ACL de traduction ne contient que le VLAN 10 : seuls ses postes sont traduits. Les autres VLAN sortent avec leur adresse privée et ne reçoivent jamais de réponse. Correction :no access-list 1, puis access-list 1 permit 172.16.0.0 0.0.255.255.
Ticket n° 4De : agence de RennesPriorité haute
« Nous joignons toujours le siège. Mais depuis hier, le NAT du siège est en place et nous n'avons toujours pas Internet. »
Cisco IOS relevés sur R1 et R2
R1# show ip route static
S* 0.0.0.0/0 [1/0] via 203.0.113.1
R1# show ip ospf neighbor
2.2.2.2 0 FULL/ - 00:00:33 10.0.0.2 Serial0/0/0
R2# show ip route
Gateway of last resort is not set
C 10.0.0.0/30 is directly connected, Serial0/0/0
O 172.16.10.0/24 [110/65] via 10.0.0.1, Serial0/0/0
C 172.16.60.0/24 is directly connected, GigabitEthernet0/0
Quelle est la cause ?
Cause : le voisinage est bien en FULL et R2 reçoit les réseaux du siège, mais « Gateway of last resort is not set » : la route par défaut de R1 est statique et OSPF ne la transmet pas tout seul. Correction : sur R1, router ospf 1 puis default-information originate. R2 affichera alors O*E2 0.0.0.0/0 via 10.0.0.1.
Ticket n° 5De : entrepôtPriorité haute
« Depuis ce matin, l'entrepôt ne joint plus rien : ni le serveur, ni Internet, ni les imprimantes. La comptabilité, elle, fonctionne. »
Cisco IOS R1 · show access-lists
Extended IP access list ENTREPOT-VERS-COMPTA
10 deny ip 172.16.30.0 0.0.0.255 172.16.20.0 0.0.0.255 (312 matches)
Quelle est la cause ?
Cause : l'ACL ne contient qu'un deny. Tout paquet de l'entrepôt qui ne vise pas la comptabilité ne correspond à rien et tombe sur le deny implicite. Correction :ip access-list extended ENTREPOT-VERS-COMPTA puis permit ip any any (ajouté en fin de liste).
« J'ai posé l'ACL qui bloque l'entrepôt vers la comptabilité, mais un poste de l'entrepôt ouvre toujours les dossiers de la compta. »
Cisco IOS R1 · show access-lists
Extended IP access list ENTREPOT-VERS-COMPTA
10 permit ip any any (947 matches)
20 deny ip 172.16.30.0 0.0.0.255 172.16.20.0 0.0.0.255
Quelle est la cause ?
Cause : la ligne 10 laisse tout passer et la première correspondance gagne : la ligne 20 n'est jamais lue (aucune « matches »). Correction :ip access-list extended ENTREPOT-VERS-COMPTA, no 10, puis 30 permit ip any any pour que le deny passe en premier.
12. À l'examen et en entreprise
Documenter le NAT : l'adresse publique, la liste des réseaux traduits, les interfaces inside et outside, et les redirections de port avec leur justification. Le schéma montre l'adresse avant et après le routeur.
Documenter le filtrage : une matrice de flux (qui a le droit de joindre quoi, sur quel port) d'où l'on déduit chaque ACL. Chaque ACL est nommée, commentée (remark) et appliquée sur une interface précise, dans un sens précis.
Prouver : show ip nat translations pendant un test, show access-lists avec les compteurs, et un cahier de recette avec un test qui réussit et un test qui doit échouer.
Justifier : pourquoi du PAT plutôt qu'un pool, pourquoi une ACL étendue ici, pourquoi proche de la source. Le jury demande souvent ce qui se passe si l'on inverse deux lignes.
Connaître les limites : une ACL est sans état et le NAT ne protège pas. En entreprise, le filtrage sérieux se fait avec un pare-feu (pfSense, fiche B3-09), les ACL des routeurs servant de première barrière.
13. L'essentiel
Les adresses privées (10/8, 172.16/12, 192.168/16) ne sont pas routées sur Internet : le NAT les remplace par une adresse publique.
Vocabulaire : inside = ton réseau, outside = Internet ; local = vu du LAN, global = vu d'Internet.
Trois types : statique (1 pour 1, fixe), dynamique (pool), PAT (plusieurs postes, une adresse, distingués par les ports).
Le routeur garde une table de traduction, une ligne par connexion : c'est ce qui permet de rendre la réponse au bon poste.
La redirection de port (ip nat inside source static tcp …) publie un seul service d'un serveur interne.
PAT sur Cisco : ip nat inside / ip nat outside, une ACL de traduction, puis ip nat inside source list 1 interface g0/1 overload, et une route par défaut.
Une ACL se lit de haut en bas : la première correspondance décide ; en fin de liste, le deny implicite refuse le reste.
Wildcard = masque inversé (0 = comparé, 1 = ignoré) : 0.0.0.255 pour un /24, host pour une adresse, any pour tout.
Standard (source seule) près de la destination ; étendue (source, destination, port) près de la source. ip access-group … in|out sur une interface, access-class sur les vty.
On vérifie avec show ip nat translations, show ip nat statistics et show access-lists ; on teste toujours un flux refusé et un flux autorisé.
La fiche en une image : à refaire de mémoire, sur une feuille, avant de passer aux exercices.
Les commandes clés
Pour…
Commandes (Cisco IOS)
Marquer les interfaces
ip nat inside (LAN, sous-interfaces, série) · ip nat outside (G0/1)
PAT
access-list 1 permit 172.16.0.0 0.0.255.255 · ip nat inside source list 1 interface g0/1 overload
Redirection de port
ip nat inside source static tcp 172.16.50.20 443 203.0.113.2 443
Sortie Internet
ip route 0.0.0.0 0.0.0.0 203.0.113.1 · default-information originate (dans OSPF)
ACL étendue nommée
ip access-list extended NOM · deny ip 172.16.30.0 0.0.0.255 172.16.20.0 0.0.0.255 · permit ip any any · ip access-group NOM in
Limiter les vty
access-list 10 permit 172.16.99.0 0.0.0.255 · line vty 0 4 · access-class 10 in
Vérifier
show ip nat translations · show ip nat statistics · show access-lists · clear ip nat translation *
Tout cela tient sur une page : utilise le bouton Mémo à imprimer en haut de la fiche.
La pratiqueLe quiz noté pour vérifier tes acquis, les exercices à rendre à ton professeur, puis le fil rouge Packet Tracer pour mettre en pratique.
14. Quiz noté
8 questions · 10 minutesRéponds à toutes les questions, puis valide. Seule ta première tentative est enregistrée : elle compte dans ton suivi. Ensuite, tu peux t'entraîner autant que tu veux.
1. PC-DIR (172.16.10.1) contacte SRV-PUBLIC à travers R1 en PAT. Quelle adresse source SRV-PUBLIC voit-il ?
2. Dans show ip nat translations, que contient la colonne « Inside local » ?
3. Que permet le mot-clé overload dans ip nat inside source list 1 interface g0/1 overload ?
4. Quel est l'effet de ip nat inside source static tcp 172.16.50.20 443 203.0.113.2 443 ?
5. Quel wildcard désigne tout le réseau 172.16.30.0/24 ?
6. Une ACL contient, dans cet ordre : 10 permit ip any any puis 20 deny ip 172.16.30.0 0.0.0.255 172.16.20.0 0.0.0.255. Que devient un paquet de 172.16.30.1 vers 172.16.20.1 ?
7. Où place-t-on de préférence une ACL étendue ?
8. Une ACL nommée ne contient qu'une ligne deny et est appliquée à une interface. Que devient le trafic qui ne correspond pas à cette ligne ?
15. Exercices : à toi de répondre
Écris ta réponse sous chaque énoncé et envoie-la à ton professeur. Quand il l'a validée, le corrigé s'affiche à la place du cadenas ; s'il te la renvoie « à revoir », lis son commentaire et corrige. Montre ta méthode, pas seulement le résultat.
Exercice 1 – Lire une table de traduction (SIO1)
Voici la table de R1 relevée pendant un test. R1 a une seule adresse publique, 203.0.113.2.
Cisco IOS R1 · show ip nat translations
Pro Inside global Inside local Outside local Outside global
tcp 203.0.113.2:49200 172.16.10.1:49200 198.51.100.10:80 198.51.100.10:80
tcp 203.0.113.2:1024 172.16.20.2:49200 198.51.100.10:80 198.51.100.10:80
tcp 203.0.113.2:51000 172.16.30.1:51000 198.51.100.10:443 198.51.100.10:443
1) Quel poste ouvre une connexion HTTPS ? 2) Quelle adresse source SRV-PUBLIC voit-il pour la connexion de 172.16.20.2 ? 3) Pourquoi la 2e ligne a-t-elle le port 1024 alors que le poste utilise le port 49200 ? 4) SRV-PUBLIC répond à 203.0.113.2:51000 : vers quelle adresse R1 envoie-t-il la réponse ? 5) Combien d'adresses publiques cette table consomme-t-elle ?
Le corrigé s'affichera ici dès que ton professeur aura validé ta réponse. Cherche d'abord par toi-même : c'est en se trompant qu'on retient.
Exercice 2 – Écrire des ACL (SIO1)
R1 porte déjà ENTREPOT-VERS-COMPTA en entrée de G0/0.30 (lignes 10 deny vers le VLAN 20 et 20 permit ip any any). La direction demande maintenant que le VLAN 30 ne puisse plus ouvrir de session bureau à distance (TCP 3389) sur SRV-01 (172.16.50.10), sans rien changer d'autre. Écris les commandes, en expliquant pourquoi tu ne crées pas une deuxième ACL. Puis écris celles qui limitent les connexions SSH vers R1 au seul PC-ADMIN (172.16.99.20).
Le corrigé s'affichera ici dès que ton professeur aura validé ta réponse. Cherche d'abord par toi-même : c'est en se trompant qu'on retient.
Exercice 3 – Corriger une configuration (SIO1)
Un collègue a configuré le NAT de R1, mais les postes ne sortent pas. Trouve les trois erreurs, corrige-les et dis quelle commande de vérification les aurait révélées.
Cisco IOS R1 · extrait de la configuration
interface GigabitEthernet0/0.20
ip nat inside
interface GigabitEthernet0/0.30
ip nat outside
interface GigabitEthernet0/1
ip address 203.0.113.2 255.255.255.252
ip nat outside
!
access-list 1 permit 172.16.0.0 0.0.0.255
ip nat inside source list 1 interface GigabitEthernet0/1
Le corrigé s'affichera ici dès que ton professeur aura validé ta réponse. Cherche d'abord par toi-même : c'est en se trompant qu'on retient.
Exercice 4 – Concevoir (SIO2)
Brocéliande Logistique veut publier son intranet en HTTPS (SRV-WEB, 172.16.50.20) pour les commerciaux en déplacement, avec la seule adresse publique 203.0.113.2. Le directeur technique demande aussi de filtrer l'entrée de G0/1 : seul l'HTTPS vers l'intranet doit pouvoir démarrer depuis Internet, les réponses aux connexions du réseau doivent revenir, et les adresses privées ne doivent pas être acceptées en provenance d'Internet. Propose la redirection de port et l'ACL (nom, lignes, interface, sens). Explique pourquoi l'ACL doit citer 203.0.113.2 et non 172.16.50.20, puis les limites de cette solution.
Le corrigé s'affichera ici dès que ton professeur aura validé ta réponse. Cherche d'abord par toi-même : c'est en se trompant qu'on retient.
16. Fil rouge : Internet et le filtrage de l'entrepôt
Étape 7sur 17
Fil rouge Packet Tracer · Accès Internet : NAT/PAT et ACLTu construis le réseau de Brocéliande Logistique fiche après fiche : chaque étape repart de la précédente.
Tu pars de ta maquette de l'étape 6 (B2-06) : FR-06-NOM-Prenom.pkt.
Tu enregistresFR-07-NOM-Prenom.pkt, point de départ de l'étape 8 (B2-08 · Le Wi-Fi de l'entrepôt).
Où tu en es, où tu vas
Le tableau donne l'état de chaque équipement à l'entrée de l'étape (fin de l'étape 6) et ce que tu dois obtenir à la sortie. Tu n'as pas ta maquette FR-06 ? Reconstruis-la d'abord avec les fiches B2-03, B2-04 puis B2-06. Compte 45 minutes.
G0/1 = 203.0.113.2/30, ip nat outside ; route par défaut vers 203.0.113.1 ; ip nat inside sur les cinq sous-interfaces et S0/0/0 ; PAT overload sur G0/1 pour 172.16.0.0/16 ; default-information originate dans OSPF ; ACL ENTREPOT-VERS-COMPTA en entrée de G0/0.30
Aucune commande à saisir : reçoit la route par défaut d'OSPF (O*E2 0.0.0.0/0)
SW1, SW2, SW3, postes, SRV-01
2960-24TT, PC-PT, Server-PT
VLAN, Rapid PVST+, Po1, adresses des étapes 4 à 6
Inchangés
Câblage ajouté à cette étape :
De
Port
Vers
Port
Câble
R1
G0/1
R-FAI
G0/0
Cuivre croisé (deux routeurs)
R-FAI
G0/1
SRV-PUBLIC
Fa0
Cuivre croisé (routeur vers serveur)
Au labo, tu disposes des mêmes modèles en vrai : routeurs Cisco 1941, commutateurs Cisco 2960 et, pour le routage de niveau 3, commutateurs Cisco 3750. Dans Packet Tracer, choisis le 1941 et le 2960-24TT ; le 3750 n'y existe pas, on le remplace par le 3560-24PS, qui se configure de la même façon. R-FAI joue ici le rôle de l'opérateur : en vrai, c'est lui qui te fournit l'adresse publique et la passerelle.
À la sortie de l'étape : tout le monde sort par 203.0.113.2, Rennes aussi, et l'entrepôt ne joint plus la comptabilité.
Ce que tu ajoutes à cette étape
Un Internet fictif : R-FAI et SRV-PUBLIC, avec une adresse publique pour R1.
Le PAT sur G0/1 : tous les VLAN et Rennes sortent par une seule adresse.
La route par défaut diffusée à Rennes par OSPF.
Une ACL étendue : l'entrepôt (VLAN 30) ne joint plus la comptabilité (VLAN 20).
1 Repartir de l'étape précédente
Ouvre FR-06-NOM-Prenom.pkt et enregistre-la tout de suite sous FR-07-NOM-Prenom.pkt (File → Save As) : ton travail de l'étape précédente reste intact.
2 Construire l'Internet fictif
Pose un routeur 1941 et un Server-PT à droite de R1, nomme-les R-FAI et SRV-PUBLIC, puis passe les deux câbles croisés du tableau. Configure R-FAI :
Cisco IOS R-FAIl'opérateur fictif
Router(config)# hostname R-FAI R-FAI(config)# interface g0/0 R-FAI(config-if)# description Vers R1 (client Broceliande) R-FAI(config-if)# ip address 203.0.113.1 255.255.255.252 R-FAI(config-if)# no shutdown R-FAI(config-if)# interface g0/1 R-FAI(config-if)# description Vers SRV-PUBLIC R-FAI(config-if)# ip address 198.51.100.1 255.255.255.0 R-FAI(config-if)# no shutdown R-FAI(config-if)# end R-FAI# copy running-config startup-config
Sur SRV-PUBLIC (Desktop → IP Configuration) : adresse 198.51.100.10, masque 255.255.255.0, passerelle 198.51.100.1. Onglet Services → HTTP : service activé (On), la page d'accueil par défaut suffit.
3 Raccorder R1 et constater l'impasse
Cisco IOS R1adresse publique et route par défaut
R1(config)# interface g0/1 R1(config-if)# description Vers R-FAI (Internet) R1(config-if)# ip address 203.0.113.2 255.255.255.252 R1(config-if)# no shutdown R1(config-if)# exit R1(config)# ip route 0.0.0.0 0.0.0.0 203.0.113.1 R1(config)# do ping 198.51.100.10 ! !!!!! : R1 joint SRV-PUBLIC avec sa propre adresse publique
Depuis PC-DIR, ping 198.51.100.10 : il échoue. Le paquet part avec la source 172.16.10.1 ; SRV-PUBLIC pourrait répondre, mais R-FAI ne connaît aucune route vers 172.16.0.0/16. C'est exactement le problème que le PAT va résoudre.
4 Configurer le PAT
Marque d'abord les interfaces : les cinq sous-interfaces et la liaison série vers Rennes sont « inside », G0/1 est « outside ».
Cisco IOS R1interfaces, ACL de traduction et règle
R1(config)# interface g0/1 R1(config-if)# ip nat outside R1(config-if)# interface g0/0.10 R1(config-subif)# ip nat inside R1(config-subif)# interface g0/0.20 R1(config-subif)# ip nat inside R1(config-subif)# interface g0/0.30 R1(config-subif)# ip nat inside R1(config-subif)# interface g0/0.50 R1(config-subif)# ip nat inside R1(config-subif)# interface g0/0.99 R1(config-subif)# ip nat inside R1(config-subif)# interface s0/0/0 R1(config-if)# ip nat inside ! sans cela, Rennes ne sort pas traduit R1(config-if)# exit
À toi, pour finir le PAT : l'ACL numéro 1 qui désigne tout le réseau 172.16.0.0/16, puis la règle de traduction vers l'interface G0/1 avec surcharge. Vérifie chaque ligne avec ✓, ou tout d'un coup avec Vérifier.
R1(config)#
R1(config)#
Dans Packet Tracer, la commande ip nat inside source list 1 interface g0/1 overload est refusée si l'ACL 1 n'existe pas encore ou si G0/1 n'a pas d'adresse. Écris l'ACL avant la règle, et vérifie l'adresse de G0/1 avec show ip interface brief.
5 Diffuser la route par défaut à Rennes
R2 ne connaît pas Internet : sa table n'a que le siège et Rennes. Plutôt que d'écrire une route par défaut sur chaque routeur, demande à R1 de l'annoncer dans OSPF.
Complète les deux commandes sur R1 (processus OSPF 1, puis l'annonce de la route par défaut).
R1(config)#
R1(config-router)#
Après quelques secondes, show ip route sur R2 affiche O*E2 0.0.0.0/0 [110/1] via 10.0.0.1, Serial0/0/0 et la ligne « Gateway of last resort is 10.0.0.1 ». Tu n'as rien tapé sur R2.
6 Tester et observer la traduction
Depuis le siège : sur PC-DIR, ping 198.51.100.10 (le premier paquet peut expirer le temps de l'ARP) puis, dans Web Browser, ouvre http://198.51.100.10 : la page de SRV-PUBLIC s'affiche.
Depuis Rennes : même test sur PC-RENNES.
La table : sur R1, show ip nat translations affiche l'inside global 203.0.113.2 face aux inside local 172.16.10.1 et 172.16.60.1 ; show ip nat statistics liste G0/1 en outside et les six interfaces inside.
L'adresse change : passe en mode Simulation, refais le ping de PC-DIR et clique sur le paquet entre R1 et R-FAI (Outbound PDU Details) : la source est devenue 203.0.113.2.
Le retour : sur R-FAI, show ip route ne contient que deux réseaux connectés ; aucune ligne 172.16.x.x. R-FAI ne connaît pas ton réseau privé.
7 Poser l'ACL de l'entrepôt
Avant de la poser, vérifie que le problème existe : ping 172.16.20.1 depuis PC-ENTREPOT répond. Puis crée l'ACL et applique-la près de la source.
Cisco IOS R1ACL étendue nommée en entrée de G0/0.30
R1(config)# ip access-list extended ENTREPOT-VERS-COMPTA R1(config-ext-nacl)# deny ip 172.16.30.0 0.0.0.255 172.16.20.0 0.0.0.255 R1(config-ext-nacl)# permit ip any any R1(config-ext-nacl)# exit R1(config)# interface g0/0.30 R1(config-subif)# ip access-group ENTREPOT-VERS-COMPTA in R1(config-subif)# end R1# show access-lists ! les compteurs montent après tes tests R1# copy running-config startup-config
L'ACL étant sans état, PC-COMPTA ne peut plus non plus joindre PC-ENTREPOT : la réponse du VLAN 30 serait refusée au passage. C'est attendu : vérifie-le avec le test 11 de la recette.
8 Valider l'étape : le cahier de recette
Sauvegarde d'abord : wr sur R1 et R-FAI, puis enregistre le fichier .pkt.