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

Laboratorio de Programación de Redes

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

Práctica 6 - Configuración de rutas estáticas

1. Objetivos

En esta práctica veremos cómo configurar rutas manualmente en los routers CISCO y cómo averiguar, desde un PC, el camino que siguen los paquetes hasta un destino final.

2. Material

3. Avisos generales

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:

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

A continuación configuren de nuevo la password de enable (telemat) y el acceso por telnet (password lpr2003).

Y recuerden: 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.

Tengan cuidado si conectan/desconectan cables a los PCs o a los routers (monitores, teclados, cables de red, de alimentación...) para evitar que se estropeen los conectores. No atornillen fuertemente las conexiones.

4. Conectándose a la red del Laboratorio

Creen la disposición física de la figura 1.

Figura 1.- Router conectado a la red del laboratorio

Asignen al interfaz del router conectado a la red externa la dirección 10.0.0.grupo con máscara de 24 bits. En la red interna empleen la red 10.0.grupo.0 con máscara de 24 bits. Activen proxy-arp en el interfaz externo. Configuren en el PC su router como router por defecto. ¿Pueden hacer ping al router de acceso (10.0.0.254) desde su router?, si no pueden revisen la configuración. ¿Pueden hacer ping desde el PC al router de acceso? ¿Por qué? ¿Pueden hacer ping a 1.1.1.254 desde el PC? ¿Por qué? ¿Qué tipo de error reciben? Pongan un tcpdump a la vez que hacen ping y averigüen de dónde surge ese error.

Vamos a añadir unas rutas estáticas a la tabla de rutas del router. Esto se hace con el comando ip route en el modo global de configuración. Añadan una ruta hacia la red 1.1.1.0/24 cuyo siguiente salto sea el router de acceso. Vean la tabla de rutas ahora (show ip route). Prueben a hacer ping desde el PC a 1.1.1.254.

Averigüen si alguno de sus compañeros ha llegado ya hasta este punto de la práctica. Si es así, eso quiere decir que su router está conectado también en la red 10.0.0.0/24 (sección etiquetada como otro grupo en la figura 1). Averigüen el número del grupo y creen una entrada en la tabla de rutas de su router que permita llegar a la red interna de ese grupo. Prueben a hacerle ping al PC del otro grupo. Cuando su router reenvía un paquete hacia el router de sus compañeros, ¿es necesario que ellos tengan activado Proxy-ARP?

Si encuentran más grupos que han llegado hasta este punto de las prácticas añadan rutas a las redes de todos ellos y prueben que funcionan. En ningún momento añadan una ruta por defecto.

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

5.- Rastreando el camino

El comando traceroute es un ejemplo de cómo emplear de forma ingeniosa el funcionamiento de los protocolos de Internet. Lo que intenta hacer el comando es decirnos las direcciones IP de los routers que hay en el camino entre el host que ejecuta el comando y el host especificado en el mismo.

Hagan una prueba, con la configuración del apartado anterior, en vez de hacer ping al PC de sus compañeros empleen el comando traceroute desde su PC:

% traceroute -n -q 1 IPdelotroPC

Donde la opción -n no es imprencindible pero sí conveniente dado que evitará que el comando intente calcular los nombres (DNS) que corresponden a cada dirección IP que averigüe. La opción -q permite especificar el número de sondas que queremos que envíe traceroute por cada TTL (se explica a continuación), si no se especifica envía 3, será más sencillo entender la salida de tcpdump si solo envía una. Si todo funciona correctamente verán que en distintas líneas el comando les indica las direcciones IP de los routers que encuentra en el camino. De cada router además muestra solo una de sus direcciones IP, siempre la misma. ¿Cuál? Es decir, ¿la del interfaz más rápido? ¿la del interfaz de menor dirección IP? (ninguna de las dos opciones anteriores es la correcta)

¿Cómo funciona traceroute? El comando construye un paquete UDP dirigido al host que le hemos indicado y a un puerto al azar, puerto en el que confía que no haya ninguna aplicación esperando datos. Cuando este paquete llegue al host destino, si efectivamente no hay ninguna aplicación atendiendo a ese puerto, se producirá un error ICMP del tipo Puerto destino inalcanzable (Nota: si fuera un paquete TCP normalmente no se produce este tipo de error ICMP). El paquete ICMP irá desde ese host hasta la IP del PC que le envió el paquete UDP. En ese momento, traceroute sabe que ha alcanzado al host destino (ha sido funcionalmente muy parecido al ping).

Sin embargo, traceroute hace algo más. Cuando envía el paqueta UDP (la primera vez) lo envía con un TTL de 1 (obviamente el paquete IP en el que va el paquete UDP, el campo TTL es parte de la cabecera IP). Al entregarle este paquete IP al primer router, éste decrementa el TTL y lo intenta reenviar pero como le ha quedado un TTL de 0 no lo reenvía sino que lo descarta y envía a la dirección IP origen de dicho paquete descartado un paquete ICMP de tipo "destino inalcanzable, tiempo excedido en tránsito". Si nos fijamos bien, ese paquete ICMP irá en un paquete IP, la dirección IP destino será la del host haciendo traceroute y la IP origen será la del interfaz del router que lo envía (el router es el origen del paquete). Así pues, cuando el PC reciba ese error sabrá que con TTL 1 no puede llegar hasta el host destino y además habrá averiguado una de las direcciones IP del primer router en el camino hacia el destino.

En el siguiente paso, traceroute envía el paquete UDP con un TTL de 2. El primer router lo decrementará en 1 (resultado TTL=1) y lo reenviará. El siguiente router que lo reciba lo decrementará de nuevo y al dar como resultado 0 descartará al paquete y enviará un paquete ICMP al host origen. Al recibir ese paquete el host sabrá la dirección IP del segundo router en el camino.

El comando traceroute no tiene más que repetir este proceso incrementando el TTL de 1 en 1 hasta que reciba el ICMP de puerto destino inalcanzable, momento en el cual sabrá que ha llegado al host final y ya conoce todos los saltos del camino.

Vuelvan a probar el comando traceroute. En esta ocasión coloquen también un tcpdump en el PC origen que les permita ver los paquetes que envía y recibe. Con la opción -v de tcpdump podrán ver el TTL de cada paquete IP.

Repitan el ejercicio haciendo traceroute a 1.1.1.254.

En el Cisco IOS existe un comando de igual nombre y funcionalidad. Pruébenlo.

Checkpoint
Avisen al profesor de prácticas y demuéstrenle que han entendido el funcionamiento de traceroute

6.- Conclusiones

Hemos visto la configuración manual de rutas en el Cisco IOS. En las siguientes prácticas veremos los primeros pasos sobre configuración de un protocolo de enrutamiento que nos libere del trabajo de configurar rutas manualmente.


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