lunes, 20 de enero de 2020

NAT (Network Address Translation) - Parte 1 de 2 - Fundamentos

NAT
(Network Address Translation)


Hola amigos, en el post de hoy hablare acerca del NAT (Network Address Translation); primero hay que explicar que es el NAT y cual es su función principal, para entender esto hay que entender como funciona Internet.

La nube o Internet en realidad son servidores y dispositivos interconectados entre si por ruteadores, estos ruteadores (routers) usan IP públicas para tal fin, en Internet si tenemos una IP privada nunca será ruteable es decir nunca vamos a poder alcanzarla, como vemos en el ejemplo:


Pero en cambio si utilizamos una IP pública para "alcanzar" ese servicio que requerimos si será ruteable:


Entonces si en mi casa, trabajo o laboratorio tengo IP privada como se comunica con la IP pública?

Pues sencillo, mediante el uso del NAT, la IP privada al hacer por ejemplo un ping hacia una IP pública primero llega al router el cual en su configuración si se tiene el NAT configurado puede hacer tres acciones las cuales son:

- NAT Estatico
- NAT Dinamico
- NAT Overload

NAT ESTÁTICO

En este tipo de NAT la IP privada esta asociada a una IP pública especifica la cual esta configurada de manera estática como su nombre lo dice, lo podemos ver en el siguiente ejemplo:


como vemos en la imagen cada una de las IP privada al salir se transforma en una IP pública asociada, así que cuando estamos en la PC1 y queremos hacer un ping a la IP pública, se transforma de la siguiente manera:


Este tipo de NAT es recomendado en servidores, debido a que los pool de IP pública son caros y son limitados, por lo regular el ISP lo que hace es entregar una IP pública y con esa IP pública tienen acceso a Internet todas las PCs de nuestro hogar o trabajo, esto es otro tipo de NAT que se explicara a continuación.

NAT DINAMICO o PAT (Port Address Translation)

En este tipo de NAT la IP pública se asocia a puertos, es decir en lugar de asociarse a direcciones IP se asocia a un puerto, esto es muy utilizado si queremos pública servidores web, correo, etc..., se utiliza en tráfico de entrada y no de salida, ya que podemos "mapear" puertos públicos en privados, ejemplo:


Como vemos en la imagen, la PC remota hace una petición http que es por el puerto 80, llega a nuestro router y este "Natea" / Traduce el puerto e IP al puerto e IP privado.


En esta imagen podemos hacer que el puerto http (80) por default responda por un puerto diferente al default, le decimos que si una PC remota hace una petición a nuestra IP pública usando el puerto 8080, se traduzca a la IP privada pero el puerto será el 80, el NAT es una herramienta muy versátil que nos puede ayudar incluso en algo de seguridad, ya que podemos mappear a puerto no default puertos de correo o web y son mas difíciles de identificar para un atacante que use robots.


NAT OVERLOAD

Este tipo de NAT es el mas común de los tres ya que se encuentra en la mayoría de los hogares y es el que entrega por default un ISP en sus modem/routers, en este tipo de NAT la IP pública se comparte a todos las PCs que tenemos sobre la red, esto lo hace mediante el uso de una combinación de IP con puerto, esta combinación tiene el nombre de SOCKET:


Como vemos la IP tiene a un lado el puerto, estos se encuentran divididos mediante dos puntos.

Este socket sirve al router, ya que cada PC puede ocupar un espacio en el uso de la IP Pública, siguiendo el camino del tráfico de una PC en nuestra red a una IP pública en Internet lo podemos ver de la siguiente manera:


En la topologia la PC en nuestra red hace la petición a la IP pública remota poniendo lo siguiente:


En el origen tenemos la IP privada y un puerto que como vemos no coincide con la petición web (http/80) esto es debido a que las PC que son el origen toman un puerto aleatorio para generar la sesión, hasta aquí tenemos un socket de origen.

En el destino tenemos la IP pública la cual vamos a consultar y aquí si aparece el puerto web (http/80) ya que es el puerto del equipo remoto al cual vamos a acceder, en este caso esta el socket de destino.


En la imagen podemos ver que si una PC quiere visitar un servidor en Internet pero otra PC ya tomo el mismo puerto el router lo que hace es pasarla al siguiente puerto disponible, como podemos ver el router tiene una lista de los sockets y pude identificar de donde viene el tráfico y hacia donde va.


En nuestras PC podemos ver esta lista también usando el comando NETSTAT:


como vemos en la imagen se ve una lista de sesiones que tiene abierta nuestra PC, en donde en un lado se observa la IP de origen y de destino.

Con esto terminamos la parte teórica de NAT, en el siguiente post veremos la configuración de cada uno de los tipos de NAT. Espero que el post haya sido informativo, ya saben que pueden dejar comentarios en la caja de comentarios de abajo.

No hay comentarios.:

Publicar un comentario