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 4 - PC como router IP

1. Objetivos

En esta práctica vamos a ver cómo emplear PCs con Linux que realicen las funciones de routers IP. Veremos la diferencia en la configuración respecto a un router 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 el 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.

4. Haciendo que un PC haga de router

Vamos a emplear el PC C como router. Nuestro primer objetivo es crear una topología como la de la figura siguiente. Una de las que ya creamos empleando un router Cisco.

Figura 1.- Router conectado a dos redes

Para ello, igual que en la práctica anterior:

  • Dividan su espacio de direcciones (10.3.armario.0/24) en al menos dos bloques que no se solapen
  • Configuren las IPs de los dos primeros interfaces ethernet del PC C para que cada uno esté en una de esas redes
  • Configuren un interfaz de PC A para que tenga dirección IP de la Red A y un interfaz del PC B para que la tenga de la Red B
  • Conecten el interfaz del PC C con IP en la Red A en un conmutador (switch0 funciona como 3 conmutadores independientes) y ahí también el PC A
  • Conecten el otro interfaz del PC C en otro conmutador
  • Conecten ahí el PC B
  • Configuren la ruta por defecto de cada PC para que cada uno la tenga haciendo referencia al interfaz del PC C conectado en su misma red
  • Prueben a hacer ping desde el PC C a PC A y PC B
  • Prueben a hacer ping desde PC A a PC C y desde PC B a PC C
  • Prueben a hacer ping desde PC A a PC B. ¿Qué sucede?
  • Empleen ethereal para averiguar qué es lo que está fallando

    El PC C tiene ahora dos interfaces IP en funcionamiento. Tal y como está, se dice que este PC está multihomed porque tiene interfaces en redes diferentes. Ahora mismo, si recibe por uno de sus interfaces un paquete que se dirige a una IP destino que no es ninguna de las suyas lo descarta. Para que funcione como un router tenemos que convencerle de que cuando reciba un paquete con esas características no lo tire sino que lo reenvíe aplicando las reglas que tiene en su tabla de rutas. Esta funcionalidad es lo que se conoce como IP forwarding o reenvío de paquetes IP. Si el kernel tiene compilada esta funcionalidad (y en nuestro caso la tiene) podemos activarla sin más que escribir un 1 en el fichero /proc/sys/net/ipv4/ip_forward (recuerde que los ficheros en /proc en realidad hacen referencias a variables dentro del kernel), o equivalentemente empleando el comando sysctl para modificar esa variable del kernel.

    Ambas acciones requieren privilegios de superusuario. Para resolver el problemas se les ha dejado un programa muy simple que tan solo ejecuta un comando sysctl para activar o desactivar el forwarding según se le indique.

    Para activarlo:

    [1]% sudo forwarding si
    

    Para desactivarlo:

    [2]% sudo forwarding no
    

    Y pueden ver el comando que se está ejecutando.

    Con solo hacer activar el forwarding el PC empezará a reenviar paquetes. También se podría activar esta funcionalidad para que reenviara paquetes solo entre ciertos interfaces, lo cual sería útil si tuviéramos más de dos y no quisiéramos que reenviará entre todos ellos (ficheros /proc/sys/net/ipv4/conf/*/forwarding).

    Y ya está. El PC ya se comporta como un router. Si activáramos más interfaces (Ethernet, PPP, WLAN, etc) podría reenviar tráfico entre todos ellos. De hecho esta es una solución bastante barata para tener un router. Coloque ahora un ethereal o tcpdump en el servidor y observe que sí reenvía los paquetes ICMP.

    Una vez que el PC funciona como un router debemos mirar con más cuidado el contenido de su tabla de rutas dado que ahora no solo la empleará para todos los paquetes que él quiera enviar sino también para todos los que decida reenviar.

    Checkpoint 1
    Muestre al responsable de prácticas que les funciona el ping entre los PCs

    5. Topología con dos routers, mezclando Cisco y Linux

    A continuación vamos a crear la topología que se ve en la siguiente figura:

    Figura 2.- 2 routers conectando 4 redes

    Para ello emplearemos el router Cisco router2 PC C como router. Además emplearemos PC B conectándolo en dos redes diferentes.

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

    6. Conectando el router al laboratorio

    A continuación conectaremos una de nuestras pequeñas redes al laboratorio a través de uno de nuestros routers. Nuestra topología objetivo es la que se muestra en la siguiente figura (contando con los diferentes armarios).

    Figura 3.- Router a la red del laboratorio

    En primer lugar realizarán esta configuración empleando el PC C como su router y seguidamente el router1. Cada grupo de prácticas va a emplear en este apartado la red 10.3.32+armario.0/24

    Se ha definido una red en la cual estarán conectados todos los routers de los armarios empleados en esta práctica así como el router de acceso. Esta red es la 10.3.16.0/20

    Tengan preparada la configuración tanto con el router Cisco como con el router Linux de forma que solo haga falta cambiar uno por el otro en el panel de parcheo.

    Checkpoint 3
    Muestren al profesor de prácticas ambas configuraciones

    7. Conclusiones

    En esta prática hemos visto cómo crear un router IP empleando un PC con Linux y lo hemos combinado con routers Cisco, viendo con ello la interoperatividad de ambos y lo sencillo que es crear un router IP con equipamiento de bajo coste (PCs).


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