Le NAT et le PAT pour les débutants
Sommaire
I. Présentation
Dans cet article, je vais vous parler de réseau informatique, et plus précisément de NAT, de PAT et de redirections de port car ces trois concepts sont liés. Il s'agit de notions très importantes qu'il faut maîtriser lorsque l'on s'intéresse au fonctionnement d'un réseau informatique car nous utilisons tous le NAT au quotidien ! C'est également un sujet auquel vous devez vous intéresser si vous souhaitez une façon simple de rendre accessible certaines ressources de votre réseau local depuis Internet (un NAS, un serveur, etc...).
En complément de cet article, je vous recommande la lecture de ceux-ci (vidéo incluse) :
II. Le principe du NAT
Tout d'abord, il faut savoir que l'acronyme NAT correspond à Network Address Translation, c'est-à-dire en français une traduction d'adresse réseau. Il s'agit d'un mécanisme mis en place sur les routeurs afin de remplacer l'adresse IP privée source d'une machine par l'adresse IP publique du routeur dans un paquet réseau lorsqu'une machine tente de communiquer avec un serveur situé sur Internet.
A. Pourquoi inventer un tel mécanisme ?
A la base, le NAT a été inventé afin d'apporter une réponse à la future pénurie d'adresses IPv4 ! Je vous rappelle que le nombre d'adresses IPv4 n'est pas illimité, puisqu'une adresse IP est codée sur 4 octets (soit 32 bits car 1 octet = 8 bits) et que cela nous donne 2^32 adresses IP disponibles au maximum, soit 4 294 967 296 d'adresses IP. On va dire, un peu plus de 4 milliards. Ainsi, il y a des adresses IP dites privées que l'on utilise seulement sur les réseaux locaux (et qui sont réutilisables d'un réseau local à un autre), et les adresses IP dites publiques utilisées pour les communications sur Internet.
Le NAT est une réponse à cette problématique ! A la base, cela devait être une réponse temporaire... Car la véritable réponse, ce sont les adresses IPv6 (codées sur 16 octets, soit 128 bits) ! Même si depuis plusieurs années, nous avons la possibilité d'utiliser les adresses IPv6, les adresses IPv4 restent les plus exploitées et nous utilisons plus souvent des adresses IPv4 que des adresses IPv6, il faut l'avouer.
Grâce au NAT tel que nous l'utilisons à la maison, notamment par l'intermédiaire de notre box Internet, plusieurs appareils peuvent partager la même adresse IP publique donc on fait des économies en terme d'utilisation des adresses IP publiques ! Par définition, une adresse IP privée telle que "192.168.1.10/24" n'est pas utilisable directement sur Internet mais grâce au NAT, on va pouvoir accéder à Internet malgré tout.
B. Le fonctionnement du NAT
Pour bien comprendre, prenons l'exemple suivant : mon "Ordinateur 1" est connecté au réseau de mon domicile, où se situe ma box Internet (et donc où il y a du NAT en place). Je souhaite accéder à un serveur Web ayant pour adresse IP publique 50.50.50.50 afin d'accéder au site it-connect.fr. Que se passe-t-il ?
Premièrement, mon ordinateur avec l'adresse IP "192.168.1.10" va tenter de se connecter au serveur Web "50.50.50.50", donc une requête va être envoyée à destination de ce serveur Web, en passant par mon routeur, c'est-à-dire la box. On passe par le routeur car c'est la passerelle par défaut (route par défaut) de mon réseau local, et qu'elle est définie sur ma machine.
Deuxièmement, au moment où ma requête émise de mon ordinateur à destination du serveur Web arrive à mon routeur, le mécanisme du NAT va entrer en jeu ! Autrement dit, ma requête n'est pas directement envoyée au serveur Web. Puisque le NAT est actif, le routeur va modifier le paquet réseau avant de l'envoyer au serveur Web, afin de remplacer l'adresse IP source "192.168.1.10" par "61.61.61.61" qui est l'adresse IP publique de ma box. Une fois que cette opération est effectuée, le paquet est émis au serveur Web "50.50.50.50".
Troisièmement, la requête arrive jusqu'au serveur Web, et ce dernier voit que la requête provient de l'adresse IP "61.61.61.61". Autrement dit, il associe mon ordinateur 1 à l'adresse IP publique "61.61.61.61", et à aucun moment il n'aura connaissance de mon adresse IP privée, à savoir "192.168.1.10/24".
Passons à la phase retour, lorsque le serveur Web va répondre au client pour lui indiquer le contenu de la page Web du site, par exemple.
Quatrièmement, le serveur Web va répondre à l'ordinateur 1 en envoyant sa réponse sur l'adresse IP publique "61.61.61.61", ce qui est logique. Le paquet est réceptionné par le routeur (la box), en provenance de 50.50.50.50.
Cinquièmement, la box a mémorisée cette connexion (grâce à une table de translation) et donc elle sait qu'elle doit adresser le paquet reçu de la part du serveur Web à notre ordinateur 1. A partir de son adresse IP "192.168.1.1", le routeur envoie la réponse à ordinateur 1, mais l'ordinateur 1 voit la réponse comme si elle provenait directement du serveur Web "50.50.50.50".
Le mécanisme de NAT sert d'intermédiaire entre le réseau local et Internet. Il présente l'avantage de masquer les machines du réseau local vis-à-vis d'Internet car elles ne sont pas directement accessibles d'Internet vers le réseau local, ce qui peut-être intéressant niveau sécurité. Néanmoins, nous verrons par la suite que l'on peut permettre cet accès par l'intermédiaire d'une redirection de ports.
III. Les types de NAT
Dans la suite de cet article, nous verrons qu'il y a plusieurs types de NAT, et nous allons identifier facilement le type de NAT que nous utilisons tous au quotidien, à la maison.
A. NAT statique
L'objectif du NAT statique est de traduire une adresse IP privée en une adresse IP publique, en fonctionnant par association statique, c'est-à-dire un pour un. Autrement dit, une adresse IP privée est associée à une adresse IP publique ! Prenons le tableau suivant comme exemple :
Appareils | Adresse IP privée | Adresse IP publique |
Ordinateur 1 | 192.168.1.10 | 61.61.61.61 |
Ordinateur 2 | 192.168.1.11 | 61.61.61.62 |
Ainsi, lorsque notre ordinateur 1 accédera à Internet, son adresse IP privée "192.168.1.10" sera automatiquement remplacée par "61.61.61.61". D'un autre côté, lorsque l'ordinateur 2 accédera à Internet, son adresse IP privée "192.168.1.11" sera remplacée par "61.61.61.62". Cela est également vrai pour l'inverse, une requête envoyée sur l'adresse IP "61.61.61.61" sera automatiquement transmise à "Ordinateur 1" puisqu'il est associé à cette adresse IP publique.
Ce mécanisme montre rapidement ses limites car chaque machine du réseau interne doit disposer à la fois d'une adresse IP privée et d'une adresse IP publique. Le NAT statique, appelé également "NAT one-to-one" peut servir à rendre accessible un serveur Web en lui attribuant (en quelque sorte) une adresse IP publique. Cependant, pour publier un serveur Web sur Internet de façon sécurisée, il est préférable d'utiliser un reverse proxy, ou éventuellement une règle de redirection de port pour autoriser uniquement les flux HTTPS, par exemple.
Pour finir, sachez qu'avec du NAT statique, l'équipement du réseau local est accessible depuis Internet via son adresse IP publique puisqu'il y a un mappage entre les deux adresses IP (privée et publique).
B. NAT dynamique
Le NAT dynamique est différent du NAT statique car les associations entre une adresse IP privée correspondante à une machine et une adresse IP publique disponible sur le routeur seront dynamiques et temporaires ! Ainsi, si l'on a 50 ordinateurs, 10 smartphones et 20 tablettes connectés à son réseau local, et que l'on dispose de 4 adresses IP publiques, elles seront exploitées dynamiquement par nos machines afin de permettre un accès à Internet.
Lorsqu'une connexion vers Internet est effectuée par une machine, le routeur associe temporairement l'adresse IP privée à l'adresse IP publique. Pour cela, une adresse IP appartenant à votre pool d'adresses IP publiques est utilisée. Quand la connexion est terminée, l'adresse IP est libérée et potentiellement attribuable à une autre machine.
C. PAT
Le PAT pour Port Address Translation est une forme de NAT dynamique, que l'on appelle "NAT overlay" ou "Masquerade NAT", avec quelques différences très intéressantes, qui font du PAT le mode le plus couramment utilisé ! Comme le NAT dynamique, le PAT va effectuer une association dynamique et temporaire entre une adresse IP privée et une adresse IP publique, sauf qu'il va ajouter à cette association une autre information : un numéro de port, d'où le terme "PAT".
Grâce au PAT, une seule et même adresse IP publique peut-être utilisée par X machines connectées sur le réseau local. C'est exactement ce qu'il se passe à la maison : votre ordinateur, votre smartphone, votre tablette, voire même vos prises connectées et votre robot aspirateur sont connectées à votre réseau local et utilisent tous la même adresse IP publique pour accéder à Internet ! Pour vous en convaincre, il suffit de regarder votre adresse IP publique à partir de différents appareils connectés à votre réseau local : vous verrez que c'est la même ! Pour cela, il suffit d'accéder à un site tel que mon-ip.com.
Voici un schéma qui illustre ce fonctionnement, avec deux ordinateurs sur le même réseau local et qui accèdent à Internet via une même connexion Internet, c'est-à-dire via la même box. Si ces deux ordinateurs se connectent au même serveur Web car les utilisateurs ont tous les deux envie de visiter le même site, le serveur Web distant verra deux connexions différentes en provenance de l'adresse IP publique "61.61.61.61" grâce au mécanisme PAT.
Afin de pouvoir identifier ces connexions et de retourner chaque réponse du serveur Web au bon ordinateur, un numéro de port est associé à chaque connexion : c'est ce qui constitue la table de traduction (table de translation).
IV. DNAT pour les redirections de ports
Parlons maintenant de la notion de "Redirection de port" appelée aussi "port forwarding", qui correspond au "DNAT" c'est-à-dire au "Destination NAT". En fait, on parle de "Source NAT" quand c'est l'adresse IP source du paquet qui est modifiée (par exemple : un PC du réseau local accède à un site Internet) et de "Destination NAT" quand c'est l'adresse IP de destination du paquet qui est modifiée (par exemple : un PC connecté à Internet accède à un NAS connecté à notre réseau local).
Grâce à une règle de redirection de port, une machine connectée au réseau local et qui dispose d'une adresse IP privée pourra être accessible depuis l'extérieur, c'est-à-dire depuis Internet, sur un ou plusieurs ports spécifiques, via l'adresse IP publique du routeur (box).
Par exemple :
- Un serveur Web connecté au réseau local pourra être joignable depuis l'extérieur sur le port TCP/443 correspondant au HTTPS, en accédant à l'adresse IP publique de la box
- Un serveur Linux connecté au réseau local pourra être joignable en SSH depuis l'extérieur sur le port TCP/22 (ou un autre port autre que celui par défaut), en accédant à l'adresse IP publique de la box
- Etc...
A. Exemple de redirection de port
Pour bien comprendre ce principe, prenons le schéma suivant :
Dans cet exemple, c'est un NAS connecté sur mon réseau local qui est accessible depuis Internet. Je décide d'associer le port 65001/TCP pour accéder à ce NAS, ce qui signifie que si j'ouvre un navigateur que j'indique dans la barre d'adresses "https://mon-ip-publique-de-ma-box:65001" (on peut aussi utiliser un nom de domaine) alors je vais accéder à mon NAS grâce à cette règle de redirection de port !
Premièrement, mon ordinateur connecté à Internet, et qui n'est pas à la maison, envoie une requête sur l'adresse IP publique de ma box, à savoir "61.61.61.61" sur le port "65001" : https://61.61.61.61:65001.
Deuxièmement, ma box réceptionne cette requête. En temps normal, cette requête serait rejetée car elle provient d'Internet, mais là c'est différent car il y a une règle explicite qui explique comment traiter cette requête. Ma box voit que l'adresse IP de destination est "61.61.61.61" avec le port "65001", et qu'elle doit transmettre cette requête à l'adresse IP privé "192.168.1.12" (sur le port 65001) correspondante au NAS.
Troisièmement, ma box décide de remplacer l'adresse IP de destination du paquet pour indiquer la véritable destination de ce paquet, donc "61.61.61.61" est remplacé par "192.168.1.12", tandis que l'adresse IP source ne change pas (c'est toujours celle de mon client connecté à Internet). Enfin, le NAS réceptionne la requête en provenance d'Internet et doit la traiter, pour ensuite retourner une réponse au client situé sur Internet. Lorsque la réponse sera émise, le client distant verra toujours l'adresse IP publique de ma box, à savoir "61.61.61.61" : il ne verra jamais mon adresse IP privée.
Grâce à cet exemple, on peut voir qu'une machine connectée sur un réseau local peut être facilement rendu accessible depuis l'extérieur. Il ne faut pas oublier que cela expose directement sur Internet votre équipement (NAS, PC, Serveur, etc.) ! La première des choses à faire quand cela est possible, c'est d'utiliser un port différent du port par défaut. Par exemple, pour accéder à un NAS via un navigateur, la règle de redirection de port n'utilisera pas le port par défaut permettant d'accéder à l'interface du NAS afin qu'elle ne soit pas facilement détectable : des robots passent leur temps à scanner Internet et les adresses IP publiques à la recherche de services exposés.
B. Une seule règle par port TCP/UDP
Il faut savoir qu'il ne peut y avoir qu'une seule règle par port TCP/UDP ! Autrement dit, s'il y a deux serveurs Web avec deux adresses IP privées différentes, ils ne pourront pas tous les deux être accessibles en HTTPS sur le port 443, car le port 443 en extérieur peut être associé à une seule adresse IP privée. Donc, le second serveur Web devra utiliser un autre port tel que 4443. Cette limitation s'applique par adresse IP publique, ce qui est le cas bien souvent car de nombreuses entreprises ont qu'une seule adresse IP publique (et c'est le cas aussi à la maison).
Dans ce cas, il sera nécessaire de passer par un reverse proxy (ce qui est recommandé de toute façon) pour travailler niveau HTTP/HTTPS directement et identifier le nom de domaine dans les requêtes.
C. Le port mapping
Dans l'exemple précédent, le numéro de port 65001 est utilisé sur la règle de DNAT aussi bien pour le port source que pour le port de destination. Il faut savoir que ce n'est pas obligatoire d'utiliser le même numéro de port pour la source et la destination.
Le NAS sur le réseau local peut être accessible via le port 443, mais on peut décider de le rendre accessible depuis l'extérieur sur le port 65001. Dans ce cas, on parle de port mapping : c'est le même principe que le port forwarding sauf que l'on utilise deux numéros de port différents.
Il faut savoir que :
- Le port externe impacte le client connecté à Internet
- Si l'on met le port 65001 pour une interface Web, il devra saisir https://ip-publique:65001
- Le port interne impacte le serveur / la machine de destination
- Si l'on met le port 443, le service sur le serveur de destination devra être en écoute sur ce port, donc on ne peut pas le choisir au hasard, il faut que ce soit cohérent.
Même si le numéro de port n'est pas le même, le client ne verra pas la différence si l'on fait une correspondance 65001:65001 ou 65001:443.
V. Conclusion
Suite à la lecture de cet article, vous connaissez les différents types de NAT, mais aussi le très populaire PAT ainsi que les incontournables règles de redirection de port ! Néanmoins, vous devez rester vigilant quand vous configurez ces options sur un appareil, que ce soit un routeur, un pare-feu ou autre chose.... Car, en fonction des fabricants, les systèmes changent, et les appellations également ! Ainsi, le "SNAT" qui correspond à "Source NAT" peut correspondre à "Static NAT" (soit "NAT statique") dans certains cas : un joli piège ! Tout cela pour dire qu'il faut bien regarder les documentations constructeurs avant de mettre en oeuvre le NAT sur un appareil pour éviter les confusions et assurer le passage de la théorie à la pratique en douceur. 😉
Quelques tutoriels pour la mise en pratique, notamment sur PfSense :
Mais a la maison l’adresse IP public c’est celle de la box en fait …
ui
petite boulette…
Pagaraphe Exemple de redirection de port:
« ….et qu’elle doit transmettre cette requête à l’adresse IP privé « 192.168.1.12 » (sur le port 65001) correspondante au NAS…. »
Ton NAS est en IP 192.168.1.100 et pas .12
cdlt
—
Michel
Merci beaucoup pour cette video, par contre j’ai un souci avec mon offre fibre actuelle. Ma connexion est de type IPv4 et V6 CG NAT. Résultat je n’ai pas d’option de redirection/ouverture de port visible sur ma box (SFR). Quelle solution s’offre à moi ? sachant que je souhaite faire un peu d’auto-hébergement derrière (blog + service divers)
Merci d’avance pour tes retours d’info sur le sujet.
Que se passe-t-il dans le cas d’IPv6 ? Est-ce que cela fonctionne de la même manière si je copie mon adresse IPv6 à partir de https://whatismyip.live/fr/mon-ip
Bonsoir,
voilà j’ai lu votre article qui est intéressant, mais je n’arrive pas a trouver une réponse à ma question concernant le UPNP IGD des boxs internet (Dans mon cas la Livebox5 de chez Sosh/orange).
Voilà partout sur internet on nous « bourre le mou » et on nous incite a désactiver le UPNP en nous faisant croire que nous risquons des piratages si cette fonction est et reste activé…
Hors l’opérateur active cette fonction de base, et j’ai bien plus confiance en mon FAI, que en ce qu’on peut lire partout sur le net, et qui peut-être (et est sûrement) de l’intox!
Le seul souci, c’est que le FAI ne communique pas sur cette fonction….il reste très discret et la c’est pas trop cool!
Par contre je sais que dans le passé j’avais désactiver UPNP sur une box NB6-sfr, et que celle-ci était planté suite à cette manipulation et que quelqu’un avait pu y accéder à distance et la « briker »… donc pas bon… Aussi elle n’assuré plus de sécurité, comme si elle été en NAT ouverte… Et impossible de la remettre en fonctionnement correct, même en utilisant les fonctions reset, le FAI me l’avait gentiment remplacée…
De ce que j’ai vu : UPNP activé = NAT Stricte ou modéré (selon le fai et la box sa peut varier).
Et UPNP désactivé = NAT Ouverte (sécurité désactivé).
C’ est principalement les gros vpns commerciaux (les menteurs qui vous racontent qu’ils sont indispensables, les gros pots de miel…) ils poussent les gens dans l’erreur de désactiver UPNP et donc la fonction sécurité de leur box , hors moi je sais de par mon expérience personnelle qu’il ne faut absolument pas faire cela, si le FAI active UPNP y’a bien une raison quand pensez-vous ? pouvez me faire un retour et me donner votre opinion personnelle , en effet j’en parlais encore avec un copain l’autre jour et il me soutenait qu’il fallait désactiver UPNP, donc y’en a qui disent oui et d’autres non et ça rend dingue, personne ne si retrouve….
Par contre je sais que les Fai fournisse de base une box sécurisé, donc en y tripotant dans les menus, on risque quoi? Merci par avance de votre retour, bien cordialement.olivier.
Salut,
Vu que tout ceci reste très complexe pour un non initié comme moi, malgré les tutos -comme le tien pourtant très explicatif- j’aimerais bien connaître le coût d’intervention d’un technicien réseau pour configurer et faire lien avec le site distant d’une webradio dont le serveur (pc) est situé à mon domicile.
Merci tout court