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

image


Hardware components

  • Laptop

Software OSs, Apps and online services

  • Maquina Virtual Linux
  • FIT IOT-LAB

Enlaces Útiles :

Visión General

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

image

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

image image image

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 image

Carga de elementos de iIOT-LAB banco de pruebas(Strasbourg)

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

image

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

image

Firmware para Border Router.

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

image

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.

image

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 image

Firmware para nodos clientes

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

image image

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. image

Experimento en FIT IOT-LAB

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. image image image image image

Configuración de red para el Border Router

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

image

Asignación y carga de firmware en nodos clientes y Router de Borde creados.

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 image

  • 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. 5

Verificación y Finalización del Experimento

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.

image

image

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

image

⚠️ **GitHub.com Fallback** ⚠️