Port Address Translation (PAT) is a feature of a network device that translates TCP or UDP communications made between hosts on a private network and hosts on a public network. It allows a single public IP address to be used by many hosts on the private network, which is usually called a Local Area Network or LAN. ...
Argomento certo nobile.
Supponiamo di avere due device con ip 10.0.0.1 e 10.0.0.2 che accedono ad Internet attraverso un router NAT con un ip pubblico 88.88.88.1.
Quando l'ip 10.0.0.1 vuole accedere ad un web server, come ad esempio www.google.it, il datagramma viene inviato al router NAT che sostituisce l'ip sorgente con il suo ip pubblico (88.88.88.1) e come porta sorgente mantiene quella del device, supponiamo 5000, così rappresentata nella tabella di NAT:
10.0.0.1:5000 to 88.88.88.1:5000 ---> IPgoogle:80
Diciamo che nello stesso momento il device 10.0.0.2 invia una richiesta a www.google.it; come detto in precedenza, il router sostituisce l'ip sorgente con 88.88.88.1 e mantiene la porta sorgente del device, supponiamo 5001, così rappresentata nella tabella di NAT:
10.0.0.2:5001 to 88.88.88.1:5001 ---> IPgoogle:80
Quando il pacchetto ritorna al router, avrà come ip di destinazione 88.88.88.1 e come porta di destinazione 5000 o 5001. In questo modo il router riesce a decidere se il datagramma va inoltrato al device 10.0.0.1 o 10.0.0.2 basando cioè la sua decisione sulla porta di destinazione (demultiplexing).
Ma cosa succede se entrambi i device usano la porta 5000 come porta sorgente?
A questo punto il router non sarà più in grado di distinguere le due connessioni.
La soluzione è implementare nel router la funzione di sostituzione della porta sorgente; in questo contesto, se il device 10.0.0.1 invia una richiesta web a www.google.it, il router sostituirà la porta sorgente con una presa tra un intervallo compreso tra 1024:65535. Ad esempio:
10.0.0.1:5000 -> 88.88.88.1:5550
Se nello stesso momento il secondo device inviasse una richiesta a www.google.it, il router andrà a generare una tabella di NAT tipo:
10.0.0.2:5000 -> 88.88.88.1:5551
Con questa definizione, quando il pacchetto ritorna dal web server avrà come destinazione 88.88.88.1:5550 oppure 88.88.88.1:5551. è chiaro che in questo modo il router sarà in grado di inoltrare il pacchetto al device corretto.
Tutto ciò è stato affrontato e risolto dalle specifiche NAT - vedi RFC 5135 e RFC 1918 -.
Non si capisce dunque il motivo per cui si persiste a chiamare una tecnologia implementata nel NAT con un nome diverso quale PAT, come se fosse un nuovo servizio di rete destinato ad essere implementato da quei pochi netadmin "che loro sì, conoscono la tecnologia"...
Per quanto detto, il netadmin quadratico medio, si dovrebbe solo preoccupare del fatto che il suo sistema che implementa funzionalità di NAT abbia adottato le RFC sopra citate, mentre ogni altra allusione a PAT o affini va quanto prima eliminata perché inutile e fuorviante.