<%include ../../partials/head%>
<%include ../../partials/header%>
howto

Practicas en cluster Raspberry Pi

1- Enrutamiento estatico con API REST

El objetivo de esta practica consiste en crear una topologia serial de 3 switches y 3 host, como se muestra en la siguiente imagen. Asi, solo se permite conectividad entre las redes de h1 - h2 y h3-h2, pero no h1-h3.

 

Para esto, mediante la pagina web cree la topologia, inicie el controlador con la aplicacion REST Router , confirme que en el controlador se muestra que los switches fueron reconocidos y proceda a configurar las direcciones IP de los hosts.

Configuracion de direcciones IP a los hosts virtuales

Para configurar estas direcciones IP, utilice los comandos h[x] ip addr del 10.0.0.[x]/8 dev h[x]-eth0 para eliminar la IP por defecto, siendo [x] el host deseado, y asimismo con el comando ip addr add configure las demas direcciones. Asi mismo, configure los gateway necesarios con el comando ip route add default via [direccion_ip_gateway].

Entendemos que este proceso puede ser algo tedioso, por lo cual hemos creado un script, el cual se encuentra en la carpeta scripts de la Raspberry principal. Para ejecutarlo, simplemente ejecutelo con ./hostadress.sh.

Compruebe mediante la web que se realizaron las configuraciones con el comando h[x] ifconfig h[x]-eth0

Programar el controlador para que los switches conozcan las redes

Par este paso, necesita hacer uso del API REST de la aplicacion de RYU.

Entendemos que esto puede ser un poco tedioso, por lo cual hemos creado un script que se encuentra en la carpeta scripts que realiza estas configuraciones de manera automatica, solo ejecutandolo con ./routerflows.sh. Mas abajo se muestra un fragmento del script, para que se entienda que es lo que esta ocurriendo.

Una vez ejecutado, mediante la pagina web, compruebe que cada switch tiene seteado sus flow entrys correctamente en el apartado flow tables.

Compruebe que existe conectividad entre h1 y h2 ejecutando el comando h1 ping -c 4 h2. Para ver el camino recorrido, ejecute h1 traceroute h2.

Si desea eliminar todos los flowentry de los switches, y simplemente dejarlos con su flow por defecto, en la pagina web presione el boton Reset flows del apartado Flow Tables.

2- Creando un micro web server

El objetivo de esta practica es la de comprobar conectividad entre dos host virtuales, por ejemplo h1 y h2.

Preparando archivos

Para poder hacer una pequna web que podamos navegar vamos a hacer lo siguiente: Necesitamos crear un archivo, el cual sera un script en bash con lo que deseamos ver en el cliente. Para crear esto en un host especifico, escribimos h[x] echo "[pegar texto de abajo]" > test.sh , donde x es el id del host deseado.

Iniciando el servidor

En el host que funcionara como servidor corremos el comando h[x] while true; do { echo -e 'HTTP/1.1 200 OK\r\n'; sh test.sh; } | nc -l 1234 -q 1; done &, donde x es el id del host deseado.

Accediendo al servidor

En cualquier otro host que tenga conectividad con el server solo tienes que realizar h[x] curl -X GET http://_ipdelserver_:124 , siendo x el id de cualquier host. Asi podras ver tu web servida En caso de acceder desde una consola se puede instalar el software w3m y con este navegador par aconsola acceder a la web.