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 7 - Configuración de RIP

1. Objetivos

En esta práctica vamos a ver cómo configurar el protocolo de enrutamiento RIPv1 (RIP versión 1) en los routers Cisco.

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. Configurando RIP

Dispongan una topología como la de la figura 1. En la LAN1 empleen el espacio de direcciones 192.168.1.0/24. En la LAN2 empleen 192.168.2.0/24 y en la LAN3 192.168.3.0. PC1, PC2 y R2 pertenecen a un grupo de prácticas, PC3, PC4 y R1 al otro.

Asignen dirección IP a los interfaces de R2 y a PC1 y configuren el router por defecto de PC1 (debería ser el interfaz de R2 en su LAN). Hagan lo mismo con R1 y PC4 en la otra LAN. Configuren PC2 y PC3 para que tengan dirección IP de la LAN 3. Ahora, si intentan enviar un paquete IP desde PC1 a PC4 o viceversa verán que no funciona. ¿Qué es lo que falla? Prueben a hacer un ping de PC1 a PC4. Vean el contenido de la tabla de rutas de cada uno de los routers. Deben tener solo rutas a las redes a las que cada uno está conectado. No las modifiquen.

Figura 1.- Topología con 3 redes

A. Activando el proceso de RIP

Como paso previo vamos a desactivar un mecanismo llamado split horizon que evita las cuentas a infinito en ciertas situaciones. Lo vamos a desactivas para ver primero el caso más simple de RIP. Se puede activar/desactivar en cada interfaz de forma independiente. Vayan al modo configuración de cada interfaz y ejecuten el comando:

Router(config-if)# no ip split-horizon

Entren en el modo global de configuración de uno de los routers (de momento solo de uno). A partir de ahí entren en el modo de configuración de RIP:

Router(config)# router rip

Este comando también ha activado un proceso de RIP. Ahora, debemos decirle a qué redes queremos que envíe actualizaciones de RIP, es decir, por qué interfaces. Para ello, se especifican con el siguiente comando:

Router(config-router)# network direcciondelared

Ejecuten ese comando para la red 192.168.3.0. Coloquen un tcpdump en alguno de los PCs de la LAN3, podrán ver el paquete de RIP que envía el router. ¿Cada cuánto tiempo lo envía? Verán que solo anuncia la red para la que hemos ejecutado el comando network. ¿Manda algo a la otra red a la que está conectado? ¿A qué dirección IP manda los paquetes? ¿Qué protocolo de transporte emplean? ¿Y qué puertos? Si queremos que anuncie también la otra red debemos ejecutar el comando también para ella, háganlo.

Ahora, en la LAN3 vean el paquete de RIP que envía ese router. ¿Qué redes anuncia? ¿Y por la otra LAN a la que está conectado?

Pueden obtener información sobre la configuración del proceso de RIP con el comando:

Router> show ip protocols

En el resultado de ese comando identifiquen: cada cuánto se envían las actualizaciones de RIP, cuánto falta para que se envíe la próxima y en qué redes se ha activado.

Consulten ahora la tabla de rutas del otro router. ¿Ha cambiado algo desde que activamos RIP en el primero? Recuerden que solo hemos activado el proceso de RIP en uno de los routers. Eso quiere decir que aunque este router pueda ver los paquetes enviados por el otro no tienen ningún programa que los procese.

En los routers Cisco se pueden activar funciones de depuración para que nos digan lo que está haciendo ante ciertos paquetes o eventos. No es recomendable tenerlas activas mas que cuando se busquen problemas de configuración o de red porque ralentizan el funcionamiento del router. Se activan desde modo privilegiado con el comando debug. En el router que tiene RIP activo ejecuten:

Router# debug ip rip
Router# debug ip routing

La primera de ellas hará que el router nos indique cuando envía o recibe paquetes de RIP. Con la segunda nos notificará cuando se produzcan cambios en la tabla de rutas. Se desactivan sin más que poner no delante de cada una de ellas. Generalmente hace falta conectarse al router por el puerto de consola para ver los mensajes de depuración.

Activen ahora un proceso de RIP en el segundo router. Configúrenlo para las dos redes a las que está conectado. Vean los paquetes de RIP de los dos routers ahora en la LAN3 y de cada uno de ellos en la LAN1 y la LAN2. Vean cómo cambian las tablas de rutas de cada uno. Verán en cada uno la ruta indirecta a la red que está solo conectada al otro router. A las redes directamente conectadas les asigna una métrica de 0 (aunque en los paquetes de RIP ponga 1) y a las que están a un router de distancia una métrica de 1 (y en los paquetes de RIP verá que envía las rutas con métrica 2). ¿Cómo marca el Cisco IOS las rutas que ha aprendido con RIP? Vean que cada ruta aprendida con RIP tiene además un contador de tiempo que indica el tiempo que ha transcurrido desde la última vez que se recibió una actualización que anunciaba esta ruta.

Prueben ahora a hacer ping entre PC1 y PC4.

B. Reaccionando a la desconexión de redes

Desactiven ahora uno de los routers del hub de la LAN3. Por ejemplo desconecten el router R2 del hub. R2 desactiva automáticamente su interfaz. R1 no sabe que el router R2 se ha desconectado de la red. Sigue pensando que puede llegar a la LAN2 través de él. Transcurrido cierto tiempo, R1 marca esa red como posiblemente inalcanzable y empieza a mandar los paquetes de RIP con métrica 16 en esa ruta. ¿Cúanto es ese tiempo? En la salida del comando show ip protocols aparece marcado como "Invalid after". Un tiempo después el router borra la ruta de su tabla.

El proceso en R2 ha sido diferente. El router detecta que ya no está conectado al hub y desactiva ese interfaz. Al desactivarlo elimina todas las rutas que iban por ese interfaz.

Reconecten R2 al hub y vean cómo los routers aprenden de nuevo las rutas.

Desactiven ahora una de las redes de los extremos. Por ejemplo, deconecten el cable del router R1 al hub de la LAN1. Verán que R1 desactiva inmediatamente ese interfaz y desaparece la ruta a esas red de su tabla de rutas. Si tienen activado el debug de RIP verán que en el siguiente paquete de RIP que manda sigue anunciando la ruta a la LAN1 pero ahora con métrica 16. ¿Qué tiene este valor de especial? Al recibir el otro router este paquete, como tenía apuntado que llegaba a esa red a través de ese router cambia la métrica de su ruta aunque el nuevo valor es mayor que el que él conocía. Pero dado que el valor de métrica que le llega es 16 elimina la ruta de su tabla de rutas. En las siguientes actualizaciones enviadas por R2 aún se incluye la ruta a esa red ahora inalcanzable, pero se envía indicando una métrica de 16. Este mecanismo de enviar la ruta inválida con métrica 16 en vez de simplemente borrarla se conoce como poison reverse y reduce de convergencia, es decir, el tiempo que tardan los routers de la red en enterarse de cambios en la misma.

Reconecten el cable y vean cómo se propaga la información de que esa red vuelve a estar accesible.

C. Timers

Hemos visto varios timers en funcionamiento. Por un lado el tiempo entre cada actualización de RIP que envía el router. Por otro lado el tiempo hasta que marca como inalcanzable una red por no recibir actualizaciones y finalmente el tiempo hasta que la borra. Podemos cambiar estos valores desde el modo de configuración del proceso de RIP con el comando timers. Pruébenlo. El timer de Holddown pueden ignorarlo (por ejemplo ponerlo a 0) dado que es para un mecanismo que de momento no hemos visto.

D. Split-Horizon

Parece apropiado mencionar un poco qué es split-horizon, dado que lo hemos desactivado al comenzar la práctica. Este mecanismo viene activado por defecto y evita que se produzcan ciclos en ciertas topologías. Lo que se hace es, en la tabla de rutas que se envía por un interfaz no enviar las rutas a todas las redes a las que el router llega por ese interfaz. Veamos un ejemplo. Reactiven split-horizon en los interfaces de los routers que están conectados a la LAN3. A partir de ahí verán que los paquetes que por ejemplo envía R1 a esa red no incluyen la ruta a la LAN3 ni a la LAN1. Dado que para alcanzar esas redes él envía los paquetes por ese interfaz, o sea, ha aprendido las rutas por él, es lógico pensar que los routers que estén en la LAN3 no necesitan que él les comunique de nuevo esa información.

5. Conectándose a la red del Laboratorio

Desconecten la topología anterior. Si no han grabado en ningún momento la configuración reinicien el router, si la han guardado borren el fichero de configuración del arranque y reinicien el router para tener una configuración limpia.

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

Figura 2.- Router 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 20 bits. En la red interna empleen la red 10.0.32+grupo*16.0 con máscara de 20 bits. Configuren en PC1 su router como router por defecto. ¿Pueden hacer ping al router de acceso (10.0.0.254) desde su router?, si no pueden han configurado algo mal. ¿Pueden hacer ping desde el PC1 1.1.1.254? ¿Por qué?

Configuren PC2 con la dirección IP 10.0.0.grupo+16. Pongan un tcpdump en él y vean que el router de acceso está enviando paquetes de RIP. ¿Qué rutas está anunciando?

Activen RIP en todos los interfaces del router. ¿Qué rutas aprende? Vean desde PC2 cómo son los paquetes de RIP que envía R1 y verifiquen que está anunciando su red interna (la red en la que está PC1). Prueben ahora a hacer ping a 1.1.1.254. ¿Funciona? ¿Por qué? La red del laboratorio es la 1.1.1.0/24, ¿con qué máscara ha aprendido la ruta a esa red? ¿Por qué?

A medida que sus compañeros vayan activando RIP en sus routers conectados a ese conmutador deberían ver cómo la tabla de rutas de su router se pobla con las rutas a sus respectivas redes internas. Comprueben que pueden hacer ping al host PC1 de alguno de sus compañeros.

Checkpoint
Muestren al profesor de prácticas que les funciona y expliquen cómo.

5.- Trabajo opcional

En el PC2 de la figura 2 podríamos configurar un router por defecto o mediante rutas estáticas rutas a cada una de las redes. Una tercera opción es ejecutar en él también un proceso de RIP. Como el PC tiene un solo interfaz de red configuraríamos el proceso de RIP para que solo reciba los paquetes de RIP y actualice su tabla de rutas pero que no envíe actualizaciones a la red.

Busquen un paquete con el demonio de RIP. El programa típico en los UNIX se llama routed (prueben por ejemplo en http://rpmfind.net). Instálenlo y prueben a lanzarlo como se indica. Ejecútenlo de forma que no se quede como demonio sino que se mantenga en el terminal y vean los paquetes de RIP que va recibiendo y cómo cambia la tabla de rutas del PC.

6.- Conclusiones

En esta práctica hemos configurado un proceso de RIP en los routers Cisco y hemos visto cómo se poblaba la tabla de rutas a medida que recibían paquetes de RIP. Hemos visto brevemente los mecanismos de split-horizon y poison-reverse que mejoran el funcionamiento de RIP.

Sin embargo, RIPv1 está pensado para redes que emplean una máscara fija y puede dar problemas en otras situaciones. En la siguiente práctica veremos qué se puede hacer si la red emplea VLSM.


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