Para montar este escenario usaremos el NanoPI R2S, que se puede encontrar en Amazon, Aliexpress y muchos otros sitios online por un coste inferior a los 50€.

Escenario de ejemplo:
Suponemos que la empresa tiene una red con acceso a Internet y que nos asigna IP por DHCP. Colocaremos nuestro IoT GW con su interface WAN conectada a esta red y la interface LAN del IoT GW la conectaremos a la red donde tenemos el PLC que conecta al a máquina, típicamente al Switch IP de la máquina.
Configuración IP del IoT GW:
WAN: eth0
IP: DHCP Client
LAN: eth1
IP: unmanaged (sin configuración IP)
MANTENIMENT: ztc25el5hr
IP: unmanaged (sin configuración IP)
BRIDGE(BR0): br-br0
IP: 192.168.2.20/24Tabla de Contenidos
Firmware usado para R2S
FriendlyWRT 19.07.1
Configuración del IoT GW basado en WRT:
Docker
De serie incluye el servicio de Docker que nos crea interfaces de red, por este motivo:
para eliminar el paquete desde linia de comandos:
opkg remove --force-removal-of-dependent-packages docker-ceInstalar Zerotier
Podemos hacer este proceso desde dos sitios:
- Copia del paquete IPK:
- 💻Via linia de comandos
cd /tmp wget https://archive.openwrt.org/releases/19.07.2/packages/aarch64_cortex-a53/packages/zerotier_1.4.6-1_aarch64_cortex-a53.ipk opkg install zerotier_1.4.6-1_aarch64_cortex-a53.ipk
Configuración de Zerotier
Esto se debe hacer desde línea de comandos.
Fichero de configuración: /etc/config/zerotier
config zerotier 'i40sysManteniment'
option enabled '1'
list join 'abfd31bd477449b6'
option secret ''Creamos fichero /opt/network/zerotier_boot.sh
#!/bin/sh
/usr/bin/zerotier-cli set abfd31bd477449b6 allowDefault=0
/usr/bin/zerotier-cli set abfd31bd477449b6 allowManaged=0
echo "0" > /proc/sys/net/bridge/bridge-nf-call-iptables
iptables -A FORWARD -p all -i br-br0 -j ACCEPTLe damos permisos de ejecución al script anterior:
chmod 755 /opt/network/zerotier_boot.shAñadir a /etc/rc.local esta linea al final:
/opt/network/zerotier_boot.sh > /var/log/zerotier_boot.log 2>&1Una vez hechos los cambios debemos reiniciar para que tengan efecto.
Interface de gestión Zerotier

Configuracion interfaces de red
Primero nos centramos en desactivar el firewall para que nos bloqueé nada.
Segundo la configuración de las interfaces de red
Con la información que se muestra a continuación se observa como debe quedar todo después de la configuración
- Vamos a Network > Interfaces

- Lista de interfaces:

- Como vemos, tenemos la LAN configurada como unmanaged. Los detalles son los siguientes:
- Activamos la interface al iniciar el sistema:

- Forzamos que la interface quede activa a pesar de no tener cable de red conectado "force link"

- Nos aseguramos que la interface física seleccionada es la correcta, en principio no hace falta tocar nada.

- Firewall, como hemos borrado todo deberíamos dejarlo en unspecified.

- Activamos la interface al iniciar el sistema:
- La WAN obtendrá la IP via DHCP
- Por defecto la interface se activará y le informamos que la configuración IP se obtendrá con el DHCP client

- Es importante forzar que la interface siempre este activa a pesar de no tener cable de red. Por otro lado mencionar que aceptaremos la ruta por defecto y los servidores DNS recibidos por DHCP a fin de poder tener acceso a Internet según configuración del cliente.

- Relacionamos la interface "WAN" con la interface física "eth0". En teoría no se debería tocar nada aquí.

- Firewall, como hemos borrado todo deberíamos dejarlo en unspecified.

- Por defecto la interface se activará y le informamos que la configuración IP se obtendrá con el DHCP client
- La interface de bridge la llamaremos "BR0" y la configuraremos con IP estática.
- No olvidemos activarla por defecto al iniciar el sistema "Bring up on boot" y asignar los parámetros de la red IP de máquina

- También activaremos el forced link igual que en todas, en principio las demás opciones son correctas por defecto..

- En phisical Settings seleccionaremos Bridge interface, y el STP(spanning tree protocol) para evitar el loop de paquetes. En la parte interface deberíamos poner las interficies sobre las cuales hacemos el bridge. En nuestro caso la interface LAN (eth1) y la de Zerotier (zt...).

- Firewall, como hemos borrado todo deberíamos dejarlo en unspecified.

- En las interficies bridge tenemos tambien la opcion de DHCP server (lo dejamos deshabilitado)

- No olvidemos activarla por defecto al iniciar el sistema "Bring up on boot" y asignar los parámetros de la red IP de máquina
- La interface "MANTENIMENT" es la que usamos para referirnos a la red de Zerotier.
- No asignaremos ninguna IP en esta interface (unmanaged) por qué la tenemos en bridge con la red LAN y es en el bridge donde hemos asignado la IP. Es importante recordar a marcar que queremos que se inicie al iniciar el sistema.

- También activaremos el forced link igual que en todas.

- Relacionamos la interface "MANTENIMENT" con la interface de Zerotier "zt..."

- Firewall, como hemos borrado todo deberíamos dejarlo en unspecified.

- No asignaremos ninguna IP en esta interface (unmanaged) por qué la tenemos en bridge con la red LAN y es en el bridge donde hemos asignado la IP. Es importante recordar a marcar que queremos que se inicie al iniciar el sistema.
- Lista de interfaces:
Copias de seguridad
Configuraciones del equipo
umask go=
sysupgrade -b /tmp/backup-${HOSTNAME}-$(date +%F).tar.gz→ obviamente hay que llevarse el fitchero /tmp/backup-*.tar.gz a otra máquina
Restaurar configuración del equipo
Ejecutamos:
sysupgrade -r /tmp/backup-*.tar.gz- Los siguientes pasos serían instalar Zerotier y el script /opt/network/zerotier_boot.sh definido en su correspondiente sección.
Cambios a hacer para cada cliente
Cada vez que se conecte uno de estos equipos a un nuevo cliente deberemos ajustar las siguientes configuraciones:
1. Cambios de configuración en el IoT GW
Comandos a adaptar y ejecutar
Esto lo podemos hacer desde la WUI o vía comandos con:
uci set network.br0.netmask='255.255.255.0'
uci set network.br0.ipaddr='192.168.2.20'
uci commit
uci reboot
2. Cambios en la WUI de ZeroTier
Hay que hacer 2 cambios:
(1) Poner la IP y la mascara de red de la red del cliente
(2) Asegurarse que el rango de IPs auto-asignadas a los usuarios es del nuevo rango









