Configuración de NAT: Tipos y Ejemplos Prácticos

¿Qué es NAT?

Dentro de la interminable lista de términos de telecomunicaciones, NAT es uno de los más recurrentes. NAT (Network Address Translation) es un mecanismo crucial en Internet para abordar la escasez de direcciones IPv4 públicas, junto con CIDR (Classless Interdomain Routing) y VLSM (Variable Length Subnet Mask). Con la disminución de direcciones IPv4 públicas, la implementación de IPv6 se vuelve esencial. Sin embargo, muchas organizaciones aún dependen de IPv4 y sus limitaciones, donde NAT juega un papel fundamental.

Funcionalidad de NAT

En resumen, NAT permite conectar una o más redes LAN internas a Internet usando una sola IP pública (o un grupo de ellas). NAT ofrece dos funcionalidades clave: ahorro de direcciones públicas (y costos) y seguridad.

Las redes utilizan direccionamiento IP privado, lo que significa que las máquinas con estas direcciones no son accesibles directamente desde Internet. Estas direcciones IP no son enrutables públicamente.

Rangos de Direcciones IP Privadas (RFC 1928):

  • 10.0.0.0/8 (10.0.0.0 – 10.255.255.255)
  • 172.16.0.0/12 (172.16.0.0 – 172.31.255.255)
  • 192.168.0.0/16 (192.168.0.0 – 192.168.255.255)

Las direcciones IP fuera de estos rangos y otros especiales (APIPA, Loopback, Clase E, Clase D, etc.) son públicas.

Ejemplo de Red con NAT

NAT

En este ejemplo, la LAN usa el bloque 192.168.0.0/24, y el ISP asignó la IP pública 200.1.1.1/29 al router en su puerta WAN. NAT permite que todos los PCs accedan a Internet a través de la IP 200.1.1.1, evitando la necesidad de una IP pública para cada PC.

Tipos de NAT

A continuación, se describen cuatro tipos básicos de NAT:

1. NAT Dinámico

Este método asigna dinámicamente una IP pública de un bloque a cada máquina de la LAN para acceder a Internet. Se crea un mapeo 1:1 entre IP internas y externas. Si se definen tres IP públicas, solo tres máquinas internas podrán conectarse. Esta asociación es dinámica.

NAT

Router(config)# ip nat pool RANGOPUBLICO 200.1.1.2 200.1.1.4 netmask 255.255.255.248
Router(config)# access-list 1 permit 192.168.0.0 0.0.0.255
Router(config)# ip nat inside source list 1 pool RANGOPUBLICO
Router(config)# interface FastEthernet0/0
Router(config-if)# ip nat inside
Router(config-if)# exit
Router(config)# interface FastEthernet0/1
Router(config-if)# ip nat outside

El comando ip nat pool crea el rango de IP públicas y lo asocia a un nombre (RANGOPUBLICO). La ACL selecciona las IP de la LAN a traducir. Los comandos ip nat inside y ip nat outside definen las interfaces internas y externas, respectivamente. Este orden es crucial para el funcionamiento de NAT.

La desventaja del NAT dinámico es la necesidad de una IP pública por cada PC, lo que lo hace costoso en entornos grandes.

2. NAT Estático

Este método asocia estáticamente una IP pública a una IP privada. Es ideal para acceder desde Internet a un servidor en una DMZ o LAN. En el ejemplo, el servidor web (192.168.0.10) se asocia a la IP pública 200.1.1.5/29.

Router(config)# ip nat inside source static 192.168.0.10 200.1.1.5
Router(config)# interface FastEthernet0/0
Router(config-if)# ip nat inside
Router(config-if)# exit
Router(config)# interface FastEthernet0/1
Router(config-if)# ip nat outside

El comando ip nat inside source static realiza el mapeo. Se declaran las interfaces inside y outside.

Nat estatico

3. PAT (Port Address Translation) o Sobrecarga

PAT, también conocido como Sobrecarga o Overload, asocia dinámicamente las conexiones de la LAN a una única IP pública, identificando cada sesión con un puerto. En el ejemplo, las máquinas de la LAN (192.168.0.0/24) salen a Internet a través de 200.1.1.1.

PAT

Router(config)# access-list 1 permit 192.168.0.0 0.0.0.255
Router(config)# ip nat inside source list 1 interface f0/1 overload
Router(config)# interface FastEthernet0/0
Router(config-if)# ip nat inside
Router(config-if)# exit
Router(config)# interface FastEthernet0/1
Router(config-if)# ip nat outside

El comando ip nat inside source list ... overload activa PAT. El router mapea dinámicamente cada sesión con un puerto de la IP pública.

4. PAT con Múltiples IP

PAT tiene una limitación: el número de puertos disponibles (65536). En redes grandes con muchas conexiones simultáneas, PAT puede saturarse. Para solucionar esto, se pueden usar múltiples IP públicas para la sobrecarga, aumentando la cantidad de sesiones simultáneas.

Se repitió la sección «4. PAT con múltiples IP» varias veces en el documento original. Se ha corregido eliminando las secciones repetidas y unificando la información.

PAT multiple

Router(config)# ip nat pool RANGO_PAT_PUBLICO 200.1.1.1 200.1.1.4 netmask 255.255.255.248
Router(config)# access-list 1 permit 192.168.0.0 0.0.0.255
Router(config)# ip nat inside source list 1 pool RANGO_PAT_PUBLICO overload
Router(config)# interface FastEthernet0/0
Router(config-if)# ip nat inside
Router(config-if)# exit
Router(config)# interface FastEthernet0/1
Router(config-if)# ip nat outside

El comando ip nat inside source list ... pool ... overload asocia la ACL al pool de IP públicas para la sobrecarga.

Terminología de NAT

  • Inside Local: IP privada interna de un PC en la LAN.
  • Inside Global: IP pública usada para traducir las IP privadas (IP WAN del router y las de los rangos públicos).
  • Outside Local: IP de un host en la red externa (Internet) como se ve desde la LAN interna.
  • Outside Global: IP pública de un host de destino en la red externa.

Rutas por Defecto en NAT

Todas las implementaciones de NAT funcionan con una ruta por defecto:

ip route 0.0.0.0 0.0.0.0 interfaz de salida o IP siguiente salto

Comandos Útiles

  • show ip nat translation
  • show ip nat static
  • debug ip nat

Deshabilitar NAT

  1. Desactivar interfaces inside y outside:
    Router(config)# interface FastEthernet0/0
    Router(config-if)# no ip nat inside
    Router(config-if)# exit
    Router(config)# interface FastEthernet0/1
    Router(config-if)# no ip nat outside
  2. Limpiar tabla de traducciones:
    Router# clear ip nat translations
  3. Eliminar comandos NAT y ACL:
    Router(config)# no ip nat pool RANGO_PAT_PUBLICO 200.1.1.1 200.1.1.4 netmask 255.255.255.248
    Router(config)# no access-list 1 permit 192.168.0.0 0.0.0.255
    Router(config)# no ip nat inside source list 1 pool RANGO_PAT_PUBLICO overload

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.