Docly Child

3.1.4.3. NAT: Traducción de direcciones de red

El servicio NAT, de la siglas en inglés Network Address Translation (Traducción de direcciones de red), incluye una serie de mecanismos que permiten identificar todos los dispositivos de una red privada con una única IP Pública cuando estos realizan peticiones a Internet. Este servicio se ha instaurado con éxito en el ámbito de las redes privadas, teniendo en cuenta la escasez de números IPv4 y manteniendo el margen para el uso de rangos de IP Privadas, que pueden configurarse libremente en todas las redes empresariales o de hogares.  

Este servicio identifica a todas las máquinas de un sector (subred, etc.) que están identificados por una IP Privada y las equipara de manera independiente hacia otras redes mediante una única IP pública, pues la identificación mediante IP Privadas sería imposible en el Internet actual. En esta sección se explicará el modelo NAT más habitual, que incluye también la Traducción de puertos de red (dinámico) o PAT, de las siglas en inglés Network Port Translation. A la suma de la NAT más la PAT se le llama también NAPT o NAT con sobrecarga, aunque por lo general la mención de NAT ya hace referencia a los mecanismos más modernos.

El servicio de NAT lo proporciona un dispositivo NAT, que suele ser el encaminador o router. Cuando un dispositivo de una red local debe acceder o consumir recursos de un servicio de Internet, este envía la petición a través del router, que efectúa cambios en las cabeceras de los protocolos IP/TCP, en concreto en los campos de las IP de destino y origen, así como en los puertos. El router modificará las cabeceras indicando la IP Pública que tiene configurada y usará uno de sus puertos, de ahí que a este cambio se le llame traducción.

El resumen del proceso se explica a continuación (debajo hay un cuadro ejemplo de un dispositivo que realiza una petición a un servidor web de Internet, teniendo en cuenta que para el servidor web también hay un servicio de mediación por router que no se ha representado para simplificar):

  1. El equipo local debe realizar una petición hacia Internet y genera un mensaje. En este se indica la dirección IP Pública y el puerto de destino en las cabeceras IP/TCP. Para la IP de origen se pone la IP Privada y el puerto origen es uno aleatorio escogida por el Sistema Operativo que no puede ser uno de los puertos reservados a los servicios más comunes (HTTP: 80, SSH: 22, etc.).
  2. La petición pasa por el router y hace traducción tanto en IP como en puerto de origen, que lo asigna el Sistema Operativo del router de forma dinámica. La IP traducida será la IP Pública del router. El router almacena esta información en sus tablas de reenvío, indicando IP privada y puerto del dispositivo de origen, junto a la nueva asignación de puerto.
  3. Cuando el servidor responda, habrá generado en su mensajes sus propias cabeceras TCP/IP. Este mensaje será interceptado por el router, que con las tablas de reenvío realizará de nuevo la traducción a la inversa y enviará el mensaje al equipo local que había realizado la petición inicialmente.
Funcionamiento NAT

El servicio de NAT incorpora diferentes mecanismos como la NAT dinámica que permite asignar más de una dirección IP Pública si el router está habilitado para ello (tiene configurada más de una IP Pública), así como otros para solapamientos, en los que una red privada está utilizando IP Públicas.

También es interesante comentar el servicio de NAT estática, que es el mecanismo de portforwarding ya comentado en otra sección, que le permite a un host, como un servidor Web, el tener una dirección IP de red privada pero aun así ser visible en Internet.