Вы находитесь на странице: 1из 5

Implementando NAT en routers Cisco

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.