Cuando un equipo recibe un paquete el destino puede ser el propio equipo (será enviado a los protocolos superiores) o puede ser otro equipo. Es en este caso cuando decimos que está funcionando como un encaminador o Forwarder. Por eso, si queremos comunicar una red privada con una red pública, los clientes de la red privada envían paquetes con la dirección de origen perteneciente a la red privada así que, cuando vienen de vuelta, o hacemos NAT o no podrían recibir las respuestas. Así que vamos a ver como configurar un equipo para que realice NAT (Network Address Translation).
Cuando hacemos NAT tenemos:
- SNAT: cambiar la dirección IP:puerto de origen.
- DNAT: cambiar la dirección IP:puerto de destino.
También tenemos varios tipos de enmascaramiento:
- SNAT: cuando un cliente de la red privada solicita información externa - de la red pública -. El encaminador, cuando recibe el paquete, cambia la IP y el puerto de origen con su IP externa y un puerto no usado. Almacena en una tabla - de traducciones - el valor de la IP y el puerto original frente al valor de la IP y el puerto de salida, es decir, una vez modificados. Cuando reciba la respuesta restaurará los valores originales (UN-NAT automático) antes de proceder a su envío.
- DNAT: se usa normalmente cuando se requiere un servicio de la red privada, por ejemplo: un servidor WEB. El encaminador cambia la IP y el puerto de destino y no existirán UN-DNAT, ya que ese paquete no tendrá retorno.
- MASQUERADE: es idéntico al SNAT, la diferencia redica en que en las reglas de SNAT debes especificar cual es la IP (y puertos) a la que la debe traducir mientras que MASQUERADE averigua cual es la IP de tu interfaz de salida de modo automático. Esto es más cómodo pero menos eficiente, ya que se incrementa el tiempo de proceso. Es recomendable utilizar MASQUERADE si la IP de salida es dinámica.