Configuración Border Router en FIF IOT LAB - BMDaniell/router_borde_FIF_IOTLAB GitHub Wiki
Emulación y configuración de Border Router usando nodos OpenMote-b en el sitio de pruebas Strasbourg del laboratorio FIF IOT-LAB
Hardware components
- Laptop
Software OSs, Apps and online services
- Maquina Virtual Linux
- FIT IOT-LAB
Mi nombre es Daniel Benavides estudiante de la carrera de Ingenieria en Telecomunicaciones de la Universidad Técnica del Norte. En esta ocasión se dará a conocer un proyecto realizado para la asignatura de Internet de las Cosas . El objetivo del mismo es visualizar la emulación de una pequeña red de sensores a fin de comprender su funcionamiento y aplicación, en esta ocasión con la ayuda del laboratorio virtual FIF IOT-LAB el cual brinda una alternativa para lograr acceder a las
configuraciones de hardware reales y lograr visualizar su funcionamiento. En la topología se plantea tres nodos de los cuales uno tomara el papel de Router de Borde y dos restantes de nodos clientes, el router de borde asignara mediante DHCP un direccionamiento a cada nodo cliente a fin de facilitar la comunicación entre estos. El hardware usado será OpenMote-b con el sistema operativo RIOT OS. A continuación se mostrara paso a paso cada una de las configuraciones y la verificación de conexión final.
Conexión y Habilitación SSH desde la maquina virtual Debian hacia las opciones de prueba Strasbourg.
En primera instancia es necesario contar con una cuenta en un laboratorio de virtualización para el presente se ha optado por la opción de FIF IOT-LAB.
Una vez creada la cuenta se procede a generar las llaves SSH desde la terminal de comandos de la maquina Linux seleccionada en este caso (Debian). Enlace
Lo primero es actualizar los paquetes de sistema Linux (Debian).
you@yourpc:~$ sudo apt-get update
Una vez cargados los paquetes del sistema operativo se procede a generar las llaves publica y privada para la conexión SSH. Posterior a la creación de las llaves se procede a copiar la llave pública en el apartado SSH Keys del FIF IOT-LAB, finalizado este proceso se valida la conexión SSH en la maquina virtual con dirección al sitio de pruebas de Strasbourg.
you@yourpc:~$ ssh-keygen -t rsa
you@yourpc:~$ ls ~/.ssh/
you@yourpc:~$ cat ~/.ssh/id_rsa.pub
Una vez generada y cargada la llave es posible establecer la conexión entre la maquina virtual y el banco de pruebas Strasbourg en FIF-IOTLAB con la ayuda del siguiente comando:
you@yourpc:~$ ssh <login>@strasbourg.iot-lab.info # replace <login> by your iot-lab login
Una vez establecida la conexión se procede a realizar la configuración dentro del entorno remoto, para lo cual se clona el repositorio de iot-lab , dentro del cual se encuentran varios ejemplos ya establecidos y que pueden ser ejecutados en el hardware del laboratorio, y los que nos ayudaran desarrollar el laboratorio.
<login>@<site>~$ git clone https://github.com/iot-lab/iot-lab.git
<login>@<site>~$ cd iot-lab
<login>@<site>:~/iot-lab$ make
En este caso se hará uso del hardware mencionado anteriormente el OpenMote-b que se encuentra dentro de FIF IOT-LAB, el cual cumple con el estándar IEEE 802.15.4 que se esta analizando, adicional se hará uso del sistema operativo Riot OS para la compilación y que es compatible con el hardware elegido, para lo cual digitamos los siguientes comandos:
<login>@<site>~$ cd parts/RIOT/examples
<login>@<site>~$ ls
Para el border router procederemos a buscar el ejemplo gnrc_border_router
, procediendo a cargarlo y compilarlo en la placa openmote-b especificando las características de compilación: velocidad de símbolos y canal en el que trabajará.
<login>@<site>~$ cd parts/RIOT/examples/gnrc_border_router
<login>@<site>~$ source /opt/riot.source
<login>@<site>~$ make ETHOS_BAUDRATE=115200 DEFAULT_CHANNEL=21
BOARD=openmote-b clean all
Una vez que el ejemplo ha sido compilado, se crea el archivo de extensión .elf, el mismo que es el firmware que se debe cargar en el nodo del laboratorio, por lo cual es necesario descargar este archivo en nuestro almacenamiento local, debido a que se encuentra en el almacenamiento remoto. Así, en este espacio se desarrolla dos opciones con las cuales puede descargar el firmware creado.
Para lo cual se hace uso del comando scp
con el cual se puede copiar archivos o directorios entre sistema local y un sistema remoto, y entre dos sistemas remotos.
you@yourpc:~$ scp [email protected]:/senslab/users/dbenavid/iot-lab/parts/RIOT/examples/gnrc_border_router/bin/openmote-b/gnrc_border_router.elf /home/daniel/Documentos/iot_prueba/gnrc_border_router.elf
Ya que para el experimento se cuenta con dos nodos que actuarán como clientes, es necesario compilar el firmware que se cargará en ellos. Así para esta ocasión haremos uso del ejemplo gnrc_networking
.
Como primer paso es necesario dirigirnos al directorio que contiene el ejemplo de la misma forma como se lo realizo para el firmware para el Border Router sin embargo en esta ocasión se seleccionara un ejemplo diferente.Lo que se mantendrá es la configuración del canal 21 igual que en el del de Router.
<login>@<site>~$ cd iot-lab/parts/RIOT/examples/gnrc_networking
<login>@<site>~$ source /opt/riot.source
<login>@<site>~$ make DEFAULT_CHANNEL=21 BOARD=openmote-b clean all
<login>@<site>~$ scp [email protected]:/senslab/users/dbenavid/iot-lab/parts/RIOT/examples/gnrc_networking/bin/openmote-b/gnrc_networking.elf /home/daniel/Documentos/iot_prueba/gnrc_networking.elf
Una vez creados los firmware tanto del Border Router como de los nodos clientes se procede a crear el laboratorio y cargarlos en los nodos creados en este.
Una vez realizadas las configuraciones y creación de los archivos firmware se procede con la creación del experimento, para ello desde el portal principal seleccionamos "Nuevo experimento", luego ubicamos el nombre y tiempo de ejecución, más adelante seleccionamos los nodos, asegurándonos que sean el hardware OpenMote-b y que se encuentren en el banco de pruebas de Strasbourg, además, se sugiere se seleccionar nodos que se encuentren libres (alive), finalmente, en visualización de experimento, identificamos el número del nodo que asignaremos como router de borde, en este caso asignaremos al nodo openmoteb-5.
Para que el border router propague el prefijo y direccionamiento IPv6 asignado, es necesario una configuración, para ello nos ubicamos en el directorio donde se encuentra el ejemplo y usamos el comando ethos_uhcpd.py para propagar el direccionamiento. Una vez que ejecute el comando, se aconseja no cerrar el terminal donde lo desarrollo, y tampoco debe cortar este proceso, de modo que para configuraciones siguientes deberá usar otro terminal y realizar el ingreso por ssh otra vez. En el comando, al ingresar el apartado de openmoteb-5 debe ubicar el número de su nodo en la simulación. Además, en caso de que no funcione el comando, puede cambiar el puerto tap0, puede ir variando tap1, tap2, tap3, sucesivamente.
<login>@<site>~$ cd iot-lab/parts/RIOT/examples/gnrc_border_router
<login>@<site>~$ sudo ethos_uhcpd.py openmoteb-5 tap0 2a07:2e40:fffe:00ff::/64
Una vez creados los firmware y configurada la red, se procede a cargar cada firmware en el nodo elegido para el Border Router y los nodos clientes como corresponde
-
Router de Borde
-
Nodos cliente Para los dos nodos de la topología, usaremos el mismo firmware, es decir el mismo archivo .elf ejecutado del ejemplo
gnrc_networking
.
Una vez cargado todos los elementos y el laboratorio en marcha procedemos hacer clic en el icono de play de cada uno de los nodos, posterior a esto se abre el terminal de los nodos clientes y procedemos a reset para lograr utilizarlos.
Para validar las configuraciones y el direccionamiento IPv6 se usa el comando ifconfig 7
en cada una de las terminales cliente.
Para finalizar usamos el comando ping6 dirección ip del otro nodo
%7 y verificamos que exista una conexión correcta mediante la visualización de envió de datos.
ifconfig 7
ping6 2a07:2e40:fffe:ff:aca8d:fee1:60ee:d2dc%7