Pourquoi le NAT a-t-il été créé ?

1. Pourquoi le NAT existe-t-il ?

NAT was created because IPv4 doesn’t have enough IP addresses for everyone.
That’s the short answer to the question: why NAT was created. But let’s explore together the full story behind it.

Comme vous le savez peut-être, l’IPv4 utilise un format de 32 bits qui nous donne :

2^32 bits = 4,294,967,296 unique IPv4 addresses

Au début, cela semblait plus que suffisant. Plus de 4 milliards d’adresses IP semblaient constituer une réserve massive de dispositifs IP.

L’IPv4 n’a jamais été conçu pour l’internet moderne

À l’époque, l’internet était petit. Mais avec l’augmentation du nombre de personnes et d’appareils en ligne, nous nous sommes rapidement rendu compte que l’IPv4 n’était pas extensible. Chaque appareil connecté à l’internet a besoin d’une adresse IP, et soudain, ce nombre énorme n’a plus suffi.

Le NAT a été développé comme une solution à court terme pour prolonger la durée de vie de l’IPv4

2. Que s’est-il passé dans les années 1990 ?

Pour comprendre pourquoi la NAT est devenue nécessaire, remontons dans le temps.

Au début de l’internet, les institutions responsables de la gestion des adresses IPv4 ont commencé à attribuer de très grands blocs d’adresses IP à des organisations telles que HP, Ford et même à des universités comme le MIT.

Ces blocs étaient massifs, nous parlons du sous-réseau /8, ce qui signifie que chaque organisation a reçu plus de 16 millions d’adresses IP publiques, qu’elle en ait besoin ou non.

Dans les années 1990, l'IANA a attribué des blocs IPv4 /8 tels que 15.0.0.0/8 à des entreprises telles que HP, MIT et Ford, qui ont reçu chacune plus de 16 millions d'adresses IP
Figure 1 – In the 1990s, IANA gave huge public IP ranges (/8) to organizations, wasting millions of addresses

À l’époque, cela ne semblait pas poser de problème.
Mais dans les années 1990, l’internet a commencé à exploser en popularité, avec plus d’utilisateurs, plus de réseaux et plus d’appareils connectés.

L’IANA, qui était chargée d’attribuer les adresses IP à l’échelle mondiale, a rapidement été débordée…
Le modèle d’attribution était inefficace et un très grand nombre d’adresses sont restées inutilisées dans ces vastes attributions.

En 2019, toutes les adresses IPv4 publiques ont été officiellement épuisées.
Aucune nouvelle adresse IPv4 ne pouvait plus être attribuée.

Lorsque cette crise est devenue évidente, les ingénieurs ont commencé à chercher des solutions pour que l’IPv4 reste utilisable malgré la pénurie.

L’une des solutions les plus efficaces à ce problème s’est avérée être le NAT (Network Address Translation).

3. La première tentative de résolution du problème

Avant l’introduction de la NAT, les ingénieurs réseau ont essayé une autre approche…

IPv6 : la nouvelle adresse IP

L’une des premières idées était de concevoir une version entièrement nouvelle du protocole IP.
C’est ainsi que l’IPv6 a vu le jour.

L'IPv4 utilise un adressage de 32 bits tandis que l'IPv6 utilise un adressage de 128 bits pour résoudre le problème de l'épuisement des adresses IP.
Figure 2 – IPv6 was created to replace IPv4 by expanding addresses from 32 to 128 bits

Alors que l’IPv4 utilise un format d’adresse de 32 bits, l’IPv6 l’a étendu à 128 bits.

En d’autres termes :

2^128 bits = 340 undecillion possible addresses

Il s’agit d’un nombre astronomique, plus que suffisant pour donner à chaque appareil sur Terre une adresse IP unique… et il en reste encore beaucoup.

On paper, IPv6 looked like the perfect solution.
But as often happens, theory didn’t match reality.

L’IPv4 était trop précieux pour être abandonné

Lorsque l’IPv6 a été prêt, le monde était déjà profondément investi dans l’IPv4.

La migration vers IPv6 nécessiterait :

  • Remplacement du matériel incompatible
  • Mise à jour des logiciels existants
  • Formation des équipes informatiques
  • Refonte de l’infrastructure du réseau

En bref : c’était trop cher, trop risqué et trop perturbateur.

Most businesses weren’t ready and still aren’t, decades later.
So engineers reframed the problem:

Comment continuer à utiliser l’IPv4… même si nous n’avons plus d’adresses IP publiques ?

La réponse ? Une astuce qui a permis à l’IPv4 de survivre :
NAT — Network Address Translation.

4. Comment ont-ils résolu le problème ?

Pour continuer à utiliser l’IPv4 malgré l’épuisement des adresses IP publiques, les ingénieurs ont introduit deux concepts fondamentaux :

  1. Adresses IPv4 privées
  2. NAT (Network Address Translation)

Adresses IPv4 privées – La première étape

La première étape a consisté à reconnaître que tous les appareils n’ont pas besoin d’être directement accessibles depuis l’internet. La plupart des appareils n’ont besoin de communiquer qu’au sein d’un réseau local.

Pour remédier à cette situation, la RFC 1918 a introduit trois plages d’adresses IPv4 réservées à un usage privé :

La RFC 1918 définit les trois plages d'adresses IPv4 privées : 10.0.0.0/8, 172.16.0.0/12 et 192.168.0.0/16.
Figure 3 – RFC 1918 defined private IP ranges to reduce the need for public addresses
  • 10.0.0.0/8
  • 172.16.0.0/12
  • 192.168.0.0/16

Ces adresses IP ne sont pas acheminées sur l’internet public. Elles sont réservées exclusivement à la communication interne au sein des foyers, des bureaux ou des réseaux d’entreprise.

Mais les adresses IP privées ne peuvent pas accéder à l’internet…

C’est là qu’intervient le NAT.

Le NAT (Network Address Translation) a été inventé pour résoudre un problème bien réel : les adresses IP privées ne sont pas autorisées sur l’internet. Si un appareil utilisant une adresse IP privée tente d’accéder à un site web, le trafic est tout simplement interrompu par un routeur sur l’internet.

Pour résoudre ce problème, le NAT a été conçu pour traduire les adresses IP privées en adresses IP publiques, afin que les appareils situés à l’intérieur d’un réseau local puissent continuer à communiquer avec le monde extérieur.

Prenons un exemple simple :

Diagramme montrant pourquoi le NAT a été créé pour permettre aux IP privées d'accéder à l'internet
Figure 4 – NAT replaces private IPs with the router’s public IP to reach the internet

À l’intérieur d’une maison typique, les appareils se voient attribuer des adresses IP de la plage 192.168.1.0/24. Ces adresses ne fonctionnent qu’à l’intérieur de la maison et ne sont pas visibles sur l’internet. Lorsque l’un de ces appareils envoie une requête sur le web, le routeur appelé ici R1 intercepte le paquet et remplace l’adresse IP privée par sa propre adresse IP publique, par exemple 37.5.55.103.

Du point de vue de l’internet, tout le trafic provenant de la maison semble provenir de cette seule adresse IP publique. Le routeur garde la trace de l’appareil interne à l’origine de la demande, de sorte qu’il sait comment transmettre correctement la réponse.

Ce même processus se déroule dans des millions de foyers, de bureaux et de réseaux à travers le monde.

Plusieurs réseaux utilisant la même plage d'IP privées 192.168.1.0/24 avec des IP publiques différentes via la traduction NAT (37.5.55.103, 210.6.12.104, 31.0.10.145)
Figure 5 – NAT lets many networks reuse the same private IPs by translating them at the edge

Comme le montre le diagramme, plusieurs réseaux peuvent utiliser exactement la même plage d’adresses IP privées 192.168.1.0/24. Un foyer utilise l’adresse IP publique 37.5.55.103, un autre 210.6.12.104 et un troisième 31.0.10.145. Même si les adresses IP internes sont identiques, il n’y a pas de conflit parce que chaque réseau est isolé et que le NAT effectue la traduction d’adresse nécessaire à la périphérie.

Cette approche permet de réutiliser à l’infini les adresses IP privées dans différents environnements, tout en conservant une connectivité internet complète grâce aux adresses IP publiques.

C’est donc une solution élégante. Mais comment NAT gère-t-il réellement toutes ces traductions en coulisses ?

C’est exactement ce que nous allons explorer dans la section suivante.

5. Comment fonctionne le NAT (étape par étape)

Prenons un exemple concret.

Imaginez que votre ordinateur veuille envoyer une requête DNS au serveur DNS de Google à l’adresse 8.8.8.8. Votre appareil dispose d’une adresse IP privée : 192.168.1.5.

Étape 1 : Le paquet est envoyé

Diagramme montrant le fonctionnement de la NAT : une adresse IP privée 192.168.1.5 envoie un paquet à l'adresse IP publique 8.8.8.8, le routeur traduisant l'adresse IP source en 37.5.55.103.
Figure 6 – A private IP (192.168.1.5) sends a packet to 8.8.8.8 via the router

Votre PC génère un paquet contenant les informations suivantes :

  • IP source : 192.168.1.5 (privé)
  • IP de destination : 8.8.8.8 (public)

Comme la destination se trouve en dehors du réseau local, le paquet est envoyé à la passerelle par défaut (votre routeur).

Étape 2 : Le routeur traduit l’IP

Diagramme montrant un routeur remplaçant l'IP privée 192.168.1.5 par l'IP publique 37.5.55.103 avant d'envoyer un paquet à 8.8.8.8.
Figure 7 – The router swaps the private IP with its public IP

Lorsque le paquet atteint le routeur, il effectue trois actions :

  1. Reconnaît que le paquet quitte le réseau local.
  2. Remplace l’IP source (192.168.1.5) par sa propre IP publique (37.3.45.100).
  3. Enregistre la traduction dans une table NAT, en associant l’IP privée et l’IP publique.

Il transmet ensuite le paquet à l’internet.

Étape 3 : Le serveur DNS répond

Le serveur DNS répond à l'IP publique du routeur 37.5.55.103, avec l'IP source 8.8.8.8 et l'IP destination 37.5.55.103.
Figure 8 – The DNS server replies to the router’s public IP

Le serveur DNS de Google reçoit la demande et répond à l’adresse IP publique du routeur (37.3.45.100).

Étape 4 : Le routeur traduit à nouveau

Le routeur traduit le paquet de réponse en remplaçant l'adresse IP de destination 37.5.55.103 par l'adresse IP privée 192.168.1.5, ce qui permet à l'appareil de recevoir la réponse de 8.8.8.8.
Figure 9 – The router translates the reply back to the private IP and sends it to the correct device

Lorsque la réponse arrive :

  1. Le routeur vérifie la table NAT pour savoir quel appareil interne a fait la demande.
  2. Il remplace l’IP de destination (37.3.45.100) par l’IP privée d’origine (192.168.1.5).
  3. Il transmet la réponse à votre PC.

C’est ainsi que le NAT permet à un appareil doté d’une adresse IP privée de communiquer avec l’internet public.

En coulisses, NAT suit dynamiquement chaque connexion en temps réel. Cela permet à des milliers d’appareils au sein d’un réseau privé de partager une seule adresse IP publique, sans conflit ni confusion.