Port address translation
Port Address Translation (PAT) es una característica del estándar NAT, que traduce conexiones TCP y UDP hechas por un host y un puerto en una red externa a otra dirección y puerto de la red interna. Permite que una sola dirección IP sea utilizada por varias máquinas de la intranet. Con PAT, una IP externa puede responder hasta a ~64000 direcciones internas.
Cualquier paquete IP contiene la dirección y el puerto tanto del origen como del destino. En el destino, el puerto le dice al receptor cómo procesar el paquete. Un paquete con puerto 80 indica que contiene una página web, mientras que el puerto 25 es usado para transmitir correo electrónico entre servidores de correo. La traducción de los puertos, llamada PAT para distinguirla de la traducción de direcciones (NAT), se apoya en el hecho de que el puerto de origen carece de importancia para la mayoría de los protocolos. Igual que NAT, se sitúa en la frontera entre la red interna y externa, y realiza cambios en la dirección del origen y del receptor en los paquetes de datos que pasan a través de ella. Los puertos (no las IP), se usan para designar diferentes hosts en el intranet. El servicio PAT es como una oficina de correo que entrega las cartas. El sobre se cambia para que el remitente sea la oficina de correos, mientras que las cartas que llegan de fuera pierden su dirección y reciben la nueva con la calle y el número real.
Cuando un ordenador del intranet manda un paquete hacia fuera, queremos ocultar su dirección real. El servicio NAT remplaza la IP interna con la nueva IP del propio servicio. Luego asigna a la conexión un puerto de la lista de puertos disponibles, inserta el puerto en el campo apropiado del paquete de datos y envía el paquete. El servicio NAT crea una entrada en su tabla de direcciones IP internas, puertos internos y puertos externos. A partir de entonces, todos los paquetes que provengan del mismo hosts serán traducidos con los mismos puertos.
El receptor del paquete utilizará los IP y puerto recibidos para responder, por lo que dicha respuesta llegará a la “oficina de correos”. Inicialmente, si el puerto destino no existe en la tabla del NAT, los datos serán descartados. En otro caso, la nueva dirección y el nuevo puerto reemplazarán los datos de destino en el paquete y éste será enviado por la red interna. La traducción de puertos permite a varias máquinas compartir una única dirección IP. El servicio PAT borra las traducciones periódicamente de su tabla cuando aparenten no estar en uso. Como el número de posibles puertos a otorgar es de 16 bit (65535), la probabilidad de que un ordenador no encuentre una traducción es realmente pequeña.