Equipos y materiales > Openwrt & LEDE

ZeroTier en OpenWrt (VPN + SD-WAN)

<< < (5/8) > >>

raphik:
=========================== ADVERTENCIA DE RIESGO ===========================
Buena parte de la información que aparece en este artículo la he recopilado
de distintos sitios de Internet. A pesar de las minuciosas coprobaciones pre-
vias a su publicación, no puedo garantizar su veracidad, exactitud, actuali-
dad, fiabilidad e integridad. Por lo tanto, el presente artículo no debe ser
considerado como un consejo de uso. Usted es responsable de cualquier uso que
haga de la información aquí contenida.
=============================================================================


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: ---uci set dhcp.lan.ra_management='1'
uci del network.lan.ip6assign
uci set network.lan.ipaddr='192.168.100.4'
uci add_list network.lan.dns='1.1.1.1'
uci add_list network.lan.dns='1.0.0.1'
--- Fin del código ---
LuCI: https://i.imgur.com/SKcLLRS.png

Configurar el SWITCH (conectores LAN1 a LAN4)

--- Código: ---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
--- Fin del código ---

Configurar la interfaz WAN

--- Código: ---uci set network.wan=interface
uci set network.wan.ifname='eth0.2'
uci set network.wan.proto='dhcp'
--- Fin del código ---

Aplicar cambios y reiniciar

--- Código: ---uci commit
reboot
--- Fin del código ---

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: ---opkg update
opkg install zerotier
--- Fin del código ---

Configurar ZeroTier. Sustituir 'ID_DE_RED' por la Network ID de la red ZeroTier.

--- Código: ---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
--- Fin del código ---

Si la instalación de ZeroTier ha ido bien, se habrá generado un nuevo dispositivo ethernet virtual "ztxxxxxxxx".

--- Código: ---ifconfig | grep zt
ztxxxxxxxx Link encap:Ethernet  HWaddr 0E:F4:4C:xx:xx:xx
--- Fin del código ---

Además, se puede verificar que ZeroTier está ONLINE.

--- Código: ---zerotier-cli info
200 info 79aa2xxxxx 1.6.4 ONLINE
--- Fin del código ---
(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: ---reboot
--- Fin del código ---

Definir una interfaz para el dispositivo virtual ztxxxxxxxx

--- Código: ---uci set network.ZeroTier=interface
uci set network.ZeroTier.ifname=$(ifconfig | grep zt | awk '{print $1}')
uci set network.ZeroTier.proto='none'
--- Fin del código ---

Puentear la interfaz LAN con la interfaz ZeroTier

--- Código: ---uci set network.lan.ifname="$(uci get network.lan.ifname) $(uci get network.ZeroTier.ifname)"
--- Fin del código ---

Aplicar los cambios y reiniciar

--- Código: ---uci commit network
uci commit firewall
reboot
--- Fin del código ---


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

plumanegra:

--- Cita de: raphik en 23-04-2021, 00:40 (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.
--- Fin de la cita ---

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


--- Cita de: raphik en 23-04-2021, 00:40 (Viernes) ---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.
--- Fin de la cita ---

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


--- Cita de: raphik en 23-04-2021, 00:40 (Viernes) ---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?
--- Fin de la cita ---

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.


--- Cita de: raphik en 23-04-2021, 00:40 (Viernes) ---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.

--- Fin de la cita ---

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.

plumanegra:

--- Cita de: plumanegra en 23-04-2021, 21:05 (Viernes) ---
--- Cita de: raphik en 23-04-2021, 00:40 (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.
--- Fin de la cita ---

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


--- Cita de: raphik en 23-04-2021, 00:40 (Viernes) ---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.
--- Fin de la cita ---

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


--- Cita de: raphik en 23-04-2021, 00:40 (Viernes) ---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?
--- Fin de la cita ---

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.


--- Cita de: raphik en 23-04-2021, 00:40 (Viernes) ---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.

--- Fin de la cita ---

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.
--- Fin de la cita ---

raphik:
@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: ---uci set network.lan.ifname="$(uci get network.lan.ifname) $(uci get network.ZeroTier.ifname)"
--- Fin del código ---

plumanegra:
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.

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

[*] Página Anterior

Ir a la versión completa