Historiquement les réseaux interconnectés (Internet) fonctionnent grâce à l’attribution d’adresses IPv4 (Internet Protocol version 4) définies sur 4 Bytes/Octets comme 17.118.106.3.
Chaque machine possédait donc une adresse IP qui lui permettait de communiquer avec d’autres appareils possédant eux aussi une adresse IP.
On dit qu’une adresse IPv4 est définie sur 4 octets, 1 octet est égal à 8 bits donc les nombres décimaux qui composent nos adresses IP sont constamment traduits en nombre binaires ce qui donne :
17.118.106.3 – décimal
00010001.01110110.01101010.00000011 – binaire
Si on veut calculer le nombre maximum d’adresses IP possibles avec ce système on admet qu’une adresse est composée de 32 bits qui peuvent prendre deux valeurs, 1 ou 0. Donc 2 exposant 32 est égal à 4 294 967 296 soit pas loin de deux fois moins de la population mondiale sur terre.
Au début cela ne posait pas problème car l’informatique et en plus en réseau ne représentait que très peu de monde et d’entreprises. Mais à la manière d’une locomotive qui démarre plus le temps avançait plus cela prenait de l’ampleur. Pour palier à ce problème, deux solutions sont apparues :
- Les IPv6
- Les IPv4 privées
IPv6
Je ne vais pas m’étendre sur la première solution mais cela consiste grossièrement à augmenter le nombre de bits sur lequel est codé l’adresse : 32 bits ipv4 pour 128 bits ipv6.
Si on reprend la même méthode de calcul, 2 exposant 128 nous donne un total de 340 sextillion ou (340 000 000 000 000 000 000 000 000 000 000 000 000) d’adresses possibles. Chaque humain sur terre aurait alors 4,25 quadrillions d’adresses à sa disposition. Cette solution semble être le futur, nous somme actuellement en transition entre v4 et v6.
IPv4 privées
Le principe est simple, chaque abonné à un FAI (Fournisseur d’accès à Internet) reçoit une « box » qui fait modem, router, firewall, switch et qui permet d’accéder au réseau du FAI en louant une adresse IP à celui ci.

Le NAT ou Network Address translation
NAT Statique
Cette technologie permettait à chaque appareil du réseau privé d’avoir une adresse IP statique attribuée dans le WAN. Cela occasionnait un gaspillage d’adresses et limitait donc grandement l’intérêt du NAT.
NAT Dynamique
Basé sur le même fonctionnement que le NAT statique cette version du NAT proposait aux machines du réseau privé un pool d’adresse IP publiques qu’il attribuait arbitrairement. Le pool pouvait contenir de 2 à X adresses publiques. Le NAT dynamique utilise aussi ce qu’on appelle le PAT (Port Address Translation) qui permet d’attribuer un port a chaque requête provenant du LAN vers le WAN. Voir le schéma ci dessous qui illustre son fonctionnement.

L’inconvénient de ce NAT est que l’on ne peut pas contacter une machine du réseau local depuis l’extérieur si ce n’est pas elle qui initialise la connexion car si on n’envoie une requête le routeur ne connaîtra pas la destination de notre paquet dans sa table NAT.
C’est pour cela qu’existe la prochaine technologie.
Port forwarding
Le port forwarding (Transfert de ports en français) est simplement un ensemble d’exceptions dans le NAT qui permet grossièrement de dire « Si je reçois une requête de l’extérieur sur le port X je la transmet à l’hôte X ». C’est grâce à cela que l’on peut héberger un serveur web chez soi, il suffit juste de créer un port forwarding sur les ports voulus.
⚠️ Il ne faut pas confondre SNAT (StaticNAT) et SNAT (SourceNAT) ou DNAT (DynamicNAT) et DNAT (DestinationNAT).
Source NAT défini les NAT modifiant les informations source dans l’entête d’un paquet et Destination NAT modifiant les informations de destination. Le Port Forwarding est classé Destination NAT tandis que le Dynamic NAT est classé Source NAT.