INTRODUCCIÓN AL NAT

En este tutorial vamos a explicar los conceptos básicos de lo que conocemos como NAT. No se pretende dar una explicación profunda de todos los tipos de NAT existentes, sino dar una explicación que, de cara al usuario, sirva para comprender el porqué de la necesidad de este mecanismo, qué tiene que ver con lo que se conoce habitualmente como “abrir puertos” (como popularmente se conoce), y entender que pasa en nuestro router cuando “abrimos” esos puertos.


Unas palabras sobre direcciones IP

Como seguramente muchos habrán oído hablar, hay dos tipos (en realidad más, pero sólo nos interesan estos dos) de direcciones IP: direcciones públicas y direcciones privadas.

Las direcciones privadas son rangos especiales de direcciones IP que se reservan para ser utilizadas en redes locales, y se llaman privadas (o no-enrutables) porque no pueden ser utilizadas en Internet. Los routers intermedios que componen todo Internet, no “entienden” este tipo de direcciones y no las encaminan.

Esto da una gran flexibilidad para configurar redes locales, ya que por ejemplo, yo puedo tener en mi red local direcciones del tipo 192.168.0.0, y mi vecino también, pero como esas direcciones no salen de la red local no hay ningún conflicto. Esto no pasa con las direcciones públicas, que son las que se usan en Internet, y han de pertenecer a un único equipo (host); no puede haber varios con la misma IP pública.

Pero esto tiene también un problema. ¿No hemos dicho antes que estas direcciones no pueden ser usadas en Internet? Entonces, cuando nosotros enviamos a Internet (a google, por ejemplo) algo desde nuestra red local, en el paquete que enviamos figura como IP de origen nuestra IP privada... ¿Como va a poder devolvernos el paquete (en ese caso google) si ha de devolverlo a una IP que no puede ser usada en Internet?

La solución a este problema es NAT: Network Address Translation (o Traducción de Direcciones de RED)


NAT: Traducción de Direcciones de Red

La idea básica que hay detrás de NAT es traducir las IPs privadas de la red en una IP publica para que la red pueda enviar paquetes al exterior; y traducir luego esa IP publica, de nuevo a la IP privada del pc que envió el paquete, para que pueda recibirlo una vez llega la respuesta. Con un ejemplo lo veremos mejor.

Imaginemos que tenemos nuestra siguiente red:


Podría ser la típica red casera en la que tenemos un par de PCs que salen a Internet a través del router. Cada PC tiene asignada una IP privada, y el router tiene su IP privada (puerta de enlace) y su IP pública (que es nuestra IP de Internet).

Cuando uno de los PCs de la red local quiere enviar un paquete a Internet, se lo envía al router (o a la puerta de enlace o gateway), y

éste hace lo que se conoce como SNAT (Source-NAT) y cambia la dirección de origen por si IP pública. Así, el host remoto sabrá a qué IP pública ha de enviar sus paquetes. Cuando una respuesta o un paquete pertenecientes a esa conexión llegue al router, éste traducirá la dirección IP de destino del paquete (que ahora es la IP del router) y la cambiará por la dirección privada del host que corresponde, para hacer la entrega del paquete a la red local.



DNAT: Destination-NAT

Hasta ahora hemos visto como actúa el software de NAT para permitir que un PC de una red privada pueda acceder a Internet y recibir respuestas. El mecanismo que utiliza NAT para las asociaciones entre IP pública y IP privada es una tabla (tabla de NAT) en la que guarda una entrada por cada conexión. Cuando un host de la red local inicia una conexión hacia el exterior, el software de NAT asigna una entrada en la tabla, para que a partir de ahora, todo lo que llegue perteneciente a esa conexión sepa traducirlo hacia la IP privada que inició la conexión.

Pero ¿qué pasa si la conexión se inicia desde el exterior? Por ejemplo, si montamos en nuestra red local un servidor web, lo que queremos es que se puedan iniciar conexiones hacia él. Para poder hacer esto se utiliza DNAT (Destination-NAT).

Cuando iniciábamos una conexión desde la red local, se creaba automáticamente una entrada en la tabla de NAT para que todo lo que perteneciera a esa conexión fuera dirigido hacia el PC correspondiente. Pero si la conexión se inicia desde fuera ¿como y cuando se crea esa entrada en la tabla de NAT? La respuesta es que si queremos permitir conexiones desde el exterior a un PC de nuestra red local, hemos de añadir una entrada fija en la tabla de NAT, indicando que todo el tráfico que llegue que vaya a determinado puerto, sea dirigido al PC en cuestión. El puerto es el único elemento que tenemos para “distinguir” conexiones, ya que todo llegará a la IP del router, pero tendrán un puerto de destino según sea una conexión u otra. Así que, en nuestro ejemplo, deberíamos crear una entrada fija en la tabla de NAT en la que indicáramos que lo que llegue al puerto 80 (web) sea dirigido al PC en el que corre el servidor web.

Esto es lo que se conoce habitualmente como “abrir puertos” en el router. Al abrir puertos, simplemente estamos añadiendo una entrada a la tabla de NAT del router para que sepa hacer la traducción y sepa a qué PC enviar los paquetes. Ya que desde el exterior, aunque nuestra red tenga varios PCs, se verá como si sólo fuera uno (solo se conoce la IP del router, éste lo traduce todo) y necesitamos que éste router al que le llega todo el tráfico sepa a quién ha de entregárselo.

Conclusión

Como se puede apreciar NAT es un mecanismo muy potente que nos permite crear redes locales con gran flexibilidad, pero también tiene sus inconvenientes. Muchas aplicaciones podrían no funcionar detrás de NAT. Pero eso es quizá un tema un poco más avanzado que queda fuera del objetivo de este tutorial. De todos modos las funcionalidades comentadas de NAT (que son el SNAT y el DNAT) son las más usuales y importantes, y comprenderlas es suficiente para tener una idea bastante buena de qué es NAT y qué es lo que pasa en los routers/gateways que dan salida a nuestra red local.


Manual escrito por Nacx para www.adslayuda.com

Te puede interesar

Social

Encuesta

  • ¿Para qué utilizas más el Internet de tu móvil?

    Resultados Encuestas

    Votos: 4643

Entrevistas