Que es NAT y a que sirve?

La palabra NAT se encuentra a menudo cuando hablamos de red. Que significa este siglo (Network Address Translation) y a que sirve?

Introducción 1: como se establece una conexión tcp/ip

En el Internet, las maquinas son identificadas por una dirección IP. Este dirección es única, ella corresponde un único computador en la red. Cada maquina puede alojar servicios. Para distinguir cual servicio se quiere acceder, cada uno corresponde a un protocolo y depende del protocolo a un puerto. Los protocolos los mas frecuente para los servicios son UDP y TCP. Dada una dirección IP, solamente un servicio escucha en un puerto de cada protocolo. Existe una lista de los puertos asociados a los servicios mas comun. Se puede encontrar a esta lista en el archivo /etc/services de un UNIX. Esos puertos se llaman Well Known Ports y son atruibuidos por l'IANA. Ejemplos son el puerto 80 en tcp para la web (http), el puerto 25 en tcp para el correo o el puerto 53 en tcp y udp para el DNS.

En el mundo del Internet, cuando una maquina (y su usuario) quiere acceder a un servicio, ella abre una conexión (como una llamada telefónica) desde su IP IPc hacia el puerto Ps de la IP del servidor IPs. Para hacer eso tiene que determinar un puerto libre en su dirección (PC) y establecer una conexión entre (IPc,Pc) y (IPs,Ps). El servidor contestara enviando datos a (IPc,Pc). Se ve mucho mejor en un dibujo:

ClientServeurDirectSmall.png

 

Introducción 2: penuria de IPv4

El funcionamiento explicada arriba es lo de un Internet con suficiente direcciones IP para cada maquina conectada. Lamentablamente cuando fue designado Internet, no imaginaron que tendra un exito tal que tiene y decidieron que una dirección IP esta almacenada un 32 bits. Eso significa que se puede tener al máximo 232 (=4 294 967 296) direcciones IP. Puede parecer suficiente en comparación con la población mundial, pero en la realidad un servicio usa con frecuencia mas de un servidor. Por ejemplo la mayoría de los sitios internet necesitan al mínimo dos servidores en caso de falla de uno. Plataformas grandes usan miles o decenas de miles de servidores. Por ejemplo Facebook tienen mas de 30 000 servidores. Otra razon de penuria es que para hacer el enrutamiento (llevar los datos al buen lugar) se necesita dividir los direcciones email en grupos interconectados. Así una maquina haciendo la interconexión de dos redes tiene que tener una dirección en cada red. Por ultimo, se entregaron muchas direcciones a los primero usuarios del Internet y grandes companias norte americanas y europeas o el ministerio de defensa de USA tienen un gran volumen de direcciones.

Esos factores hacen que todavía faltan direcciones IP. Una evolución del protocolo IP llamada IPv6 existe pero todavía no es tan desplegada.

El NAT, porque?

Una solución para tratar con la penuria de dirección es de agrupar varias maquinas detras de una pura dirección IP. Es lo que conocen varios clientes de proveedores de Internet con box. La idea es de tener una maquina llamada router que tiene dos interfaces de red. Una con una dirección IP publica conectad al Internet y una otra con una dirección propria a la red local. Hay una parte de los IPv4 que están dedicadas a las redes privadas y que no deben circular por el Internet. Cada maquina de la red privada tiene su propia dirección IP privada y son configuradas para mandar los paquetes para el Internet al router. El router va a recuperar las recuestas de las maquinas de la red interna y enviarles al servidor del Internet modificando (Translation) la dirección fuente del paquete para poner la suya publica. Este mecanismo se llama SNAT (Source NAT).

De la misma manera se puede publicar un servicio de una maquina adentro la red local en el internet. El router va a cambiar la IP de destino por la del servidor adentro. Eso se llama DNAT (Destination NAT).

Como funciona?

ClientServeurNatSmall.png

Vimos en las introducciones que una conexión se establece entre (IPc,Pc) y (IPs,Ps). En nuestro caso el problema es que el servidor no puede ver IPc porque es interna. Cuando el router transmite los paquetes para el internet, el guarda en una tabla la asociación (IPc,Pc)↔(IPr,Pr)↔(IPs,Ps). Así va a poder transmitir los paquetes para el servidor con la conexión (IPr,Pr)→(IPs,Ps) y mandar los paquetes de regreso al Cliente con (IPr,Pr)→(IPC,PC). El DNAT funcione de la misma manera.

Hay que notar que para el servidor se establece solamente una conexión desde (IPr,Pr).

Comments:

Leave a Reply



(Your email will not be publicly displayed.)