NanoPI R2S: OpenWRT/FriendlyWRT Acceso remoto a la red de la máquina usando conexión a Internet vía otra red

Fecha publicación
Dificultad
Avanzado
#
1
3 more properties
Publicado
tags
i40sys, industry 4.0, industry40.systems, nanopi, r2s, openwrt, friendlywrt, zerotier, vpn, industrial, remote access, acceso remoto, plc, siemens, omron

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:
YAML
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/24

Tabla 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:
Plain Text
opkg remove --force-removal-of-dependent-packages docker-ce

Instalar Zerotier

Podemos hacer este proceso desde dos sitios:

Configuración de Zerotier

Esto se debe hacer desde línea de comandos.
Fichero de configuración: /etc/config/zerotier
YAML
config zerotier 'i40sysManteniment'
        option enabled '1'
        list join 'abfd31bd477449b6'
        option secret ''
Creamos fichero /opt/network/zerotier_boot.sh
YAML
#!/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 ACCEPT
Le damos permisos de ejecución al script anterior:
JSON
chmod 755 /opt/network/zerotier_boot.sh
Añadir a /etc/rc.local esta linea al final:
JSON
/opt/network/zerotier_boot.sh > /var/log/zerotier_boot.log 2>&1
Una 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

Copias de seguridad

Configuraciones del equipo

Plain Text
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:
JSON
sysupgrade -r /tmp/backup-*.tar.gz

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:
JSON
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