=========================== 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.
=============================================================================Este post es una adaptación del artículo
Layer 2 Bridging with LEDE/OpenWRT creado por Grant Limberg y actualizado el 12 de marzo de 2019 por Travis LaDuke.
LAN extendida. Los PCs situados en ubicaciones alejadas entre sí están en la misma redLAN extendida en la que los hosts están situados en tres ubicaciones distintas. En cada ubicación, un router OpenWrt en modo pasarela (
routed AP) asigna a sus hosts IPs dentro de un subrango VPN. Los hosts salen a la VPN con su propia IP utilizando una técnica llamada layer 2 bridging. Pueden navegar y son direccionables.
0) PlanteamientoLa red xLAN para las tres ubicaciones es 192.168.100.0
/22Las IPs de los routers proveedores de Internet son irrelevantes, ya que la interfaz WAN OpenWrt tomará su IP por DHCP.
Router OpenWrt----------------------------------------------------------------------------
Ubicación | Interfaz LAN | Interfaz VPN | DHCP leases
----------------------------------------------------------------------------
A | 192.168.100.5 | 192.168.103.10 | 192.168.100.100 - 192.168.100.250
B | 192.168.101.5 | 192.168.103.11 | 192.168.101.100 - 192.168.101.250
C | 192.168.102.5 | 192.168.103.12 | 192.168.102.100 - 192.168.102.250
----------------------------------------------------------------------------Máscara de red: 255.255.
252.0
Puerta de enlace: 192.168.1.1 (es la IP del router ISP)
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/
22 (Asignado por el usuario al registrar la red.)
Auto-Assign [Advanced] Pools. Start 192.168.103.10 Stop 192.168.103.12 (Si se quiere, se puede elegir un rango más amplio.)
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 en cada ubicación(A continuación se muestran valores IP para la Ubicación A. Para la Ubicación B y la Ubicación C, sustituir por los valores pertinentes.)
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
uci set dhcp.lan.ra_management='1'
uci del network.lan.ip6assign
uci set network.lan.ipaddr='192.168.100.5'
uci set network.lan.netmask="255.255.252.0"
uci set dhcp.lan.start='192.168.100.100'
uci add_list network.lan.dns='1.1.1.1'
uci add_list network.lan.dns='1.0.0.1'
Configurar el SWITCH (conectores LAN1 a LAN4)
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
uci set network.wan=interface
uci set network.wan.ifname='eth0.2'
uci set network.wan.proto='dhcp'
Aplicar cambios y reiniciar
uci commit
reboot
Conectar un cable ethernet entre el router ISP y el zócalo LAN4 del router OpenWrt.
2) Instalar y configurar ZeroTierTras el reinicio, el PC habrá perdido la conexión con el router, que ahora tiene una nueva IP: 192.168.100.5. 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.5 (PuTTY, en Windows)
Actualizar lista de paquetes e instalar ZeroTier One
opkg update
opkg install zerotier
Configurar ZeroTier. Sustituir 'ID_DE_RED' por la Network ID de la red ZeroTier.
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".
ifconfig | grep zt
ztxxxxxxxx Link encap:Ethernet HWaddr 0E:F4:xx:xx:xx:xx
Además, se puede verificar que ZeroTier está ONLINE.
zerotier-cli info
200 info 79axxxxxxx 1.6.5 ONLINE
(El número hexadecimal "79axxxxxxx" 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.
reboot
Definir una interfaz para el dispositivo virtual ztxxxxxxxx
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
uci set network.lan.ifname="$(uci get network.lan.ifname) $(uci get network.ZeroTier.ifname)"
Aplicar los cambios y reiniciar
uci commit network
uci commit firewall
reboot
3) Autorizar al router OpenWrt a unirse a la red ZeroTierEn ZeroTier Central (
https://my.zerotier.com), buscar el router (el identificador de nodo y la MAC ayudan) y marcar la casilla "Auth?". Se puede dejar la IP asignada automáticamente o cambiarla por la IP fija 192.168.103.10. 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.103.10). 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.