Autor Tema: ZeroTier en OpenWrt (VPN + SD-WAN)  (Leído 3409 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado raphik

  • ****
  • Mensajes: 89
Re: ZeroTier en OpenWrt (VPN + SD-WAN)
« Respuesta #20 en: 23-04-2021, 18:37 (Viernes) »
Punto de acceso a la red privada virtual (layer 2 bridging)


El router OpenWrt asigna a sus hosts IPs dentro del rango VPN. Los hosts no necesitan que se les instale ZeroTier para navegar por la VPN. Al tener una IP VPN, son direccionables: responden al ping, reaccionan al arranque en remoto (Wake on Lan), son manejables desde escritorio remoto...


0) Planteamiento

Router proveedor de Intenet
WAN IP: 192.168.1.1

Router OpenWrt (routed AP)
WAN IP: 192.168.1.x (la que le asigne el servidor DHCP)
LAN/VPN IP: 192.168.100.4 (IP estática)
Puerta de enlace: 192.168.1.1 (WAN)
Servidor DNS: 1.1.1.1, 1.0.0.1


SWITCH
Bocas 1, 2 y 3 : LAN
Boca 4: WAN

Red ZeroTier (VPN)
Rango: 192.168.100.0/24 (Asignado por el usuario al registrar la red.)
Network ID: ID_DE_RED (El Network ID es un número hexadecimal único de 16 dígitos generado automáticamente por la capa VL2 de ZeroTier.)


1) Configurar el router OpenWrt

Conectar el PC al zócalo LAN1 del router OpenWrt e iniciar sesión ssh root@192.168.1.1 (PuTTY, en Windows)

Configurar la interfaz LAN
Código: [Seleccionar]
uci set dhcp.lan.ra_management='1'
uci del network.lan.ip6assign
uci set network.lan.ipaddr='192.168.1.4'
uci add_list network.lan.dns='1.1.1.1'
uci add_list network.lan.dns='1.0.0.1'
LuCI: https://i.imgur.com/SKcLLRS.png

Configurar el SWITCH (conectores LAN1 a LAN4)
Código: [Seleccionar]
puertoCPU=$(uci get network.@switch_vlan[0].ports | awk '{print $5}')
uci set network.@switch_vlan[0].ports='0 1 2 '$puertoCPU
uci add network switch_vlan
uci set network.@switch_vlan[-1].device='switch0'
uci set network.@switch_vlan[-1].vlan='2'
uci set network.@switch_vlan[-1].ports='3 '$puertoCPU


Configurar la interfaz WAN
Código: [Seleccionar]
uci set network.wan=interface
uci set network.wan.ifname='eth0.2'
uci set network.wan.proto='dhcp'


Aplicar cambios y reiniciar
Código: [Seleccionar]
uci commit
reboot

Conectar un cable ethernet entre el router ISP y el zócalo LAN4 del router OpenWrt.


2) Instalar y configurar ZeroTier

Tras el reinicio, el PC habrá perdido la conexión con el router, que ahora tiene una nueva IP: 192.168.100.4. Para que el PC retome una IP dentro del nuevo rango, suele bastar con desconectar y volver a conectar el latiguillo ethernet que lo une al router.

Abrir una nueva sesión ssh root@192.168.100.4 (PuTTY, en Windows)

Actualizar lista de paquetes e instalar ZeroTier One
Código: [Seleccionar]
opkg update
opkg install zerotier

Configurar ZeroTier. Sustituir 'ID_DE_RED' por la Network ID de la red ZeroTier.
Código: [Seleccionar]
rm /etc/config/zerotier
touch /etc/config/zerotier
uci set zerotier.openwrt_network=zerotier
uci add_list zerotier.openwrt_network.join='ID_DE_RED'
uci set zerotier.openwrt_network.enabled='1'
uci commit zerotier
/etc/init.d/zerotier restart
/etc/init.d/firewall restart


Si la instalación de ZeroTier ha ido bien, se habrá generado un nuevo dispositivo ethernet virtual "ztxxxxxxxx".
Código: [Seleccionar]
ifconfig | grep zt
ztxxxxxxxx Link encap:Ethernet  HWaddr 0E:F4:4C:xx:xx:xx

Además, se puede verificar que ZeroTier está ONLINE.
Código: [Seleccionar]
zerotier-cli info
200 info 79aa2xxxxx 1.6.4 ONLINE
(El número hexadecimal "79aa2xxxxx" es el identificador de nodo generado por la capa VL1 de ZeroTier.)

Opcionalmente, se puede mejorar el rendimiento permitiendo las conexiones UDP entrantes por el puerto 9993.

Reiniciar el router. Algunas veces no es necesario.

Código: [Seleccionar]
reboot

Definir una interfaz para el dispositivo virtual ztxxxxxxxx
Código: [Seleccionar]
uci set network.ZeroTier=interface
uci set network.ZeroTier.ifname=$(ifconfig | grep zt | awk '{print $1}')
uci set network.ZeroTier.proto='none'


Puentear la interfaz LAN con la interfaz ZeroTier
Código: [Seleccionar]
uci set network.lan.ifname="$(uci get network.lan.ifname) $(uci get network.ZeroTier.ifname)"
Aplicar los cambios y reiniciar
Código: [Seleccionar]
uci commit network
uci commit firewall
reboot


3) Autorizar al router OpenWrt a unirse a la red ZeroTier

En ZeroTier Central (https://my.zerotier.com), buscar el router (el identificador de nodo y la MAC ayudan) y marcar la casilla "Auth?". Cambiar la IP asignada automáticamente por la IP fija 192.168.100.3. Si se quiere, se le puede poner un nombre. Marcar la casilla "Allow Ethernet Bridging" (para verla, hacer clic en el icono 🔧)




4) Esperar unos minutos a que se establezca la red ZeroTier.

El router está conectado a la red ZeroTier con su propia IP (192.168.100.4). Además, reparte IPs VPN entre sus hosts, que pueden navegar por la red virtual. Los hosts, al tener una IP propia en la VPN, son miembros "de pleno derecho" de la VPN. Responden a los pings recibidos, reaccionan al recibir paquetes mágicos "wake-on-lan" y es posible acceder a ellos mediante escritorio remoto.


« Última modificación: 24-04-2021, 12:45 (Sábado) por raphik »
"Hay dos formas de diseñar software: la primera es hacerlo tan simple que sea obvio que no tiene deficiencias y la segunda es hacerlo tan complicado que no sea obvio que tiene deficiencias. La primera forma es mucho más difícil." Tony Hoare.

Desconectado plumanegra

  • **
  • Mensajes: 6
Re: ZeroTier en OpenWrt (VPN + SD-WAN)
« Respuesta #21 en: 23-04-2021, 21:05 (Viernes) »
La IP inicial de un router OpenWrt recién flasheado es la 192.168.1.1. Al ponerle la 192.168.1.3. y reiniciar el router los cambios se llevan a cabo. En mi caso (un HG553 y Linux Mint) no tengo que hacer nada para que el PC refresque la conexión, pero no descarto que en otros casos haya que desconectar y volver a conectar físicamente el latiguillo de red entre el PC y el router.

Si, sin problema. De eso si tenía conocimiento y es verdad, para acelerar la reasignación es mejor desconectar y reconectar el cable.

Según la documentación de OpenWrt, hay dos maneras básicas de configurar un router como punto de acceso.
Bridged AP: https://openwrt.org/docs/guide-user/network/wifi/bridgedap
Routed AP: https://openwrt.org/docs/guide-user/network/wifi/routedap

Un router en modo "bridged" no hace funciones de router: no asigna IPs ni tiene hosts propios. El router funciona como un simple puente (bridge) entre los hosts y el router principal que es el que asigna las IPs y maneja el acceso a Internet de todos los hosts. Este modo me ha parecido perfecto para un router OpenWrt con rol de servidor dentro de la VPN.

Un router en modo "routed" hace funciones propias de router: asignación de IPs, manejo de hosts de su propia LAN y enrutado desde/hacia la WAN. Lo que lleva a confusión es el hecho de que las dos redes, la LAN y la WAN, sean 192.168.1.0/24. Tal vez si la LAN fuese 192.168.50.0/24 se entendería mejor. De cualquier forma, lo cierto es que hay dos redes distintas: la del router principal (WAN) y la del router OpenWrt (LAN). Este es el motivo por el que el switch está dividido en bocas LAN (de la 1 a la 3) y boca WAN (la 4). El modo "routed" es particularmente interesante porque mediante una capacidad llamada IP masquerade permite que sus hosts accedan a Internet (y a la VPN) sin tener una dirección oficial de Internet (ni de la VPN). El modo "bridged" no admite IP masquerade.

Te lo has currado. Ahora si que me cuadran algunas cosas. Muchisimas gracias por tu tan detallada explicación.

En la configuración Servidor (Bridged AP), la puerta de enlace está declarada: uci set network.lan.gateway='192.168.1.1'

En la configuración AP VPN (Masquerading), no hay necesidad de declarar la puerta de enlace. Por defecto, si no se declara, es la WAN. He seguido los pasos tal como está publicado y me funciona bien en un HG553. ¿En qué router lo estás instalando?

Lo hice en la segunda configuración, como VPN (Masquerading), pero al ver en un primer momento que no funcionaba esa boca porque algún paso no hice bien seguro me cargué (borré) la interface Wan y ya se lio un poco más todo. Volveré a probarlo. Pero yo al menos no le veo en mi caso particular, utilidad que haya definida una boca WAN y otras 3 para la LAN porque no nocesito que el OpenWrt haga nada de "routed", me basta con que haga de "bridged". Y además no lo tengo al principio de la instalación. No lo tengo conectado al router directamente sino a través de cable, pero a un punto de acceso.

Aquí me has pillado. No tengo receptor satélite y no sé que contestarte.

Actualmente intento centrarme en las distintas maneras de integrar un router OpenWrt en una VPN ZeroTier. El foro de ZeroTier no da soporte para OpenWrt, así que cualquier avance cuesta lo suyo. Todavía no he llegado al tema de las velocidades de transferencia, pero según los datos que aportó peperfus, me pareció muy baja (273 kb/s de subida y 367 kb/s de bajada). Las pruebas las hizo usando winscp y protocolo scp. Supongo que con Samba el rendimiento sería todavía peor.

Nada sin problema. Ya te digo que el teléfono se comunica con el receptor de satélite pero carece de velocidad suficiente y yo creo que debe ser cosa del propio ZeroTier, porque a mi también me ha sorprendido que a "peperfus" le diera tan poca velocidad en esa subida y bajada cuando lo leí. Creo que estamos en este sentido atados de pies y manos. Quizás esta VPN no de para más en cuanto a velocidad de transferencia. Es lo único que me queda por pensar.

Desconectado plumanegra

  • **
  • Mensajes: 6
Re: ZeroTier en OpenWrt (VPN + SD-WAN)
« Respuesta #22 en: 23-04-2021, 21:09 (Viernes) »
La IP inicial de un router OpenWrt recién flasheado es la 192.168.1.1. Al ponerle la 192.168.1.3. y reiniciar el router los cambios se llevan a cabo. En mi caso (un HG553 y Linux Mint) no tengo que hacer nada para que el PC refresque la conexión, pero no descarto que en otros casos haya que desconectar y volver a conectar físicamente el latiguillo de red entre el PC y el router.

Si, sin problema. De eso si tenía conocimiento y es verdad, para acelerar la reasignación es mejor desconectar y reconectar el cable.

Según la documentación de OpenWrt, hay dos maneras básicas de configurar un router como punto de acceso.
Bridged AP: https://openwrt.org/docs/guide-user/network/wifi/bridgedap
Routed AP: https://openwrt.org/docs/guide-user/network/wifi/routedap

Un router en modo "bridged" no hace funciones de router: no asigna IPs ni tiene hosts propios. El router funciona como un simple puente (bridge) entre los hosts y el router principal que es el que asigna las IPs y maneja el acceso a Internet de todos los hosts. Este modo me ha parecido perfecto para un router OpenWrt con rol de servidor dentro de la VPN.

Un router en modo "routed" hace funciones propias de router: asignación de IPs, manejo de hosts de su propia LAN y enrutado desde/hacia la WAN. Lo que lleva a confusión es el hecho de que las dos redes, la LAN y la WAN, sean 192.168.1.0/24. Tal vez si la LAN fuese 192.168.50.0/24 se entendería mejor. De cualquier forma, lo cierto es que hay dos redes distintas: la del router principal (WAN) y la del router OpenWrt (LAN). Este es el motivo por el que el switch está dividido en bocas LAN (de la 1 a la 3) y boca WAN (la 4). El modo "routed" es particularmente interesante porque mediante una capacidad llamada IP masquerade permite que sus hosts accedan a Internet (y a la VPN) sin tener una dirección oficial de Internet (ni de la VPN). El modo "bridged" no admite IP masquerade.

Te lo has currado. Ahora si que me cuadran algunas cosas. Muchisimas gracias por tu tan detallada explicación.

En la configuración Servidor (Bridged AP), la puerta de enlace está declarada: uci set network.lan.gateway='192.168.1.1'

En la configuración AP VPN (Masquerading), no hay necesidad de declarar la puerta de enlace. Por defecto, si no se declara, es la WAN. He seguido los pasos tal como está publicado y me funciona bien en un HG553. ¿En qué router lo estás instalando?

Lo hice en la segunda configuración, como VPN (Masquerading), pero al ver en un primer momento que no funcionaba esa boca porque algún paso no hice bien seguro me cargué (borré) la interface Wan y ya se lio un poco más todo. Volveré a probarlo. Pero yo al menos no le veo en mi caso particular, utilidad que haya definida una boca WAN y otras 3 para la LAN porque no nocesito que el OpenWrt haga nada de "routed", me basta con que haga de "bridged". Y además no lo tengo al principio de la instalación. No lo tengo conectado al router directamente sino a través de cable, pero a un punto de acceso.

Aquí me has pillado. No tengo receptor satélite y no sé que contestarte.

Actualmente intento centrarme en las distintas maneras de integrar un router OpenWrt en una VPN ZeroTier. El foro de ZeroTier no da soporte para OpenWrt, así que cualquier avance cuesta lo suyo. Todavía no he llegado al tema de las velocidades de transferencia, pero según los datos que aportó peperfus, me pareció muy baja (273 kb/s de subida y 367 kb/s de bajada). Las pruebas las hizo usando winscp y protocolo scp. Supongo que con Samba el rendimiento sería todavía peor.

Nada sin problema. Ya te digo que el teléfono se comunica con el receptor de satélite pero carece de velocidad suficiente y yo creo que debe ser cosa del propio ZeroTier, porque a mi también me ha sorprendido que a "peperfus" le diera tan poca velocidad en esa subida y bajada cuando lo leí. Creo que estamos en este sentido atados de pies y manos. Quizás esta VPN no de para más en cuanto a velocidad de transferencia. Es lo único que me queda por pensar.

Se me olvidaba decirte que he estado viendo el manual que has publicado sobre esto y es a grandes rasgos lo que yo tengo hecho. Lo que si veo es que ya os omitido la parte de zonas de firewall. Supongo que no haran falta, pero cuando yo lo he probado no me daba buena conexión entre conexión externa y los hots de la red. Volveré a revisar todo. A ver si lo dejo ya todo bien configurado.

Gracias por la divulgación de tus conocimientos sobre todo esto, raphik. Todo muy compresible y explícito.

Desconectado raphik

  • ****
  • Mensajes: 89
Re: ZeroTier en OpenWrt (VPN + SD-WAN)
« Respuesta #23 en: 23-04-2021, 21:37 (Viernes) »
@plumanegra
Efectivamente, en esta tercera aplicación (punto de acceso mediante puente en la capa de nivel 2) no se hace nada en el cortafuegos. Los paquetes no se enrutan a través del cortafuegos, sino que circulan por un puente entre las interfaces LAN (eth0.1) y ZeroTier (ztxxxxxxxx).
FUENTE: https://zerotier.atlassian.net/wiki/spaces/SD/pages/7438339/Layer+2+Bridging+with+LEDE+OpenWRT. La clave está donde pone On the Physical Settings tab, ensure zt0 is checked in the interface list.



Su equivalente con UCI es
Código: [Seleccionar]
uci set network.lan.ifname="$(uci get network.lan.ifname) $(uci get network.ZeroTier.ifname)"
« Última modificación: 24-04-2021, 10:09 (Sábado) por raphik »
"Hay dos formas de diseñar software: la primera es hacerlo tan simple que sea obvio que no tiene deficiencias y la segunda es hacerlo tan complicado que no sea obvio que tiene deficiencias. La primera forma es mucho más difícil." Tony Hoare.

Desconectado plumanegra

  • **
  • Mensajes: 6
Re: ZeroTier en OpenWrt (VPN + SD-WAN)
« Respuesta #24 en: 03-05-2021, 21:52 (Lunes) »
He actualizado a la versión 1.6.5 pensando que iba a mejorar algo y vamos a peor. Ahora no conecta. Mejor dicho conecta pero al poco tiempo la conexión cae. Por PuTTy me está indicando por este orden:

200 info fb45xxxxxx 1.6.5 ONLINE

200 info fb45xxxxxx 1.6.5 TUNNELED

200 info fb45xxxxxx 1.6.5 OFFLINE

Hay reporte de este problema en otras versiones de ZeroTier pero no veo solución alguna. He reinstalado todo desde cero, por si las moscas, pero no soluciona nada.

Asi que he vuelto a la 1.6.4. que he encontrado en el repositorio de OpenWrt y también he tenido que descargar algunas dependencias porque de por si no se instalaba.
« Última modificación: 03-05-2021, 22:31 (Lunes) por plumanegra »

Desconectado raphik

  • ****
  • Mensajes: 89
Re: ZeroTier en OpenWrt (VPN + SD-WAN)
« Respuesta #25 en: 05-05-2021, 21:22 (Miércoles) »
@plumanegra

Acabo de instalar una imagen estable recién descargada en un HG556a ver.C y parece que va bien.
"Hay dos formas de diseñar software: la primera es hacerlo tan simple que sea obvio que no tiene deficiencias y la segunda es hacerlo tan complicado que no sea obvio que tiene deficiencias. La primera forma es mucho más difícil." Tony Hoare.

Desconectado plumanegra

  • **
  • Mensajes: 6
Re: ZeroTier en OpenWrt (VPN + SD-WAN)
« Respuesta #26 en: 06-05-2021, 01:44 (Jueves) »
Caramba.

Yo lo probé en un Comtrend AR-5315u con OpenWrt 19.07.7 y no tiraba la cosa.

Lo hice 2 veces y en la página de ZeroTier Central podía ver como aparecía el dispositivo con la IP, autorizado y registrado y al poco tiempo desaparecía la IP pública y el dispositivo como desconectado.

Un misterio.

Con la 1.6.4-1 sin problemas.

Desconectado Tki2000

  • Moderador
  • *
  • Mensajes: 2181
Re: ZeroTier en OpenWrt (VPN + SD-WAN)
« Respuesta #27 en: 07-05-2021, 16:38 (Viernes) »
Hay un problema que están intentando solucionar desde hace varias versiones. Busca "zerotier network coma issue".
Parece que te puedes estar viendo afectado.
No habrás entendido algo, hasta que seas capaz de explicárselo a tu abuela...
Hacemos pantallas con píxeles casi invisibles, para luego ampliar la letra porque no la vemos... Bonita paradoja...
Creamos analfabetos tecnológicos con una velocidad pasmosa. Todo el mundo "maneja" tecnología, casi nadie sabe lo que tiene entre las manos, pero todo el mundo opina.
El analfabetismo, antes, pasaba desapercibido. Ahora, se transmite por Internet y las redes sociales.
Los dispositivos táctiles y las pantallas pequeñas son una lacra para la información relevante y el desarrollo de interfaces de usuario.
Trabajar sin la nube debería ser una prestación de los IoT, no un bug.