Entendiendo las Direcciones IPv4 Privadas y NAT (Network Address Translation)
Entendiendo las Direcciones IPv4 Privadas y NAT (Network Address Translation)
La escasez de direcciones IPv4 es un desafío conocido en el mundo moderno. La solución a largo plazo es la migración a IPv6, pero a corto plazo, contamos con estrategias como CIDR (Classless Inter-Domain Routing), las direcciones IPv4 privadas y NAT (Network Address Translation).
1. Direcciones IPv4 Privadas (RFC 1918)
La RFC 1918 especifica rangos de direcciones IPv4 que pueden usarse libremente dentro de redes locales sin necesidad de ser globalmente únicas. Estas direcciones no pueden ser enrutadas directamente a través de Internet.
Rangos de Direcciones Privadas:
| Clase | Rango CIDR | Rango de Direcciones |
|---|---|---|
| Clase A | 10.0.0.0/8 |
10.0.0.0 – 10.255.255.255 |
| Clase B | 172.16.0.0/12 |
172.16.0.0 – 172.31.255.255 |
| Clase C | 192.168.0.0/16 |
192.168.0.0 – 192.168.255.255 |
El uso de direcciones privadas resuelve el problema de la duplicación de direcciones IP, pero genera un nuevo problema: los hosts con direcciones privadas no pueden acceder directamente a Internet. Aquí es donde entra NAT.
2. Network Address Translation (NAT)
NAT es una tecnología utilizada para modificar las direcciones IP de origen y/o destino de los paquetes. Su razón de ser más común es permitir que hosts con direcciones IP privadas se comuniquen con hosts en Internet. Para la certificación CCNA, es fundamental entender Source NAT y cómo configurarlo en routers Cisco.
3. Tipos de NAT
3.1 Static NAT
Static NAT implica configurar mapeos uno a uno estáticos entre una dirección IP privada y una dirección IP pública.
Para entender completamente Static NAT, es crucial conocer los cuatro tipos de direcciones involucradas:
- Inside Local IP Address: La dirección IP del host interno, desde la perspectiva de la red local (la dirección IP configurada en el host, generalmente una dirección privada).
- Inside Global IP Address: La dirección IP del host interno, desde la perspectiva de los hosts externos (la dirección IP que el host interno parece tener para los hosts externos, generalmente una dirección pública).
- Outside Local IP Address: La dirección IP del host externo, desde la perspectiva de la red interna (la dirección IP que el router NAT ve del host externo, generalmente su dirección IP pública real).
- Outside Global IP Address: La dirección IP del host externo, desde la perspectiva de la red externa (la dirección IP real del host externo en Internet, que es globalmente enrutable).
La distinción clave es: Inside/Outside se refiere a la ubicación del host, y Local/Global se refiere a la perspectiva de la dirección.
Static NAT permite que los dispositivos con direcciones IP privadas se comuniquen a través de Internet. Sin embargo, debido a su mapeo uno a uno, no ayuda a preservar las direcciones IP públicas, ya que se necesita una dirección pública por cada dirección privada que se quiera exponer.
Configuración de Static NAT en Routers Cisco:
-
Definir interfaces interna y externa:
R1(config)#int g0/1 R1(config-if)#ip nat inside R1(config-if)#int g0/0 R1(config-if)#ip nat outside -
Configurar el mapeo uno a uno:
R1(config)#ip nat inside source static <inside-local-ip> <inside-global-ip>R1(config)#ip nat inside source static 192.168.0.10 100.0.0.1 R1(config)#ip nat inside source static 192.168.0.11 100.0.0.2
Verificación de Static NAT:
show ip nat translations: Muestra las traducciones activas.show ip nat statistics: Muestra estadísticas generales de NAT.clear ip nat translation *: Borra todas las traducciones NAT activas.
3.2 Dynamic NAT
En Dynamic NAT, el router asigna dinámicamente direcciones inside local a direcciones inside global según sea necesario.
- Se utiliza una Access Control List (ACL) para identificar qué tráfico debe ser traducido. El tráfico permitido por la ACL será traducido.
- Se define un NAT pool para especificar las direcciones
inside globaldisponibles. - Aunque las asignaciones son dinámicas, siguen siendo mapeos uno a uno (una dirección
inside localpor una direccióninside global). - Si no hay suficientes direcciones
inside globaldisponibles en el pool (es decir, todas están en uso), se produce una “NAT pool exhaustion” donde los paquetes internos no se traducen y se descartan. - Las entradas de Dynamic NAT expiran automáticamente si no se utilizan, o pueden borrarse manualmente.
Configuración de Dynamic NAT en Routers Cisco:
-
Definir interfaces interna y externa:
R1(config)# int g0/1 R1(config-if)# ip nat inside R1(config-if)# int g0/0 R1(config-if)# ip nat outside -
Definir el tráfico a traducir con una ACL:
R1(config)# access-list 1 permit 192.168.0.0 0.0.0.255 -
Definir el pool de direcciones
inside global:R1(config)#ip nat pool POOL1 100.0.0.0 100.0.0.255 prefix-length 24(También se puede usar
netmask 255.255.255.0en lugar deprefix-length 24) -
Configurar Dynamic NAT mapeando la ACL al pool:
R1(config)#ip nat inside source list 1 pool POOL1
3.3 PAT (Port Address Translation) o NAT Overload
PAT (Port Address Translation) es la forma más común de NAT y cumple un papel fundamental en la conservación de direcciones IP públicas. Este método permite que múltiples dispositivos dentro de una red privada compartan una única dirección IP pública, asignando números de puerto únicos (de forma dinámica o aleatoria) a cada sesión de comunicación.
Cuando un host interno inicia una conexión hacia Internet, el router traduce tanto su dirección IP privada (inside local) como el puerto de origen, generando una combinación única que se asocia con una dirección IP pública (inside global). El router mantiene una tabla de traducciones que le permite saber qué IP y puerto internos corresponden a cada IP y puerto externos, garantizando el enrutamiento correcto de las respuestas.
⚙️ Nota importante sobre los puertos en PAT
Cuando varios hosts internos intentan acceder al mismo destino utilizando el mismo puerto de origen, PAT ajusta los números de puerto (modificándolos para que sean únicos). De este modo, el router puede diferenciar los flujos de tráfico de cada host y, cuando las respuestas regresan desde Internet, dirigirlas correctamente al dispositivo de origen mediante la traducción inversa.
Configuración de PAT en Routers Cisco (usando un pool):
-
Definir interfaces interna y externa:
R1(config)#int g0/1 R1(config-if)#ip nat inside R1(config-if)#int g0/0 R1(config-if)#ip nat outside -
Definir el tráfico a traducir con una ACL:
R1(config)#access-list 1 permit 192.168.0.0 0.0.0.255 -
Definir el pool de direcciones
inside global(puede ser un rango muy pequeño, incluso una sola IP):R1(config)#ip nat pool POOL1 100.0.0.0 100.0.0.3 prefix-length 24 -
Configurar PAT mapeando la ACL al pool y añadiendo
overload:R1(config)#ip nat inside source list 1 pool POOL1 overload
Configuración de PAT en Routers Cisco (usando una interfaz):
Esta es una configuración muy común donde la dirección IP pública de la interfaz externa del router se usa para todas las traducciones PAT.
-
Definir interfaces interna y externa:
R1(config)#int g0/1 R1(config-if)#ip nat inside R1(config-if)#int g0/0 R1(config-if)#ip nat outside -
Definir el tráfico a traducir con una ACL:
R1(config)#access-list 1 permit 192.168.0.0 0.0.0.255 -
Configurar PAT mapeando la ACL a la interfaz externa y añadiendo
overload:R1(config)#ip nat inside source list 1 interface g0/0 overload
🧐 Comprender y configurar NAT es una habilidad esencial para cualquier profesional de redes, ya que permite la conectividad a Internet para redes que utilizan direcciones IPv4 privadas, aliviando la presión sobre el agotamiento de direcciones públicas.
Para acceder a una guía de configuración con un resumen de los comandos utilizados en los diferentes tipos de NAT, consulte Configuración NAT