Guías · Sector 1

WiFi de huéspedes en MikroTik: red aislada, Hotspot con portal cautivo, vales, límites por usuario y un huésped que no navega

La red de huéspedes de un hotel o un restaurante en RouterOS 7: VLAN separada del TPV y del personal, cortafuegos hacia las redes privadas, ip hotspot setup, la página de acceso, usuarios y vales con perfiles y límites, el walled garden para la web del hotel, el DHCP y los registros, y el huésped que se conecta pero no ve el portal.

Qué vas a conseguir

Una WiFi de huéspedes que se gestiona sola: aislada del TPV, de los datáfonos y de la red del personal, con una página de acceso del hotel, usuarios por habitación o vales para el restaurante, un límite de velocidad por persona y los registros para saber quién se conectó. Y un método para el ticket más repetido de recepción: "estoy conectado pero no me sale nada".

Antes de empezar

  • Un router MikroTik con RouterOS 7 y la red del local montada como en la guía de red y WiFi de un restaurante u hotel: un bridge con filtrado de VLAN y la VLAN 100 para clientes.
  • Puntos de acceso que lleven el SSID de huéspedes a esa VLAN. Si son TP-Link Omada, el SSID sin el portal de Omada: un solo portal, el del MikroTik.
  • Acceso por Winbox o SSH desde la VLAN de gestión, y una copia (/export) antes de empezar.
  • Saber qué pide la dirección: acceso libre aceptando condiciones, clave por habitación o vales de un día.

1. La red de huéspedes, aparte

La VLAN 100 tiene su interfaz y su subred. Una /22 da más de mil direcciones, suficiente para un hotel lleno con dos o tres dispositivos por persona:

RouterOS · la interfaz de huéspedes
/interface vlan add interface=bridge1 name=vlan100-huespedes vlan-id=100/ip address add address=10.40.100.1/22 interface=vlan100-huespedes/ip firewall address-list add list=redes-privadas address=10.0.0.0/8/ip firewall address-list add list=redes-privadas address=172.16.0.0/12/ip firewall address-list add list=redes-privadas address=192.168.0.0/16/ip firewall filter add chain=forward in-interface=vlan100-huespedes dst-address-list=redes-privadas action=drop comment="huespedes: nada interno" place-before=0
  • La regla bloquea cualquier destino privado, no solo las VLAN del local: también la red del router 4G (192.168.8.0/24) o una VPN hacia la central.
  • Hacia el router, los huéspedes solo necesitan DHCP, DNS y el portal. Las reglas dinámicas del Hotspot abren lo suyo; añade DNS y cierra lo demás:
RouterOS · lo que un huésped puede pedir al router
/ip firewall filter add chain=input in-interface=vlan100-huespedes protocol=udp dst-port=53,67 action=accept comment="huespedes: DNS y DHCP"/ip firewall filter add chain=input in-interface=vlan100-huespedes protocol=tcp dst-port=53 action=accept/ip firewall filter add chain=input in-interface=vlan100-huespedes action=drop comment="huespedes: ni Winbox ni SSH"
  • Aislamiento entre clientes en el punto de acceso: un huésped no debe ver el portátil del de al lado. En Omada, Guest Network en el SSID; en un punto de acceso MikroTik con el paquete wifi, client-isolation=yes en el datapath del SSID.

2. El Hotspot con ip hotspot setup

El asistente crea el servidor, el perfil, el pool, el DHCP y las reglas dinámicas en una sola pasada:

RouterOS · /ip hotspot setup
/ip hotspot setuphotspot interface: vlan100-huespedeslocal address of network: 10.40.100.1/22masquerade network: noaddress pool of network: 10.40.100.10-10.40.103.250select certificate: noneip address of smtp server: 0.0.0.0dns servers: 1.1.1.1,9.9.9.9dns name: wifi.northwind.examplename of local hotspot user: recepcionpassword for the user: ********
  • masquerade network: no porque la regla de NAT hacia la WAN ya existe. Si respondes que sí, quedará una segunda regla que hace lo mismo.
  • dns name es el nombre con el que el huésped ve el portal y al que vuelve para cerrar sesión. Uno corto y del dominio del hotel.
  • El router hace de DNS para los huéspedes: /ip dns set allow-remote-requests=yes. Con el input cerrado como en la sección 1, solo responde a las redes internas.
  • Revisa lo creado con /ip hotspot print, /ip hotspot profile print y /ip dhcp-server print. En IP › Firewall verás reglas marcadas con D en cadenas hs-*: son dinámicas, van siempre arriba y no se tocan.

El asistente pone el DHCP con su propio tiempo de concesión. Ajústalo en la sección 5; con un salón lleno, el tiempo de concesión decide si el pool alcanza.

3. La página de acceso y el walled garden

Las páginas del portal están en Files › hotspot: login.html, status.html, logout.html y sus imágenes. Se editan fuera del router y se suben de nuevo:

  • En login.html, el logotipo del hotel, el texto de condiciones de uso (lo redacta la dirección o su asesor legal) y los campos de usuario y clave. No quites el formulario ni sus campos ocultos: son los que envían el inicio de sesión.
  • Guarda una copia de la carpeta original antes de tocarla. Si la página deja de funcionar, se vuelve a ella.
  • Cómo se entra se elige en el perfil del servidor:
RouterOS · perfil del servidor Hotspot
/ip hotspot profile set [find name=hsprof1] login-by=http-chap,cookie,trial http-cookie-lifetime=1d trial-uptime-limit=30m trial-user-profile=default
  • http-chap: usuario y clave sin que viajen en claro. cookie: el dispositivo no vuelve a pedir el portal en un día. trial: acceso libre de 30 minutos al día por dispositivo, útil en una cafetería; quítalo si todo debe pasar por usuario.

El walled garden es lo que se puede abrir sin iniciar sesión: la web del hotel, la carta del restaurante o la pasarela de reservas:

RouterOS · walled garden
/ip hotspot walled-garden add dst-host=www.northwind.example comment="web del hotel"/ip hotspot walled-garden add dst-host=*.northwind.example comment="carta y reservas"/ip hotspot walled-garden ip add dst-address=203.0.113.40 action=accept comment="servidor de reservas por IP"

walled-garden filtra por nombre las peticiones web; walled-garden ip, cualquier tráfico por dirección. Cuanto más corto, mejor: cada entrada es una puerta abierta sin identificar a nadie.

4. Usuarios, vales y perfiles con límites

El perfil de usuario fija la velocidad y la duración; el usuario, quién entra:

RouterOS · perfiles y usuarios
/ip hotspot user profile add name=huesped rate-limit=5M/20M shared-users=3 idle-timeout=30m keepalive-timeout=2m/ip hotspot user profile add name=evento rate-limit=2M/8M shared-users=1 session-timeout=6h/ip hotspot user add name=hab214 password=Mar7lago profile=huesped limit-uptime=3d comment="check-out 06/11"/ip hotspot user add name=boda1108-01 password=k4p9 profile=evento limit-uptime=8h/ip hotspot user print where profile=huespedColumns: NAME, PROFILE, UPTIME#  NAME    PROFILE  UPTIME0  hab214  huesped  0s
  • rate-limit es subida/bajada del huésped: 5M/20M son 5 Mbps de subida y 20 de bajada por usuario. El Hotspot crea una cola dinámica por cada sesión.
  • shared-users=3: el móvil, la tableta y el portátil de la habitación con la misma clave.
  • limit-uptime caduca la clave por tiempo de conexión; para que no sirva después del check-out, recepción la borra o el usuario se crea con la duración de la estancia.
  • Vales para eventos o el restaurante: lotes de usuarios del perfil evento impresos en tarjetas. Para muchos lotes o vales con caducidad por fecha, el paquete User Manager de RouterOS 7 hace de servidor RADIUS y los genera; el Hotspot lo usa con use-radius=yes en el perfil del servidor.
  • Las colas del Hotspot limitan a cada huésped. El total de la red de clientes, para que siempre quede ancho de banda para el TPV, va en una cola simple sobre la /22, como en la guía de red del local. Y recuerda: lo que va por FastTrack se salta las colas.

5. DHCP, concesiones y registros

RouterOS · concesión y ocupación del pool
/ip dhcp-server set [find interface=vlan100-huespedes] name=dhcp-huespedes lease-time=1h/ip dhcp-server lease print count-only where server=dhcp-huespedes388/ip hotspot active printColumns: SERVER, USER, ADDRESS, UPTIME, SESSION-TIME-LEFT#  SERVER     USER         ADDRESS        UPTIME   SESSION-TIME-LEFT0  hotspot1   hab214       10.40.100.57   1h12m1  hotspot1   boda1108-01  10.40.101.203  22m      5h38m
  • Una hora de concesión libera rápido las direcciones de quien se va, sin que el huésped que se queda lo note.
  • /ip hotspot host print muestra todos los dispositivos que el Hotspot ve, hayan iniciado sesión o no; /ip hotspot active print, solo las sesiones abiertas.
  • Registros: /system logging add topics=hotspot action=memory y /log print where topics~"hotspot". Cada inicio y cierre de sesión queda con usuario, IP y MAC.
  • En muchos países la ley obliga a conservar los registros de conexión de una red pública durante un tiempo. Envíalos a un servidor syslog (/system logging action add name=syslog target=remote remote=10.40.10.20) y pregunta a la dirección cuánto tiempo deben guardarse.

6. El ticket: "el huésped se conecta a la WiFi pero no navega / no le sale la página de acceso"

Viernes, 22:40. Recepción llama: el cliente de la 312 ve "Conectado" en el móvil, pero no le aparece la página para poner la clave y no carga nada. Otros huéspedes navegan bien.

  1. ¿Tiene dirección? En /ip hotspot host print se busca su MAC (el huésped la ve en los ajustes de la WiFi). Si no aparece, no ha recibido IP: /ip dhcp-server lease print count-only da 1.012 de 1.019 posibles. El pool está agotado por un tiempo de concesión de tres días que alguien puso. Se baja a una hora y se libera lo que no está activo; a los minutos el móvil obtiene dirección. Si aparece con una 169.254.x.x en su móvil, es lo mismo.
  2. Tiene IP, pero no sale el portal. El sistema del móvil detecta el portal pidiendo una página http:// fija a su fabricante; el Hotspot la intercepta y abre la ventana de acceso. Si no la abre:
  • Navegadores con HTTPS primero: el huésped escribe una web en https://. El Hotspot no puede redirigir HTTPS sin un error de certificado, así que la página no carga. Que abra http://wifi.northwind.example (el dns name); recepción lo tiene impreso en la tarjeta de la habitación.
  • DNS fijo o VPN: un móvil con DNS privado fijado en un proveedor concreto, o con una VPN que arranca sola, no ve el portal. Que ponga el DNS privado en automático o pause la VPN hasta iniciar sesión.
  • El walled garden demasiado generoso: si alguien añadió los dominios de comprobación de los fabricantes (o un * amplio) al walled garden, el móvil cree que ya tiene internet y no abre la ventana. /ip hotspot walled-garden print y fuera lo que no sea la web del hotel.
  1. Ve el portal, pone la clave y falla. /log print where topics~"hotspot" muestra el intento: login failed: invalid username or password, o que el usuario ha agotado su tiempo. La clave caducó con el limit-uptime, o hay más dispositivos que shared-users. Recepción le da una nueva.
  2. Inicia sesión y no navega. Si /ip hotspot active print lo muestra activo, el problema está detrás: /ping 1.1.1.1 desde el router, la DNS (/ip dns print) y la cola de su sesión en /queue simple print where dynamic. Si todos los huéspedes van mal a la vez, es la salida a internet y el ticket cambia de dueño.

En el ticket: MAC e IP del dispositivo, en qué paso falló, la causa y el cambio (concesión, walled garden, usuario). Si fue el pool, que se revise también en los demás establecimientos.

Una tarjeta en la habitación con el nombre de la red, la dirección http:// del portal y la clave evita la mitad de estas llamadas.

Siguientes pasos

  • La guía de red y WiFi de un restaurante u hotel tiene el plan de VLAN completo, la doble WAN y la WiFi lenta en mitad de una boda.
  • La de Zabbix en un restaurante o un hotel puede vigilar el número de sesiones del Hotspot y la ocupación del pool para avisar antes de que se agote.
  • Si el hotel quiere que el usuario de la WiFi salga del sistema de reservas al hacer el check-in, el paso siguiente es un servidor RADIUS conectado al PMS.

¿Falta algo o en tu entorno es distinto? Escríbeme y lo corrijo.

Tech Career Lab · newsletter

¿Te ha servido? Cada dos semanas envío una idea práctica para perfiles IT: LinkedIn, proyectos, networking y procesos de selección.

Apúntate y llévate las 33 ideas →