La plupart des routeurs domestiques utilisent une forme spéciale de NAT appelée PAT.
Vous le verrez également appelé NAPT ou masquage d'IP. Tous ces termes signifient la même chose dans un usage général. (Les acronymes - Network Address Translation / Port Address Translation / Network Address Port Translation)
Lorsque le paquet sort de votre machine interne, l'adresse source est réécrite comme vous le savez. Le port source est également modifié, généralement vers un nombre élevé, et le routeur garde une table de traduction d'adresses.
Par exemple, disons que vous avez une machine cliente qui va sur www.google.com. Votre ordinateur (par exemple, 192.168.1.100) recherche cette adresse et établit une connexion TCP avec 72.14.204.147 sur le port 80 à partir de votre adresse IP interne, en utilisant un port source aléatoire.
À votre ordinateur, la connexion ressemble à ceci :
192.168.1.100:37641 <--> 72.14.204.147:80
Votre ordinateur envoie le paquet au routeur, qui choisit un nouveau port élevé aléatoire et réécrit le paquet. Chaque connexion sortante obtient son propre port sur le routeur. Le routeur transmet ensuite le paquet à votre FAI après l'avoir ajouté à sa table de connexion :
IPPrivée PortPrivé IPublic PortPublic Distant PortDistant
------------- ---------- ----------- ----------- ---------- -----------
192.168.1.100 37641 *10.6.23.5 59273 72.14.204.147 80
* À des fins d'exemple, j'ai utilisé une adresse commençant par 10, mais celles-ci ne sont pas routables publiquement. La table est également quelque peu simplifiée.
Pour Google, la connexion ressemble à ceci :
10.6.23.5:59273 <--> 72.14.204.147:80
Google enverra sa réponse à 10.6.23.5 sur le port 59273. Votre routeur recherche alors ces informations dans la table et transmet le paquet à 192.168.1.100:37641.