Depto. Automática y computación
Universidad Pública de Navarra
Daniel Morató
daniel.morato@unavarra.es

41309 Laboratorio de Programación de Redes

3º Ingeniero Técnico en Informática de Gestión

Práctica 10 - Network Address Translation (NAT)

1.- Objetivos

NAT permite que una red IP parezca hacia el exterior que emplea un especio de direcciones diferente del que en realidad usa. La utilidad más típica es hacer que una red que emplea direccionamiento privado se pueda conectar a Internet convirtiendo las direcciones IP en los paquetes que envía a direcciones públicas.

En esta práctica vamos a ver los conceptos básicos sobre cómo configurar NAT en los routers Cisco.

2.- Material

3.- Avisos generales

En los ordenadores dispuestos para la realización de estas prácticas (PC A, B y C) se ha creado una cuenta de nombre lpr y password telemat. Esta cuenta tiene permisos para ejecutar mediante el comando sudo ciertos comandos restringidos normalmente al superusuario. Igualmente se le han otorgado permisos para modificar el contenido de ciertos ficheros del sistema necesarios para la realización de la práctica. Para más detalle diríjanse a la documentación sobre los armarios.

Si quieren conservar cualquier fichero entre sesiones guárdenlo en un disquete, dado que no se asegura que los ficheros creados o modificados durante una sesión de prácticas se mantengan para la siguiente.

Disponen de todos los privilegios en los routers Cisco, es decir, como si fueran el superusuario de un sistema UNIX. En general no tengan miedo de explorar los comandos disponibles en el Cisco IOS, sin embargo, tengan cuidado de no realizar cambios que lo inutilicen. Tengan cuidado con comandos que borren ficheros o sistemas de ficheros. También tengan especial cuidado cuando copien ficheros en la flash dado que puede haber un momento en que el router les pregunte si antes de copiar el fichero desean borrar la flash. Nunca le digan que sí a que borre la flash dado que en ella se encuentra el sistema operativo. Si por error proceden a borrar la flash no reinicien ni apaguen el router y avisen al profesor de prácticas. Serán capaces de recuperar este tipo de accidentes cuando aprendan cómo transferir al router ficheros desde un servidor de TFTP.

Al empezar a trabajar con un router tengan cuidado con la configuración que pueda tener grabada y eliminen lo que no necesiten. Antes de abandonar el laboratorio borren de la configuración del arranque sus modificaciones. Para evitar problemas con configuraciones de los routers en sesiones anteriores de prácticas lo primero que deben hacer cuando enciendan el router es borrar el fichero de configuración que carga en el arranque, es decir, en modo privilegiado:

Router# erase startup-config

Una vez hecho esto reinicien el router (comando reload). Al terminar de arrancar y no encontrar el fichero de configuración el sistema ejecuta un script (setup) para realizar una primera configuración del router. Salgan del script indicando que no quieren configurar nada. Con eso ya tendrán una configuración en curso limpia (running-config). Guárdenla como el nuevo fichero de configuración de arranque:

Router# copy running-config startup-config

Recuerden: Nunca le digan que sí a que borre la flash dado que en ella se encuentra el sistema operativo.

4.- Introducción a NAT

Un router en el que se haya configurado NAT tendrá normalmente al menos un interfaz en el interior de la red y otro en el exterior. Normalmente se configura NAT en el router de salida de una red. Cuando un paquete está saliendo del dominio, NAT convierte la dirección IP origen en una dirección pública. Cuando un paquete entra en el dominio, NAT convierte la dirección pública destino en el mismo en la dirección local apropiada.

Un router configurado con NAT no anuncia rutas de las redes internas hacia el exterior. Sin embargo, sí puede utilizar la información de enrutado que recibe del exterior.

El Cisco IOS define como el interior o inside a las redes cuyas direcciones deben ser convertidas. El espacio de direcciones del interior se llama el espacio local y el del exterior es el global. Las redes a las que se conecta el interior se llaman el exterior o outside.

Veamos las siguientes definiciones:

5.- Conversión estática

Figura 1.- Dos redes

Una de las redes (Red B) representará el interior y la otra (Red A) el exterior. En el interior emplearemos el espacio de direcciones 192.168.0.0/24. Para el exterior emplearemos el espacio de direcciones 10.0/16.

Si prueban a hacer ping desde el PC B al PC A debería funcionar. En el caso de que realmente la red interior emplease direccionamiento privado y la red exterior fuera Internet entonces el router no debería reenviar estos paquetes. El router incluiría algún tipo de reglas de filtrado que evitasen este reenvío. En esta asignatura no vamos a ver cómo realizar estos filtrados.

Vamos a hacer que el router cambie la direccción del PC B en los paquetes que reenvíe. Para ello:

En dicho comando direccion-local debe ser la dirección IP del PC en la red interior y direccion-global la dirección por la que queremos que haga el cambio el router. Escoja una dirección de la red A y tengan en cuenta que ningún otro host en la red exterior puede tener asignada esa dirección.

A continuación debemos especificar qué interfaz está conectado al interior y cuál al exterior.

Verán que desde que ejecutaron este último comando los paquetes ICMP que recibe PC A ya no vienen de la IP real de PC B sino que vienen de la IP global que hemos asignado. Esa IP la hemos escogido de la red externa, es decir, es una IP de la red a la que pertenece PC A. Vean que la cache ARP del router tiene una nueva entrada permanente que corresponde a esa IP global, es decir, hace proxy ARP de ella en la red externa.

Checkpoint 1
Muestren al profesor de prácticas que les funciona.

6.- Conversión dinámica

Ahora vamos a crear un conjunto (pool) de direcciones globales que el router empleará para convertir las direcciones internas a ellas.

Primero definiríamos el pool de direcciones públicas disponible:

Router(config)# ip nat pool nombre ip-comienzo ip-final netmask mascara

Donde nombre no es más que un nombre que le damos a este pool para poder hacer referencia a él más tarde. Estamos definiendo un rango de direcciones IP, las que vayan desde ip-comienzo a ip-final. Y finalmente indicamos la máscara de la red a la que pertenecen estas direcciones.

A continuación creamos una lista de acceso con las direcciones de las máquinas a las que convertiremos la dirección IP. No vamos a ver listas de acceso, así que el comando a ejecutar en nuestro caso es:

Router(config)# access-list 1 permit 192.168.0.0 0.0.0.255

Donde estamos creando la lista de acceso 1 que indica permitir (lo que sea) a las IPs de la red 192.168.0.0 cuyos últimos 8 bits (los que están a 1 en 0.0.0.255) pueden tener cualquier valor.

Lo siguiente es indicarle que esa lista de acceso contiene las IPs que queremos convertir:

Router(config)# ip nat inside source list 1 pool nombre

Donde nombre es el nombre que hemos dado al pool.

Lo único que queda es indicar igual que hicimos antes qué interfaz es el interior y cuál el exterior.

Las entradas dinámicas en el pool de direcciones caducan tras cierto periodo de inactividad. El problema es que dicho periodo está configurado por defecto a 24h, pero se puede modificar.

Donde segundos es el número máximo de segundos de inactividad antes de borrar una entrada de conversión

También pueden ver estadísticas con el comando show ip nat statistics.

Checkpoint 2
Muestren al profesor de prácticas que les funciona.

7.- Sobrecarga de la dirección exterior del router

En este apartado vamos a configurar que el router convierta todas las direcciones internas en su dirección externa.

Figura 2.- Dos redes y 3 PCs

De lo que han aprendido para la configuración con un pool necesitarán crear una lista de acceso como la que crearon en ese ejercicio. Lo que no necesitaremos es el pool, dado que la IP del router es todo el pool disponible.

Donde elinterfazexterno debe ser el nombre del interfaz del router conectado al exterior.

8.- Conexión a la red del laboratorio empleando NAT

Figura 3.- Router a la red del laboratorio

Empleen el espacio de direcciones 192.168.0.0/24 en la red interna.

Checkpoint 3
Expliquen al profesor de prácticas cómo funciona esta conversión.

9.- Conclusiones

En esta práctica hemos visto unos ejemplos básicos de la configuración de NAT en los routers Cisco, tanto con conversiones estáticas como dinámicas o sobrecargando el uso de direcciones.

Si disponen en casa de algún tipo de wireless router, router adsl o similar con una pequeña red interna investiguen si están empleando NAT.


Depto. Automática y computación
Universidad Pública de Navarra
Daniel Morató
daniel.morato@unavarra.es