miércoles, marzo 26, 2008

NAT

NAT (Network Address Translation - Traducción de Dirección de Red) es un mecanismo utilizado por routers IP para intercambiar paquetes entre dos redes que se asignan mutuamente direcciones incompatibles. Consiste en convertir en tiempo real las direcciones utilizadas en los paquetes transportados. También es necesario editar los paquetes para permitir la operación de protocolos que incluyen información de direcciones dentro de la conversación del protocolo.

Su uso más común es permitir utilizar direcciones privadas (definidas en el RFC 1918) y aún así proveer conectividad con el resto de Internet. Existen rangos de direcciones privadas que pueden usarse libremente y en la cantidad que se quiera dentro de una red privada. Si el número de direcciones privadas es muy grande puede usarse solo una parte de direcciones públicas para salir a Internet desde la red privada. De esta manera simultáneamente solo pueden salir a Internet con una dirección IP tantos equipos como direcciones públicas se hayan contratado. Esto es necesario debido a la progresiva escasez de direcciones provocada por el agotamiento de éstas. Se espera que con el advenimiento de IPv6 no sea necesario continuar con esta práctica.


Funcionamiento

El protocolo TCP/IP tiene la capacidad de generar varias conexiones simultáneas con un dispositivo remoto. Para realizar esto, dentro de la cabecera de un paquete IP, existen campos en los que se indica la dirección origen y destino con sus respectivos puertos. Esta combinación de números define una única conexión.

Una pasarela NAT cambia la dirección origen en cada paquete de salida y, dependiendo del método, también el puerto origen para que sea único. Estas traducciones de dirección se almacenan en una tabla, para recordar qué dirección y puerto le corresponde a cada dispositivo cliente y así saber donde deben regresar los paquetes de respuesta. Si un paquete que intenta ingresar a la red interna no existe en la tabla de traducciones, entonces es descartado. Debido a este comportamiento, se puede definir en la tabla que en un determinado puerto y dirección se pueda acceder a un determinado dispositivo, como por ejemplo un servidor web, lo que se denomina NAT inverso o DNAT (Destination NAT).

NAT tiene muchas formas de funcionamiento, entre las que destaca.

Estático

Es un tipo de NAT en el que una dirección IP privada se traduce a una dirección IP pública, y donde esa dirección pública es siempre la misma. Esto le permite a un host, como un servidor Web, el tener una dirección IP de red privada pero aún así ser visible en Internet.

Dinámico

Es un tipo de NAT en la que una dirección IP privada se mapea a una IP pública basándose en una tabla de direcciones de IP registradas (públicas). Normalmente, el router NAT en una red mantendrá una tabla de direcciones IP registradas, y cuando una IP privada requiera acceso a Internet, el router elegirá una dirección IP de la tabla que no esté siendo usada por otra IP privada. Esto permite aumentar la seguridad de una red dado que enmascara la configuración interna de una red privada y lo que dificulta a los hosts externos de la red el poder ingresar a ésta. Para este método se requiere que todos los hosts de la red privada que deseen conectarse a la red pública posean al menos una IP pública asociada.

Sobrecarga

La forma más utilizada de NAT, proviene del NAT dinámico, ya que toma múltiples direcciones IP privadas (normalmente entregadas mediante DHCP) y las traduce a una única dirección IP pública utilizando diferentes puertos. Esto se conoce también como PAT (Port Address Translation - Traducción de Direcciones por Puerto), NAT de única dirección o NAT multiplexado a nivel de puerto.

Traslape

Cuando las direcciones IP utilizadas en la red privada son direcciones IP públicas en uso en otra red. El ruteador posee una tabla de traducciones en donde se especifica el reemplazo de éstas con una única dirección IP pública. Así se evita los conflictos de direcciones entre las distintas redes.

Razones de la creación y utilización de NAT

Con el crecimiento exponencial de Internet, y debido a que las direcciones en la versión actualmente usada de IP consisten sólo de 32 bits, empezó a haber escasez de direcciones nuevas. Ayuda a esto el hecho de que el número de direcciones es menor al teórico, por la forma en que se distribuyen las direcciones en clases y que otras son reservadas para multicasting, y para usos especiales. Para solucionar esto se diseñó un protocolo que es capaz de asignar un número mayor de direcciones, llamado IPv6, pero tomará muchos años su implantación, porque no es compatible con el anterior.

Para lidiar momentáneamente con este problema se empezó a emplear la técnica NAT, que al traducir la direcciones multiplica las posibilidades efectivas de asignación.

NAT es muy utilizado en empresas y redes caseras, ya que basta tener una sola dirección IP pública para poder conectar una multitud de dispositivos. Los ISP también pueden utilizar NAT para aliviar la escasez de direcciones IP para los usuarios de cable y ADSL, en este caso el ISP le asigna una dirección a cada usuario, usa direcciones no válidas de internet. Cuando los paquetes de las máquinas de usuario salen del ISP atraviesan una caja NAT que los traduce a la verdadera dirección de Internet del ISP. En el camino de regreso, los paquetes sufren la conversión inversa. En este caso, para el resto de Internet, el ISP y sus usuarios caseros de cable y ADSL se comportan como una compañía grande.

No hay comentarios: