NAT / PAT
Last updated
Was this helpful?
Last updated
Was this helpful?
NAT o lo que es lo mismo - traducción de direcciones de red - es una técnica que permite la traducción de direcciones IP privadas en direcciones IP públicas. Se trata de mapear un espacio de direcciones IP en otro modificando la información de la dirección de red en el encabezado IP de los paquetes mientras están en tránsito a través de un router.
¿Por qué se utiliza NAT / PAT en redes?
Hay varios aspectos que permiten justificar el uso de NAT pero diría que lo principal fue la escasez de direcciones IPv4 desde la década de los 80. La cantidad de direcciones IPv4 públicas es limitada, unos 4 mil millones, que a priori parece un número grande, pero lo cierto es que hay muchos más dispositivos conectados a Internet.
Otros aspectos que justifican el uso de NAT/PAT son:
Permite que múltiples dispositivos dentro de una red privada compartan una única dirección IP pública.
Funciona como una barrera entre las redes internas y las externas (Internet), brindando seguridad.
Los dispositivos internos no son accesibles desde Internet, a menos que se configure explícitamente (por ejemplo, con port forwarding - ver ) lo que reduce considerablemente la exposición a ataques provenientes de redes externas.
Permite usar rangos de IP privadas definidos por (192.168.X.Y, 10.X.Y.Z, 172.16–31.X.Y), que no necesitan coordinación global.
Resulta más fácil configurar, ampliar, modificar redes internas sin tener que depender del proveedor de servicios de Internet (ISP).
Veamos algunos conceptos importantes para comprender las diferentes técnicas de NAT/PAT:
Regla ACL es una instrucción que permite denegar o permitir el tráfico de la red en el router o switch, según se establezca en una interfaz de red y según determinados criterios como son el tipo de protocolo, el puerto, el origen del tráfico, etc.
Una ACL es un conjunto de reglas que se aplican en routers o switches para controlar el tráfico de la red.
Inside global – la IP pública (traducida) del dispositivo de la red interna LAN.
Inside local – la IP real del dispositivo de la red interna LAN.
Outside local – la IP interna del dispositivo externo (desde el punto de vista de la red interna).
Outside global – dirección real del dispositivo de la red externa, la IP pública real.
NAT estática - asignación de uno a uno entre una dirección IP interna y una IP externa.
NAT dinámica - varios dispositivos de la red privada LAN tienen acceso a la pública WAN utilizando para ello un conjunto compartido de direcciones IP públicas.
PAT – una única IP - se conoce también como «NAT con sobrecarga» y permite que se puede utilizar una única dirección IPv4 pública para muchas direcciones IP (privadas).
PAT – un conjunto de IP - Se asigna más de una dirección IPv4 pública a la red interna.
Máscara de wildcare - es el complemento de una máscara de subred tradicional. En lugar de usar bits de red con 1
y bits de host con 0
(como en el caso de las máscaras de subred) se usa:
El 0 significa que se debe comprobar el bit equivalente.
El 1 significa que el bit equivalente no importa.
Veamos el modo de configurar cada uno de los tipos NAT/PAT que hay.
Para poder comprender y sobre todo testear las configuraciones posibles de NAT / PAT, lo primero que vamos a hacer es crear una topología básica como la que se muestra en la imagen. Una vez que lo tengamos bien configurado y testeado, lo copiamos y pegamos 4 veces en el mismo pkt. Al menos a mi me resulta más cómodo tener todos en un mismo espacio de trabajo.
En cada servidor hemos configurado una web:
server interno - www.lan.com
server externo - www.wan.com
La siguiente tabla de direccionamiento muestra los detalles de la configuración:
Dispositivo
Interfaz de red
Gateway
Otros
PC-LAN
Fa0 – 192.168.1.11/24
192.168.1.1/24
DNS apuntando al Server-LAN
Server-LAN
Fa0 – 192.168.1.10/24
192.168.1.1/24
DNS apuntando al Server-LAN
Router
Gi0/0 – 192.168.1.1/24
Router
Gi0/1 – 80.0.0.1/29
PC-WAN
Fa0 – 80.0.0.11/8
80.0.0.1/8
DNS apuntando al Server-WAN
Server-WAN
Fa0 – 80.0.0.10/8
80.0.0.1/8
DNS apuntando al Server-WAN
La NAT estática es una asignación de uno a uno entre una dirección IP interna y una IP externa. Permite que los dispositivos externos hagan conexión a los internos mediante la IP pública asignada de forma estática.
Establecer la configuración de las interfaces de red correspondientes a la red interna y la externa.
Crear una asignación entre la dirección local interna y las direcciones globales internas
Entonces, configurando o (revisando) la configuración del router, podemos añadir la descripción de la interfaz de red y además, establecemos si la red es Interna (Inside) o Externa (Outside):
Finalmente, utilizamos el siguiente comando con el que indicamos que la IP de la LAN - 192.168.1.10 (servidor interno) es la que se va a traducir de manera estática a un IP pública 80.0.0.15 que es la que se utilizará para representar al servidor interno (en nuestro ejemplo) en Internet.
Cada vez que alguien desde fuera, la WAN, acceda a la IP pública 80.0.0.15, el router redirigirá ese tráfico al dispositivo con IP privada 192.168.1.10, y viceversa. Es útil, por ejemplo, para que un servidor local (como un servidor web o FTP) sea accesible desde fuera de la red local.
Si queremos visualizar las traducciones realizadas usamos el comando siguiente y nos mostraría algo como lo siguiente:
Observa que se muestra tanto el protocolo como los puertos utilizados en cada traducción.
Haz ping desde el CMD entre los diferentes dispositivos.
En este caso, varios dispositivos de la red privada LAN tienen acceso a la pública WAN utilizando para ello un conjunto compartido de direcciones IP públicas, pero sin utilizar la misma IP pública.
Desde la red externa – WAN vamos a tomar el rango de 8 direcciones globales que van de la 80.0.0.16 a la 80.0.0.23 con la máscara 255.255.255.248 y se lo vamos a asignar a la red 192.168.1.0/24.
Notas:
En este caso he modificado la red externa y he utilizado un prefijo /29, esto es:
La red WAN – externa tiene una IP 80.0.0.0 y es de clase A. Sin embargo, he tomado 29 bits para la red, por lo que nos quedan 3 bits para los host, con lo cual podemos establecer:
la red WAN en el rango 80.0.0.0 – 80.0.0.7
el pool para el NAT dinámico en el rango 80.0.0.16 – 80.0.0.23
Definir el conjunto de direcciones globales que se debe usar para la traducción → 80.0.0.16 – 80.0.0.23
Configurar una lista de acceso ACL de tipo estándar que permita el rango de direcciones que se deben traducir.
Definir las direcciones IP de cada interface de red: la red interna y la externa.
Crear el mapeo de las direcciones del pool que se han de asignar a las direcciones autorizadas por la ACL.
Paso 1: Definir el conjunto de direcciones globales que se debe usar para la traducción.
Paso 2: Configurar una lista de acceso ACL de tipo estándar que permita el rango de direcciones que se deben traducir:
Paso 3: Definir las direcciones IP de cada interface de red.
Paso 4: Establecer la traducción dinámica de origen utilizando la lista de acceso – paso 2.
Podemos visualizar cómo ha quedado configurado el router:
Veremos algo como:
Así como el pool que hemos establecido:
Solo nos queda comprobar el funcionamiento:
para comprobar las conexiones realizadas, como muestra el pantallazo siguiente:
PAT se conoce también como NAT con sobrecarga
y permite que se puede utilizar una única dirección IPv4 pública para muchas direcciones IP (privadas), incluso miles de direcciones IPv4 privadas internas.
Cuando se configura el PAT, el router mantiene información de los protocolos de nivel superior, de los puertos TCP o UDP, para traducir de la dirección global interna a la dirección local interna correcta.
Cuando se asignan varias direcciones locales internas a una dirección global interna, los números de puerto TCP o UDP de cada host interno distinguen entre las direcciones locales.
Partiendo de la misma configuración básica:
Identificar las interfaces interna y externa
Definir una lista de acceso estándar ACL que permita las direcciones que se deben traducir:
Especificar las opciones de ACL, interfaz de salida y sobrecarga para establecer la traducción dinámica de origen.
Haz pruebas de conectividad y comprueba las traducciones realizadas como se muestra en el pantallazo a continuación.
¿Qué se muestra cuando haces un ping del server externo IP=80.0.0.10 al server interno IP=192.168.1.10?
En este caso, se asigna más de una dirección IPv4 pública a la red interna. Algo que haría el ISP, por ejemplo.
Las direcciones IP pueden ser parte de un conjunto, de modo similar a como lo hace el NAT dinámico, pero hay un detalle: y es que no existen suficientes direcciones públicas para realizar una asignación de uno a uno entre direcciones internas y externas. Esto quiere decir que una gran cantidad de dispositivos comparte un pequeño conjunto de direcciones.
Establecer los parámetros de las interfaces interna y externa
Definir el conjunto de direcciones globales que se debe usar para la traducción de sobrecarga.
Definir una lista de acceso estándar que permita las direcciones que se deben traducir
Especificar la lista de acceso y el conjunto que se definieron en los pasos anteriores para establecer la traducción de sobrecarga
Vamos a comenzar la configuración en el router.
Definir las redes interna y externa como hemos hecho anteriormente, ponemos una descripción de la interfaz (realmente lo podíamos haber hecho en la topología base de la que partimos al igual que el especificar si es inside o outside la red.
Crear el pool de direcciones IP de la red pública, de hecho, una subred
Definir la ACL de tipo estándar permitiendo el tráfico con origen en la red interna
Relacionar la ACL y el pool indicándole el parámetro “overload” como indicativo del uso de PAT en lugar de NAT dinámico.
Volvemos a usar el mismo comando que nos permite visualizar las traducciones de las IP interna a pública:
Incluso, si hacemos un ping desde el dispositivo 80.0.0.11 de la red pública, hacia el servidor de la red interna vemos el reply viene de la IP pública correspondiente.
A la hora de configurar este tipo de asignación estática se tiene que indicar el socket en lugar de la IP para ambas direcciones y además, el tráfico puede ser TCP o UDP lo que se debe indicar también. Cuando configuramos el mapeo estático de un socket se denomina “publicar un servicio” en NAT aunque lo conocemos más como “abrir un puerto” en el Router.
Configurar la PAT como anteriormente
Crear la asignación estática
Vamos a ver un ejemplo: supongamos que queremos publicar el servidor web con IP 192.168.1.10 a través del puerto 80 en la IP 80.0.0.10 en el mismo puerto 80. Podemos copiar y pegar la configuración de PAT con un rango de IP o volver a configurar el router:
Hasta este punto, todo es igual, solo tenemos que agregar la siguiente línea que establece que el servidor interno: 192.168.1.10 por el puerto 80 de http se transforma en la IP pública 80.0.0.5.
Podemos comprobar que el servidor interno con IP 192.168.1.10:80 se transforma en la IP pública IP 80.0.0.5:80.
Esta sería una adaptación del PAT – mapeo estático. Prueba tú mismo a realizar la configuración donde se quiere utilizar la interfaz externa del router. El comando clave está en:
Para ello, utiliza la configuración previa de PAT - mapeo estático y añade el comando anterior donde se le asigna la IP de la interfaz pública del router, o sea, la IP 80.0.0.1.
Hemos establecido que la IP pública del servidor interno de la LAN sea la IP pública de la interfaz de red. Igualmente lo podemos verificar en:
Nota: Se configura de modo similar al o, excepto que, en lugar de un conjunto de direcciones, se utiliza una interface para identificar la dirección IPv4 externa.