Cómo configurar un hotspot TP-Link Omada de Powerlynx: guía sencilla

Esta guía muestra cómo usar un despliegue Wi-Fi TP-Link Omada — puntos de acceso EAP gestionados por un Omada Software Controller — como NAS de portal cautivo de Powerlynx, utilizando el flujo RADIUS + External Web Portal.

El controlador Omada (no cada EAP individual) es el cliente RADIUS y el receptor de CoA/PoD (UDP 3799). Un cliente que se une al SSID del hotspot es redirigido a la página de bienvenida de Powerlynx. Tras iniciar sesión o realizar el pago, Powerlynx envía automáticamente el navegador del cliente de vuelta al endpoint /portal/radius/browserauth del controlador, y el controlador realiza el intercambio RADIUS (auth + accounting) con Powerlynx a través de un túnel WireGuard.

tplink-omada Topology

!Importante: Solo controlador on-premise — ¡Omada Cloud no funciona!

Ambas configuraciones descritas a continuación requieren un controlador Omada autohospedado / on-premise. En Omada Cloud no funciona — el controlador en la nube no puede recibir RADIUS PoD ni CoA (UDP 3799) de Powerlynx, por lo que la desconexión remota y la autorización dinámica son imposibles.

Hay dos formas de crear un hotspot TP-Link Omada con Powerlynx, según si usas un gateway TP-Link Omada (serie ER):

Configuración 1 — Host Ubuntu / Omada Software Controller como gateway + TP-Link EAP. Úsala cuando no tengas (o no quieras usar) un gateway TP-Link. El servidor Ubuntu con el Omada Software Controller asume el rol de “gateway”: termina el túnel WireGuard hacia Powerlynx a nivel de SO y actúa como cliente RADIUS y receptor de CoA/PoD. Solo necesitas ese servidor más un TP-Link EAP — sin router/gateway Omada. El acceso a Internet de los clientes lo proporciona el router/enlace ascendente existente del sitio. Esta guía documenta esta configuración.

Configuración 2 — Controlador Omada + gateway TP-Link Omada (serie ER) + TP-Link EAP. Úsala cuando sí uses un gateway TP-Link Omada; el gateway termina el túnel WireGuard hacia Powerlynx (el WireGuard integrado de Omada es una función exclusiva del gateway) y actúa como cliente RADIUS. La configuración del lado Powerlynx es la misma que en la Configuración 1.

Solo la Configuración 1 está documentada paso a paso a continuación (es la configuración validada de extremo a extremo). Si necesitas ayuda con la Configuración 2 (gateway TP-Link Omada), contacta al equipo de soporte de Powerlynx en support@powerlynx.app.

Requisitos

  • Host Linux — Ubuntu 16.04 / 18.04 / 20.04 / 22.04 / 24.04 o Debian 8–12 (64 bits). Windows también es compatible.
  • OpenJDK 17+ (64 bits) para la versión v5.15.20 del controlador y superiores (las versiones anteriores usan Java 8+).
  • MongoDB hasta la versión 8 para v5.15.20+ (hasta v7 para 5.14.20+).
  • Apache Commons Daemon (jsvc) — se recomienda v1.0.15 con OpenJDK 17.
  • Omada Software Controller, línea v5 (esta guía usa 5.15.x; la versión actual en distribución es v6.2.x — elige 5.15.x en “Previous Version” en la página de descarga).
  • Un TP-Link Omada EAP (p. ej. EAP225 v3+).
  • IP estática para el host del controlador — la adopción del EAP y la configuración RADIUS la referencian por IP.
  • Una Ubicación de Powerlynx y un hotspot ya creados.

Cómo configurar TP-Link Omada con Powerlynx: guía de integración paso a paso

Resumen rápido de la configuración

  1. Instalar el Omada Software Controller en el host Ubuntu
  2. Adoptar el EAP y crear la WLAN del hotspot (SSID)
  3. Configurar el túnel WireGuard entre el host del controlador y Powerlynx
  4. Configurar el hotspot de Powerlynx (tipo de NAS, NAS IP, secreto RADIUS)
  5. Configurar el Portal y el perfil RADIUS de Omada
  6. Establecer los atributos RADIUS recomendados en el tipo de NAS de Powerlynx
  7. Verificar: capturar tráfico RADIUS y probar una sesión completa

Pasos detallados

Paso 1. Instalar el Omada Software Controller

Instala el Omada Software Controller (línea v5) en el host Ubuntu. Los enlaces de descarga e instalación oficiales están en la sección de Referencias al final de esta guía.

# 1. OpenJDK 17 + jsvc
sudo apt update
sudo apt install -y openjdk-17-jre-headless jsvc curl gnupg

# 2. MongoDB 8.0
curl -fsSL https://www.mongodb.org/static/pgp/server-8.0.asc | \
sudo gpg -o /usr/share/keyrings/mongodb-server-8.0.gpg --dearmor

echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-8.0.gpg ] \
https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/8.0 multiverse" | \
sudo tee /etc/apt/sources.list.d/mongodb-org-8.0.list

sudo apt update && sudo apt install -y mongodb-org

# 3. Instala el .deb del controlador (descárgalo desde la página oficial — ver Referencias)
sudo dpkg -i omada_v5.15.24.19_linux_x64_*.deb
# Si dpkg da error por la versión de jsvc:
# sudo dpkg --ignore-depends=jsvc -i omada_v5.15.24.19_linux_x64_*.deb

# 4. Iniciar
sudo tpeap start
tpeap status

Abre la interfaz en https://<controller-ip>:8043 y ejecuta el asistente de configuración: crea la cuenta de administrador, crea un sitio y omite el acceso a Omada Cloud (esta es una configuración on-prem).

Nota: El primer arranque puede tardar varios minutos. Los puertos web (8043/8088) solo se abren al final del arranque — consulta logs/server.log hasta que los puertos estén abiertos.

Omada-login

Verifica la instalación:

java -version # OpenJDK 17
sudo tpeap status # "Omada Controller is running"
sudo ss -tlnp | grep -E '8043|8088' # puertos web escuchando = arranque finalizado

Si el host tiene firewall, abre estos puertos (controlador v5.x):

Puerto Función
TCP 8043 / 8088 Gestión HTTPS / HTTP + portal cautivo
TCP 8843 Portal cautivo HTTPS
UDP 29810 Descubrimiento del EAP
TCP 29811–29814 Adopción / gestión / firmware del dispositivo
TCP 29815–29816 Datos del dispositivo / CLI remoto (v5.9+)
UDP 1812 / 1813 (salida) Auth / accounting RADIUS → Powerlynx
UDP 3799 (entrada) CoA / PoD (desconexión) ← Powerlynx

Paso 2. Adoptar el EAP y crear la WLAN (SSID)

Enciende el EAP en la misma red L2 que el controlador; aparecerá en Devices. Adóptalo y espera a que el estado sea CONNECTED. Crea una WLAN / SSID para el hotspot (Settings → Wireless Networks → WLAN) y asígnale un nombre — esta guía usa Power-TPLink. Para un laboratorio, tanto Open como WPA-Personal funcionan; los hotspots de producción normalmente usan un SSID abierto para que el portal cautivo pueda interceptar a los clientes no autenticados. El Portal (Paso 5) se aplica luego a esta WLAN.

Omada-wlan

El nombre del SSID debe coincidir en ambos lados. Powerlynx determina a qué Ubicación y Página de bienvenida pertenece una sesión por el nombre del SSID (no por el realm/dominio RADIUS). El nombre de la WLAN definido en el EAP Omada (aquí Power-TPLink) debe introducirse exactamente como el SSID en el lado de Powerlynx — en la Ubicación y en su Página de bienvenida. Si los nombres difieren, la sesión no se asignará a la página de bienvenida / ubicación correcta.

tplink omada powerlynx location ssids

tplink omada powerlynx splash ssids

Paso 3. Configurar el túnel WireGuard (host del controlador ↔ Powerlynx)

Instala WireGuard en el host Ubuntu:

sudo apt update && sudo apt install -y wireguard
  1. En Powerlynx, crea el hotspot: Location → Hotspots → Add. En el primer paso del asistente (Initial settings), introduce un título, elige NAS type = TP-Link (cloud) y haz clic en Next.

En el paso de Configuration, establece Connection type = WireGuard, haz clic en Generate Wireguard keys, introduce el secreto RADIUS y finaliza el asistente. Copia la clave privada del cliente ahora — solo se muestra en el momento de la generación.

tplink omada powerlynx generate wg keys

La clave privada del cliente se muestra solo una vez. “Regenerate keys” es destructivo — genera un nuevo par y elimina el peer existente, por lo que el host tendría que reconfigurarse con la nueva clave.

      2. Toma el endpoint del servidor y la clave pública del servidor desde la página de configuración VPN del hotspot en Powerlynx (la vista “Configure VPN”). Crea /etc/wireguard/wg0.conf en el host Ubuntu:

[Interface]
PrivateKey = <client-private-key-from-generate>
Address = <controller-tunnel-ip>/32

[Peer]
PublicKey = lPYDyIwk5X4tyUMNT9ny/nyPSyHwk31mzm2ahOH7iV0=
Endpoint = 139.84.243.134:443
AllowedIPs = 172.16.0.1/32
PersistentKeepalive = 15

Actívalo, habilítalo al arranque y verifica:

sudo wg-quick up wg0 # iniciar el túnel ahora
sudo systemctl enable wg-quick@wg0 # iniciar automáticamente al arrancar
systemctl status wg-quick@wg0.service # debe estar "active (exited)"
sudo wg show # peer, último handshake, contadores de transferencia
ping -c4 172.16.0.1 # confirmar conectividad a través del túnel

Un ping exitoso a la dirección del túnel de Powerlynx confirma que el túnel está activo:

tplink omada wireguard ping

Paso 4. Configurar el hotspot de Powerlynx

En el hotspot de Powerlynx (Location → hotspot), establece los siguientes campos:

Campo Valor
NAS type TP-Link (cloud)
Connection type WireGuard
NAS IP <controller-tunnel-ip> (la dirección WireGuard del controlador)
RADIUS secret <tu-secreto-radius>

tplink omada powerlynx hotspot config

Paso 5. Configurar el Portal y el perfil RADIUS de Omada

Esta es la configuración crítica. En el controlador: Settings → Authentication → Portal y Settings → Profiles → RADIUS Profile.

Configuración Valor Nota
Authentication Type RADIUS Server No elijas “External Portal Server” — ese es el flujo obsoleto de API del controlador que Powerlynx no usa.
External Web Portal URL https://yourpowerlynxdomain.app/redirect-flow Reemplaza yourpowerlynxdomain.app con tu propio dominio de Powerlynx.
Disconnect Requests Enabled Activa el listener PoD.
Receiver Port 3799
Authentication Mode PAP CHAP como alternativa.

Perfil RADIUS

Configuración Valor Nota
Authentication Server 172.16.0.1:1812 Por IP, no por hostname — un hostname rompe el accounting silenciosamente.
Accounting Server 172.16.0.1:1813 Igual — por IP.
Auth / Accounting / CoA password <tu-secreto-radius> Exactamente el secreto RADIUS del hotspot, en los tres campos.
Accounting Enabled
Interim Update Interval 300 s (producción) / 60 s (laboratorio) Debe mantenerse por debajo de accounting_interval × factor de Powerlynx — ver Paso 6.

Pre-Authentication Access (Walled Garden)

En la pestaña Access Control del Portal, activa Pre-Authentication Access y añade tu dominio de Powerlynx a la lista, para que un cliente no autenticado pueda acceder a la página de bienvenida de Powerlynx antes de iniciar ses

tplink omada omada access control

Paso 6. Establecer los atributos RADIUS recomendados

Establece estos valores en las plantillas de atributos del tipo de NAS de Powerlynx (Config → System → NAS Types). Estos valores son los que hacen que la limitación de velocidad, el tiempo de sesión, la dirección del accounting y la desconexión funcionen correctamente con Omada.

Grupo Atributo Valor recomendado Por qué
Rate limit WISPr-Bandwidth-Max-Up {{ mul .tx_rate_limit 1024 }} Límite de subida (kbps → bps).
Rate limit WISPr-Bandwidth-Max-Down {{ mul .rx_rate_limit 1024 }} Límite de bajada (kbps → bps).
Access-Accept Session-Timeout {{ .time_left }} Tiempo restante por cupón.
PoD User-Name {{ .mac }} Identifica al cliente a desconectar.
PoD Calling-Station-Id {{ .mac | upper | replace ":" "-" }} Crítico — debe coincidir con el formato MAC de Omada. Ver más abajo.
Accounting Invert accounting ON Ver más abajo.

tplink omada powerlynx nas type tplink

El formato de Calling-Station-Id es lo que hace que PoD funcione. Omada identifica las desconexiones por una MAC en MAYÚSCULAS con GUIONES (p. ej. AA-BB-CC-DD-EE-FF). El {{ .mac }} normal de Powerlynx genera minúsculas con dos puntos, que Omada no reconoce — la desconexión se ignora silenciosamente sin ACK. Usa {{ .mac | upper | replace ":" "-" }} para que el valor coincida con el formato propio de Omada.

Invert accounting (ON): Omada sigue el estándar RFC — Acct-Input = subida, Acct-Output = bajada. Con Invert accounting activado, Powerlynx asigna estos valores a la dirección correcta de bajada/subida en su interfaz.

Intervalo de Interim Update: Powerlynx cierra forzosamente una sesión si no llega ninguna actualización de accounting dentro del plazo accounting_interval × factor (los campos del tipo de NAS de Powerlynx). La condición es: Omada Interim Update interval < accounting_interval × factor de Powerlynx. Producción (recomendado): establece Accounting interval = 300 y factor = 2 en el tipo de NAS de Powerlynx (ventana de cierre de 600 s), y Omada Interim Update Interval = 300 s.

Paso 7. Verificar

En el host del controlador, captura el tráfico RADIUS en la interfaz del túnel:

sudo radsniff -i wg0 -p 1812 -x # captura 1812/1813/3799
# o, solo para desconexión:
sudo tcpdump -ni wg0 -vv 'udp port 3799'
Fase Resultado esperado
Auth Access-Request → Access-Accept. User-Name = MAC (sin separador, mayúsculas); Calling-Station-Id = MAC mayúsculas-guiones; NAS-IP-Address = <controller-tunnel-ip>.
Accounting Start → Interim (en el intervalo configurado) → Stop; dirección de bajada/subida correcta con Invert ON.
PoD / desconexión Activa la desconexión desde Powerlynx al inicio de la sesión. Éxito = Disconnect-Request (Calling-Station-Id en mayúsculas-guiones) → Disconnect-ACK → cliente desconectado con causa Acct-Stop que no es Session-Timeout.

El paquete Disconnect-ACK es la señal definitiva de éxito del PoD. Si ves un Disconnect-Request pero no hay ACK, revisa el formato del Calling-Station-Id (Paso 6).

Tras una sesión exitosa, comprueba los dispositivos autorizados / en línea en dos lugares:

  • Powerlynx — la página de Sessions de nivel superior (y la vista de sesiones de la Ubicación) lista las sesiones activas/en línea: MAC del cliente, plan/cupón, datos usados, inicio y vencimiento.
  • Controlador Omada — Clients muestra el dispositivo como AUTHORIZED (tipo de auth Radius – …); Hotspot Management → Authorized Clients muestra bajada/subida por cliente, hora de inicio y vencimiento, y estado.

tplink omada omada-authorized-clients

Limitaciones y puntos a tener en cuenta

CoA-Request NO es compatible con Omada — devuelve CoA-NAK (Error-Cause "Unsupported-Attribute"). Solo funciona Disconnect/PoD. Cualquier funcionalidad que dependa de un CoA a mitad de sesión no tendrá efecto en Omada; requiere desconexión y reautenticación.

Las sesiones de prueba no son utilizables actualmente con el tipo de NAS TP-Link Omada. Con las sesiones de prueba activadas, el flujo de prueba no funciona en Omada — el cliente se autoriza y luego se desconecta inmediatamente (Session-Timeout = 0). Deja las sesiones de prueba deshabilitadas en las ubicaciones servidas por un hotspot TP-Link Omada, y usa cupones en su lugar.

El WireGuard integrado de Omada es exclusivo del gateway — no funciona en un Software Controller. Termina WireGuard a nivel de SO en el host del controlador (wg-quick).

Los servidores RADIUS deben configurarse por IP, no por hostname — un hostname rompe el accounting silenciosamente.

Omada Cloud no tiene un endpoint funcional de CoA/PoD — se requiere un controlador autohospedado para que la desconexión funcione.

Referencias

Con el Omada Software Controller, el túnel WireGuard y el perfil RADIUS configurados en Powerlynx, tu despliegue de EAP TP-Link Omada está completamente integrado: los usuarios son redirigidos al portal de bienvenida, autenticados mediante RADIUS y gestionados a través del control de sesiones CoA/PoD. Para la documentación completa de la plataforma Powerlynx, visita docs.powerlynx.app.