/
NanoPI R2S: OpenWRT/FriendlyWRT Acceso remoto a la red de la máquina usando conexión a Internet vía otra red
Search
Duplicate
Try Notion Free
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
December 25, 2020
Dificultad
Avanzado
4 more properties
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/24
YAML
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:
⚠️
Hemos desinstalado docker para evitar las interfaces propias de ese, así queda una configuración más limpia y no queríamos usar docker.
para eliminar el paquete desde linia de comandos:
opkg remove --force-removal-of-dependent-packages docker-ce
Plain Text
Instalar Zerotier
Podemos hacer este proceso desde dos sitios:
Copia del paquete IPK:
zerotier_1.4.6-1_aarch64_cortex-a53.ipk
384.2KB
💻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
Bash
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 ''
Bash
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 ACCEPT
JSON
Le damos permisos de ejecución al script anterior:
chmod 755 /opt/network/zerotier_boot.sh
JSON
Añadir a /etc/rc.local esta linea al final:
/opt/network/zerotier_boot.sh > /var/log/zerotier_boot.log 2>&1
JSON
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.
En el menú de la WUI vamos a Network > Firewall
Borramos todo lo que hay por defecto en todos las pestañas, así es como queda:
General settings:
Port Forwards:
Traffic Rules:
NAT Rules:
Custom Rules:
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.
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.
ℹ️
Esta captura de pantalla no tiene marcada la casilla "force link" que si debería estar marcada.
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.
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)
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.
Copias de seguridad
Configuraciones del equipo
umask go= sysupgrade -b /tmp/backup-${HOSTNAME}-$(date +%F).tar.gz
Plain Text
→ obviamente hay que llevarse el fitchero /tmp/backup-*.tar.gz a otra máquina
Restaurar configuración del equipo
ℹ️
Una vez copiado el fichero backup-*.tar.gz en /tmp
Ejecutamos:
sysupgrade -r /tmp/backup-*.tar.gz
JSON
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
ℹ️
br0: es la red de máquina y debemos ajustar nuestra IP estática en esa red
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
JSON
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