Qué es NAT (Network Address Translation) y Cómo Funciona: Tipos y Usos
Enviado por Programa Chuletas y clasificado en Informática y Telecomunicaciones
Escrito el en
español con un tamaño de 3,92 KB
¿Qué es Network Address Translation (NAT)?
Normalmente, los paquetes viajan en una red desde su origen (por ejemplo, su ordenador) a su destino (como www.gnumonks.org) a través de varios enlaces diferentes. Ninguno de estos enlaces altera realmente el paquete: simplemente lo envían un paso adelante.
Si uno de estos enlaces hiciera NAT, podría alterar el origen o destino del paquete según pasa a través de él. Como puede imaginar, esta no es la función para la que se diseñó el sistema y, por tanto, NAT es siempre un tanto complejo. Normalmente, el enlace que está haciendo NAT recordará cómo modificó el paquete para poder realizar la acción inversa con el paquete de respuesta, de manera que todo funcione como se esperaba.
Razones para usar NAT
En un mundo perfecto, no debería usarse. Mientras tanto, las razones principales son:
Conexiones con módem a Internet
La mayoría de los PSI (Proveedor de Servicios de Internet) le dan una sola dirección IP cuando se conecta con ellos. Puede enviar paquetes con cualquier dirección que le plazca, pero solo obtendrá respuestas a los paquetes con esa IP de origen. Si desea utilizar varias máquinas diferentes (como una red casera) para conectar a Internet a través de un único enlace, necesita NAT.
Este es, de lejos, el uso más común de NAT hoy en día, conocido normalmente como «enmascaramiento» (masquerading) en el mundo de Linux. Este proceso se denomina SNAT, porque se cambia la dirección de origen (source) del primer paquete.
Varios servidores
Puede que quiera cambiar el destino de los paquetes que entran en su red. Frecuentemente, esto se debe (como en el caso anterior) a que solo tiene una dirección IP, pero desea que la gente sea capaz de llegar a las máquinas que se encuentran detrás de la que tiene la IP «real». Si reescribe el destino de los paquetes entrantes, podrá conseguirlo.
Una variante común de esto es el balanceo de carga, en la cual se toma un cierto número de máquinas y se reparten los paquetes entre ellas. Este tipo de NAT se llamó reenvío de puerto (port-forwarding) en anteriores versiones de Linux.
Proxy transparente
Hay veces que deseará simular que cada paquete que pase por su máquina Linux esté destinado a un programa en la propia máquina. Esto se utiliza para hacer proxies transparentes: un proxy es un programa que se interpone entre su red y el mundo real, filtrando las comunicaciones entre ambos. La parte «transparente» se debe a que su red nunca tendrá por qué enterarse de que está comunicándose con un proxy, a menos, claro, que el proxy no funcione.
Se puede configurar el software Squid para que trabaje de esta manera, y a esto se le llamó redirección o proxy transparente en anteriores versiones de Linux.
Los dos tipos de NAT
Podemos dividir NAT en dos tipos diferentes: Source NAT (SNAT), por origen, y Destination NAT (DNAT), por destino.
Source NAT (SNAT)
Source NAT ocurre cuando alteramos el origen del primer paquete; es decir, estamos cambiando el lugar de donde viene la conexión. El Source NAT siempre se hace después del encaminamiento, justo antes de que el paquete salga por el cable. El enmascaramiento es una forma especializada de SNAT.
Destination NAT (DNAT)
Destination NAT ocurre cuando alteramos la dirección de destino del primer paquete; es decir, cambiamos la dirección a donde se dirige la conexión. El DNAT siempre se hace antes del encaminamiento, cuando el paquete entra por el cable. El reenvío de puerto (port forwarding), el balanceo de carga y el proxy transparente son formas de DNAT.