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 4 - Configuración IP de interfaces Ethernet en Cisco IOS

1. Objetivos

En esta práctica vamos a ver cómo configurar IP sobre los interfaces Ethernet de los routers Cisco.

2. Material

3. Avisos generales

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.

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 las conexiones.

Al empezar a trabajar con el router tengan cuidado con la configuración que pueda tener grabada y eliminen lo que no necesiten. Antes de devolver el router borren de la configuración del arranque sus modificaciones.

4.- Configuración de un PC para acceso por el puerto serie

Para esta práctica cada grupo dispone de dos PCs. Sin embargo, para evitar problemas de espacio solo dispone de un monitor y un teclado. Podríamos configurar el interfaz de red de los PCs y acceder al que no tienen monitor/teclado siempre por telnet o ssh pero dado que vamos a estar cambiando la configuración de red de los PCs frecuentemente esta opción puede dar problemas. Lo que vamos a hacer es aprovechar esta circunstancia para aprender a configurar el PC para que se pueda hacer login en él a través de su puerto serie de forma que aunque configuremos mal su tarjeta de red podamos acceder al PC sin tener que reconectarle el monitor y el teclado. ¿Cómo accederemos a él? Accederemos desde el otro PC empleando el programa minicom y conectando los puertos serie de ambos con un cable serie cruzado.

Uno de los PCs dispone de dos puertos serie. Cuando terminemos la configuración será éste el PC que tenga el monitor y el teclado conectados, con uno de los puertos serie podremos acceder al otro PC y a través del segundo puerto serie accederemos al router Cisco a través de su puerto de consola. Tenga en cuenta para esto que los devices que hacen referencia a los dos interfaces serie probablemente se llamen ttyS0 y ttyS1 y use el adecuado según en qué puerto esté conectado el PC y en cuál el router.

Otra consideración previa: Algunos PCs no arrancan si no tienen un teclado conectado. Si este es el caso conecte el teclado al PC hasta que comience correctamente el proceso de arranque y después cámbielo al otro si lo necesita.

A.- init

init es un proceso muy importante en los sitemas operativos de tipo UNIX. Normalmente es el primer proceso que se ejecuta, lo cual hace que obtenga el PID 1. Lee un fichero de configuración y lanza otros programas según se le ha indicado en ese fichero, el cual tiene una sintaxis propia. init es ancestro de todos los procesos.

Se puede lanzar o configurar init para que funcione en un runlevel en concreto. Esto quiere decir que lanzará solo los programas del fichero de configuración que se hayan indicado que deben correr en ese runlevel. Se le puede notificar a init que cambie de runlevel sin detenerlo empleando el comando telinit.

El fichero de configuración de init es /etc/inittab. Consulten la página del manual de init y de inittab para ver cuál es la sitaxis de este fichero. En la documentación tienen ejemplos y disponen también del fichero de configuración actual. Hagan una copia de seguridad de ese fichero antes de editarlo.

Uno de los programas que inittab le indica a init que debe ejecutar es un script que lanza los demás demonios típicos del sistema (ese script por ejemplo configuraría la red), pero no es este script lo que ahora nos interesa. Entre los programas que lanza se encuentra normalmente el programa mgetty (u otro parecido como el mingetty en el caso de la versión de linux de la que disponen). A este programa se le indica un tty al cual atender. En nuestro caso estos tty son las diferentes consolas en las que podemos hacer login (esas a las que cambian con Ctrl+Alt+FNumero). Este programa pregunta por el nombre del usuario, lo lee del terminal y lanza otro proceso (generalmente login) que es quien se encarga de leer la password, auntentificar al usuario y crear un shell para él.

Lo que vamos a hacer es configurar un programa de este estilo que haga lo mismo pero sobre el puerto serie, es decir, en vez de sobre una de esas consolas (tty1, tty2...) sobre un device del puerto serie (ttyS0).

B.- Configurando el PC que acepta login por el puerto serie

Realizaremos esta configuración con la colaboración de sus compañeros de mesa. Conecten monitor y teclado en el PC que solo tiene un puerto serie (si ambos tienen dos puertos serie empleen uno cualquiera). Éste es el que vamos a preparar para poder acceder a él a través del puerto serie. Conecte con un cable serie cruzado el puerto serie de ese PC con el del PC equivalente de sus compañeros de mesa.

Ahora editen el fichero /etc/inittab para que lance el programa mgetty sobre ese puerto serie. Este programa es más adecuado para líneas serie que mingetty e incluso es capaz de comunicarse con un módem que estuviera conectado en ella. Consulten la documentación del programa para ver las opciones que necesita. Al menos deberán indicarle el device del puerto serie, la velocidad e indicarle que emplea la línea serie directamente sin un módem (todo ello viene en el manual).

Avisen a init de que han cambiado su fichero de configuración. Esto puede hacerse ejecutando init con la opción q con lo cual avisa al init que está corriendo para que vuelva a leer su fichero de configuración y así lance el mgetty. Si quieren, pueden probar antes las opciones lanzando el mgetty directamente desde la línea de comandos pero lo más adecuado es dejar que lo lance init siempre.

Una vez que un PC tenga el mgetty corriendo podemos abrir un minicom desde el PC del otro extremo y podremos ver el login del sistema.

Ambos grupos de la mesa deben hacer esta configuración en su PC para que así quede preparado para comunicarse con el otro PC del que disponen a través del puerto serie.

Desconéctense del PC de sus compañeros. Conecten sus dos PCs por el puerto serie. Devuelvan el monitor y el teclado al otro PC (el que tiene dos puertos seris) y prueben que efectivamente pueden acceder a la máquina con minicom. Podrán entrar solo con el usuario guest, no con el usuario root si no han cambiado nada más de la configuración pero esto no es un problema dado que siempre pueden ejecutar el comando su.

No cambien el fichero inittab del segundo PC del grupo.

Checkpoint
Muestren al profesor de prácticas que pueden rebotar el PC que no tiene monitor y acceder a él desde el otro con minicom.

4.- Configuración IP básica del router

Vamos a configurar el router para que esté conectado a una red diferente con cada uno de sus interfaces Ethernet. En la figura siguiente se ve la topología que queremos conseguir, donde hemos numerado los interfaces Ethernet del router.

Figura 1.- Router conectado a dos redes

Cada grupo de prácticas puede trabajar con el bloque de direcciones 10.0.grupo.0/24. Lo que deben hacer en este apartaddo es crear dos subredes dentro de esa red. Dividan ese espacio de direcciones en al menos dos bloques. Configuren los dos interfaces del router para que cada uno esté en una de esas redes. Configuren sus PCs para que cada uno tenga dirección IP de una de las redes. Conecten uno de los interfaces del router a un hub y ahí uno de sus PCs (el que está configurado para esa red) y en el otro interfaz el hub que comparten con sus compañeros de mesa. Conecten al hub compartido también su segundo PC. Sus compañeros de mesa emplearán simultáneamente ese hub compartido pero para los efectos de este apartado pueden ignorar su PC y router. Configuren además la ruta por defecto para cada uno de sus PCs de forma que hagan referencia cada una al interfaz del router conectado en esa red.

Para la configuración IP de los interfaces del router deberán emplear el comando ip dentro del modo de configuracion de cada interfaz.
http://www.cisco.com/en/US/products/sw/iosswrel/ps1835/products_configuration_guide_chapter09186a00800ca75b.html#33188

Prueben a hacer ping desde el PC a cada uno de los interfaces del router. Vean la cache de ARP del router (comando show).

Empleen el programa tcpdump para ver los paquetes tanto en la red a la que está conectado un PC como en la red a la que está conectado el otro.

Nota: Aunque la conexión por el puerto serie entre los PCs aparece en la figura no forma parte de la red IP porque no estamos empleando IP sobre esa línea serie.

Checkpoint
Muestren al profesor de prácticas la configuración y expliquen cómo funciona el envío de paquetes IP entre máquinas de las dos redes.

5.- Topología con dos routers

Si nos fijamos con cuidado (y si sus compañeros de mesa ya han completado el apartado anterior) en realidad la topología creada es la de la siguiente figura:

Figura 2.- 2 routers conectando 4 redes

Donde dos routers nos interconectan 3 hubs pero hay cuatro redes. Efectivamente, cada grupo de prácticas que está empleando el hub compartido ha asignado a las máquinas que ha conectado al mismo direcciones IP de diferentes bloques de direcciones. Así pues en el hub central hay máquinas con direcciones de redes diferentes: unas pertenecen a la Red B y otras a la Red C.

Lo siguiente que notamos es que las máquinas de la red A y la red B pueden comunicarse entre sí pero no con máquinas de la red C o de la red D (pruébenlo). ¿Por qué el PC de la Red A no puede hacer llegar un paquete IP al PC de la Red D? ¿Qué sucede con ese paquete? ¿Y por qué el PC de la Red B no consigue hacer llegar un paquete IP al PC de la Red C, estando ambos en el mismo hub? ¿Qué hace el PC origen? ¿Quién falla? ¿Qué sucede con el paquete?

Hay bastantes formas de abordar este problema. Veamos algunas aproximaciones:

A.- Cambiar el direccionamiento de las redes B y C

Evidentemente todo sería más sencillo si en vez de existir dos redes IP diferentes en el concentrador central hubiera solo una. Pero este cambio requiere reconfigurar las direcciones IP de todas las máquinas en esas dos redes.

Escojan una de las dos redes (Red B o Red C) y cambien las direcciones de los interfaces conectados al hub central para que todos pertenezcan a esa red.

Ahora los PCs del hub central pueden comunicarse entre sí y con los dos routers. Pero la Red A y la Red D siguen sin tener comunicación entre sí. Para resolver esto introduzcan una ruta por defecto en cada uno de los routers que tenga al otro router como siguiente salto. El comando para añadir routas es (en modo configuración) ip route.

¿Ahora qué camino siguen los paquetes que van de la Red A a la Red D? Coloque un tcpdump en uno de los PCs conectado al hub central. ¿Puede ver los paquetes que van de la Red A a la Red D? ¿Y los que van de la Red D a la Red A?

Uno de los campos de la cabecera de todos los paquetes IP es el TTL o Time To Live. El origen del paquete le da un valor y cada router que reenvía el paquete lo decrementa al menos en una unidad. Si un router va a reenviar un paquete y después de decrementar este campo de la cabecera el resultado es 0 o menos que 0 descarta el paquete sin reenviarlo. Podemos ver el valor de este campo de los paquetes IP con el programa tcpdump si le pedimos que saque más información de cada paquete. Pueden emplear para ello la opción -v. ¿Con qué valor de TTL generan estos PCs los paquetes IP normalmente? Vean cómo el TTL se decrementa al ser reenviado por cada uno de los routers. En esta topología, ¿Qué valor mínimo de TTL se debe emplear para que todos los paquetes puedan llegar a su destino?

B.- Sin hacer cambios en los hosts

Vamos a intentar que todos los PCs puedan comunicarse con todos en esta topología sin hacer cambios en la configuración de los hosts respecto a la configuración inicial. Para eso primero deshagan los cambios del apartado anterior.

En realidad ambos routers podrían enviar tramas Ethernet a máquinas de las redes B y C dado que están todos conectados al mismo hub. Sin embargo, tal y como están configurados cada uno de ellos no tiene ninguna ruta que le indique cómo llegar a una de esas redes ni tiene un interfaz en ella. Lo que vamos a hacer a continuación es indicarle a cada router que puede llegar a la otra red que está en el hub, directamente por el interfaz Ethernet que tiene conectado al mismo. Para ello añadan una ruta manualmente a cada router indicándoselo (en esta ruta no deben indicar un siguiente salto, solo decirle por qué interfaz puede llegar directamente a esa red).

Una vez que hayan hecho esto cada router sabrá cómo llegar a hosts tanto de la red B como de la red C. Compruébenlo.

Ahora les falta saber cómo llegar a la red con la cual no tienen ningún tipo de conexión directa. Para ello lo que hacemos a continuación es configurar a cada router una ruta por defecto en la cual el siguiente salto (next hop) sea el otro router.

Con esta configuración: ¿qué camino siguen los paquetes que van de la red A a la red D? ¿y los que van de la red B a la red D? ¿y los de la red B a la red C?

Checkpoint
Muestren al profesor de prácticas el camino que siguen ahora los paquetes

5.- Proxy-ARP

Ahora vamos a probar el funcionamiento de Proxy-ARP. Deshagan los cambios del apartado anterior, es decir, desconfiguren de cada router la ruta por defecto y la ruta a la otra red del concentrador central. Vuelven a trabajar independientemente de sus compañeros de mesa. Cambien la configuración del PC conectado a la red A para que su máscara de red haga referencia a todo el espacio de direcciones que se les ha asignado (es decir, máscara de 24 bits). Borren todas las entradas en la cache ARP del PC de la Red A. Ahora, ¿qué hará el host de la Red A cuando tenga un paquete para el otro PC que está en la red B? Después de hacer un ping al otro PC consulten la cache ARP del PC de la red A, ¿qué dirección MAC ha aprendido?

Los routers Cisco tienen activado por defecto el hacer Proxy ARP. Si no recuerdan bien el funcionamiento de Proxy ARP pueden consultar:
http://www.cisco.com/en/US/tech/tk648/tk361/technologies_tech_note09186a0080094adb.shtml

Proxy ARP se activa/desactiva para cada interfaz del router independientemente (con el comando ip en modo configuración de interfaz). ¿Qué interfaz del router está haciendo Proxy ARP? Compruébenlo desactivándolo. Una vez desactivado, ¿siguen pudiendo hacer ping entre los dos hosts? Recuerden la cache ARP del host de la Red A. Comprueben que al volver a activar Proxy ARP en el router vuelve a funcionar el ping.

Checkpoint
Muestren al profesor de prácticas la configuración y esos paquetes con tcpdump. Expliquen lo que está sucediendo en cada situación de las mencionadas.

6.- Trabajo opcional: Direcciones secundarias

Supongamos la topología de la figura 3. En este caso empleamos un solo interfaz del router, por ejemplo éste podría tener en verdad una sola tarjeta de red. Además supongamos que las direcciones de los dos PCs pertenecen a redes diferentes, por ejemplo emplee las dos subredes dentro de 10.0.grupo.0/24 con las que ha estado trabajando hasta ahora y configure así los hosts. Dado que cada uno pertenece a una red no saben cómo llegar al otro. Lo que vamos a hacer es configurarles a ambos el interfaz del router como router por defecto. Sin embargo la dirección IP del interfaz del router debe pertenecer a la misma red que el interfaz del host y si ambos PCs están en diferentes redes eso significa que ¡el interfaz del router debería tener dos direcciones IP diferentes a la vez! Bien, pues esto es posible. Busquen cómo configurarle al interfaz del router una segunda dirección IP, lo que se llama una dirección IP secundaria de forma que tenga una dirección en cada una de las redes (se configura de forma muy parecida a cómo se configura la dirección primaria del interfaz). Con esta configuración, ¿qué camino siguen los paquetes de un PC al otro? ¿Cómo es la tabla de rutas del router?

Figura 3.- 1 router con un solo interfaz para 2 redes

Imaginemos que no tenemos el router (desconéctenlo) pero aún así ambos PCs están configurados con direcciones en redes diferentes. Sin cambiar la configuración de los interfaces de red, ¿qué rutas introducirían en las tablas de rutas de los hosts para que sepan enviarse paquetes IP del uno al otro?

En los PCs con Linux también podemos configurar más de una dirección IP a cada interfaz. Si existe el interfaz eth0 en realidad también existen los interfaces eth0:0, eth0:1, eth0:2 ... que hacen referencia a la misma tarjeta Ethernet. Configuren los dos PCs para que pertenezcan a ambas redes (teniendo 2 IPs cada uno).

Expliquen y muestren al profesor de prácticas cómo han hecho todo esto y pueden obtener un checkpoint extra.

8.- Conclusiones

Hemos visto cómo configurar IP sobre los interfaces Ethernet de los routers Cisco y cómo crear una topología muy sencilla. Hemos introducido rutas por defecto y también hemos visto Proxy ARP en funcionamiendo con routers Cisco. En las próximas prácticas veremos cómo configurar también el interfaz serie de los router y crearemos topologías más complejas.


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