Vous êtes sur la page 1sur 8

Implementando NAT en routers Cisco

Ing. José Luis Rodríguez


Master en Redes y Telecomunicaciones

Dentro de la interminable lista de términos, abreviaciones y nomenclaturas de las


telecomunicaciones NAT es una de las que más se repite. Antes de ver como se
implementa NAT en una red primero veamos de que se trata.

NAT (Network Address Translation) es uno de los mecanismos utilizados en la


Internet actual para hacer frente a la escacez de direcciones IPv4 públicas junto con
el enrutamiento sin clase CIDR (Classless Interdomain Routing) y la utilización de
máscaras variables VLSM (Variable Lenght Subnet Mask). Hoy en día solamente
queda cerca de un 5% de direcciones IPv4 públicas, con lo cual se hace cada vez
más necesario comenzar con la implementación de IPv6. Sin embargo aún son
muchas las organizaciones que no cuentan con IPv6 en sus redes y deben trabajar
con las limitaciones de IPv4. Es ahí donde entra a funcionar NAT.

Para resumir, casi groseramente, la utilidad de NAT podríamos decir que sirve para
conectar a una o más redes LAN internas a Internet mediante una sola IP pública (o
un grupo de ellas). En realidad NAT provee dos funcionalidades básicas que es la
razón por la cual se ha seguido preferiendo este mecanismo para el
funcionamiento de la mayoría de las LAN: Ahorro de direcciones públicas (y por
ende, mucho dinero) y seguridad.

Básicamente podemos decir que las redes utilizan un direccionamiento IP privado y


que las máquinas que tienen una dirección de este tipo NO pueden ser alcanzadas
desde Internet. Técnicamente, estas direcciones IP no son enrutables en la Internet
pública.

El rango de direcciones IP privadas está definido en el RFC 1928 y corresponde a los


siguientes bloques:

– 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)

Todas las direcciones IP que no estén en ese rango ni en los demás rangos
especiales (APIPA, Loopbacks, Clase E, Clase D, etc.), son direcciones IP públicas.
Dicho esto entonces ahora podemos comprender mejor como opera NAT. Para eso
vamos a ver la siguiente red de ejemplo.

La red LAN con los PC y el router utilizan el bloque 192.168.0.0/24 mientras que el
ISP ha asignado la IP pública 200.1.1.1/29 al router en su puerta WAN. En esta red
se ha implementado NAT para que todos los PC puedan salir a Internet y sean
reconocidos mediante la IP 200.1.1.1. De no existir esto, cada uno de los PC
necesitaría una dirección IP pública única para poder acceder a Internet,
encareciendo el costo de los servicios.

Por ahora vamos a describir 4 tipos de NAT básicos. Hay otras implementaciones
más complejas como NAT-T que por lo general se utiliza para resolver problemas
de conectividad con VPNs y acceso a redes detrás de un NAT.

1. NAT dinámico

El NAT dinámico es el más básico de todos los métodos de traducción de


direcciones privadas a públicas. Consiste en tener un bloque IP público e ir
asignando dinámicamente una de esas IP a cada máquina de la LAN interna para
que salga a Internet. Si tenemos 3 máquinas en nuestra LAN, como la imagen,
necesitaremos entonces 3 IP públicas extra (aparte de la necesaria en la interfaz
WAN del router) para lograr conectividad. En este tipo de NAT, las IP reservadas
para el bloque público se van utilizando y se crea un mapping 1:1 entre las IP
internas y las externas. Si definimos solo 3 IP públicas entonces solamente podrán
conectarse 3 máquinas internas hacia Internet. Esta asociación se crea en forma
dinámica.

Configuración:
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 permite crear el rango de direcciones IP públicas que


vamos a asignar al NAT dinámico y asociarlo a un nombre. En este caso
RANGOPUBLICO. Luego se crea una ACL estándar donde seleccionamos el rango
completo de nuestro bloque LAN. Esta ACL no se utiliza para implementar bloqueo
de direcciones, si no simplemente se utiliza para seleccionar cuales IP de la LAN
serán traducidas.

Luego el paso más importante es definir el sentido del NAT. Siempre la LAN será la
red de “adentro” e Internet será la red de “afuera”. Por lo mismo se declara la
FastEthernet0/0 de nuestro router como interna con el comando ip nat inside y se
hace lo propio en la interfaz que apunta hacia Internet con el comando ip nat
outside.

Mucho cuidado con no invertir este orden por que NAT nunca funcionará. En todos
los tipos de NAT se debe definir las interfaces inside y outside.

La desventaja de implementar NAT dinámico es que se debe contar con una IP


pública para cada PC de la LAN interna que se quiera conectar a Internet. En un
entorno con más de 100 equipos, que es lo habitual, esto encarecería
enormemente los costos mensuales del acceso a Internet. Por esta razón no es muy
fácil encontrar NAT dinámico actualmente.

2. NAT estático

EL NAT ESTÁTICO ES EL MÁS SIMPLE DE CONFIGURAR Y PERMITE ASOCIAR


ESTÁTICAMENTE UNA DIRECCIÓN PÚBLICA A UNA DIRECCIÓN IP PRIVADA. ES
IDEAL PARA PERMITIR EL ACCESO DESDE INTERNET A UN SERVIDOR QUE
ALOJAMOS EN UNA DMZ POR EJEMPLO O EN LA RED LAN INSTITUCIONAL.
En nuestra LAN se ha instalado un servidor Web al cual se le ha asignado la
dirección IP privada 192.168.0.10, pero es requisito que desde Internet también se
pueda acceder. Ya que tenemos direcciones IP privadas, este servidor no puede ser
alcanzado desde una red pública, por lo tanto creamos una forma de asociar una
dirección IP pública única al servidor. Acá hemos asignado la IP 200.1.1.5/29. Esta
IP no puede ser utilizada en otro NAT al mismo tiempo ya que queda reservada
para la IP 192.168.0.10. En otros sistemas, como OpenBSD, se suele utilizar el
nombre de NAT 1:1 (one-to-one).

Configuración :

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

Basta con la declaración del mapeo en la línea ip nat inside source static

192.168.0.10 200.1.1.5, declarar las interfaces inside y outside y listo. Claro, si ya se


tiene otro método de NAT en el mismo router entonces no es necesario volver a
“redeclarar” las interfaces. Es así de simple.

3. PAT

El nombre PAT proviene de “Port Address Translation” y es el método de NAT más


utilizado probablemente. A diferencia de los dos métodos anteriores donde cada IP
privada se mapea en forma directa con una única IP pública, en el PAT se asocian
dinámicamente todas las conexiones originadas en la LAN con una única IP pública,
identificando cada sesión con un puerto de dicha IP (Por eso se llama Port Address
Translation).

Habitualmente PAT se conoce también como “Sobrecarga” u “Overload”, ya que se


le da todo el trabajo de traducción a una sola IP o interfaz de red.
En este caso hemos habilitado PAT en la interfaz f0/1. Así, todas las máquinas del
bloque 192.168.0.0/24 podrán salir a Internet a través de la IP 200.1.1.1. Para
lograr esto el router mapea dinámicamente cada sesión con un puerto de la IP
pública. Este es el tipo de NAT que más se usa, además de venir implementado de
manera predeterminada en los routers de tipo SOHO (domésticos). Noten que
además del PAT del router, también hay una entrada estática que definimos
anteriormente para el servidor Web en la IP 192.168.0.10. Cuando se genere una
solicitud desde/hacia este servidor, el router inmediatamente aplicará su NAT
estático y no meterá la IP 192.168.0.10 en la asociación dinámica de puertos.

Configuración:

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

En este caso también creamos una ACL estándar para seleccionar las IP de la red
LAN que serán traducidas en el PAT y luego con el comando ip nat inside source list
1 interface f0/1 overload asociamos esa ACL (que le dimos el número 1) con la
interfaz WAN donde haremos la sobrecarga. La

palabra OVERLOAD es clave para activar PAT correctamente.

4. PAT con múltiples IP

Aunque hemos mencionado que PAT es el mecanismo más ampliamente


configurado en las redes actuales, lo cierto es que tiene una tremenda limitación
en entornos donde la cantidad de máquinas en la LAN es de gran tamaño. Si se fijan
bien, en el PAT cada vez que hay una conexión originada en la red LAN, al pasar por
el router este asigna un puerto de la IP 200.1.1.1 para mapear esa conexión. ¿Sabes
cuanto es el total de puertos que existe en TCP/IP?. 2 elevado a 16 puertos: 65536.

Imagínense que hay 300 máquinas en una LAN donde se está haciendo PAT y cada
PC está generando una gran cantidad de conexiones simultáneas hacia Internet,
como por ejemplo, la descarga de música mediante una aplicación P2P o está
siendo víctima de un ataque DoS. Solo por ejemplificar, supongamos que cada
máquina genera 200 conexiones simultáneas. Ya habrán problemas porque 200
conexiones por 300 PC son 75000 sesiones que deberá manejar el router en su
asociación PAT, pero acabamos de decir que solamente se pueden establecer un
máximo de 65536 traducciones simultáneas en una dirección IP, por lo que 9464
conexiones no tendrían éxito y expirarían. ¿Ha experimentado el hecho de intentar
abrir una página Web esperando una gran cantidad de tiempo y al segundo intento
abre en forma instantánea? Bueno, esto es un síntoma de una saturación en el PAT
de un Router.

Para solucionar ese problema simplemente podemos asociar una nueva IP pública
a la sobecarga o un rango de ellas, multiplicando las cantidades de sesiones
simultáneas que se permitan en la traducción de puertos.

Esta vez hemos “ampliado” la capacidad del PAT agregando un pool de direcciones
a la sobrecarga de la traducción. Ya no solamente se utiliza la IP 200.1.1.1 para
conectar a todos desde Internet, si no que se utilizan también las direcciones
200.1.1.2 a la 200.1.1.4.

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
Acá hemos creado un rango de direcciones públicas que utilizaremos para

la sobrecarga y lo hemos llamado RANGO_PAT_PUBLICO. Luego creamos una ACL


estándar para seleccionar el bloque LAN que vamos a traducir. Luego con el
comando ip nat inside source list 1 pool RANGO_PAT_PUBLICO overloadasociamos
esa ACL al pool de direcciones públicamos y hacemos sobrecarga.

Nuevamente no hay que olvidarse de definir las interfaces inside y outside.

Eso es todo. No es tan complicado como se ve. Claro, hay cierta terminología que
se aplica dentro de NAT que no hemos cubierto en los ejemplos mostrados que
explicamos ahora. Vale la pena detenerse un poco a comprender bien estos
términos porque por lo general causan confusión entre los alumnos e instructores
(me incluyo).

– Inside Local: Se conoce como Inside Local a la dirección IP interna privada de


algún PC de la red LAN.

– Inside Global: Es la dirección IP pública que está siendo utilizada para traducir las
IP privadas. La IP WAN del Router en la interfaz f0/1 es considerada Inside Global,
así mismo como todas las IP de los rangos públicos.

– Outside Local: Corresponde a la dirección IP de un host ubicado en la red externa


(Internet) tal como se muestra en la red LAN interna. No necesariamente tiene que
ser una IP pública legítima.

– Outside Global: Es la dirección IP pública de un host de destino en la red externa.

Comandos útiles:

show ip nat translation

show ip nat static

debug ip nat

Para deshabilitar NAT en el router:

1. Desactive las 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. Limpie la tabla de traducciones:


Router# clear ip nat translations

3. Elimine las ACL y los comandos NAT creados anteponiendo la palabra “no”.
Ejemplo:

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
outer(config)# no ip nat inside source list 1 pool RANGO_PAT_PUBLICO overload

Para más información puede consultar los siguientes enlaces:

* Ayuda de Cisco sobre NAT (Inglés)

* Comprendiendo Inside, Outside, Local, Global (Inglés)

Vous aimerez peut-être aussi