MikroTik Hotspot: login failed: user already logged in / no quota
Архитектура подсистемы MikroTik Hotspot и управление пользовательскими сессиями
Сервер MikroTik Hotspot управляет гостевой авторизацией на основе связки параметров IP/MAC-адреса, профилей пользователей (User Profiles) и учетных записей в локальной базе или на внешнем RADIUS-сервере. Сообщение hotspot,info login failed: user already logged in или no valid quota / limit reached возникает в двух случаях: 1) Учетная запись уже имеет активную сессию в таблице /ip hotspot active, а параметр профиля shared-users равен 1 (запрет параллельных входов); 2) У пользователя исчерпан лимит времени (limit-uptime), лимит переданных байт (limit-bytes-total) или закончился баланс на биллинге.
Бизнес-риски
Невозможность подключения клиентов и гостей в отелях, кафе, бизнес-центрах и на производственных объектах. Недовольство клиентов, сбои работы мобильных терминалов сбора данных (ТСД) на складах.
Ключевые параметры профиля Hotspot
| Параметр | Штатное значение | Причина ошибки |
|---|---|---|
shared-users | $1 \dots \text{unlimited}$ | При значении 1 повторный вход с другого устройства блокируется. |
keepalive-timeout | $2 \text{ мин} \dots 5 \text{ мин}$ | Большой тайм-аут удерживает «зависшую» старую сессию в базе. |
limit-bytes-total | Байты (целое число) | Достижение лимита переводит пользователя в отказ (No Quota). |
Регламент устранения ошибок авторизации Hotspot
Сценарий 1: Сброс зависшей активной сессии пользователя
Если пользователь физически отключился от Wi-Fi, но контроллер Hotspot еще удерживает его сессию по тайм-ауту Keepalive:
# Поиск и принудительное удаление активной сессии по логину
/ip hotspot active remove [find user="guest_user1"]
# Удаление всех неактивных cookie-файлов для сброса привязки браузера
/ip hotspot cookie remove [find user="guest_user1"]
# Поиск и сброс зависших MAC-привязок в таблице хостов
/ip hotspot host remove [find comment~"guest_user1"]Сценарий 2: Настройка профиля пользователей (Разрешение параллельных входов)
Если одна учетная запись (например, гостевой промокод конференции) должна использоваться несколькими устройствами одновременно:
# Увеличение количества одновременных сессий до 5 для гостевого профиля
/ip hotspot user profile set [find name="default"] shared-users=5
# Оптимизация времени удержания неактивной сессии (Idle / Keepalive Timeout)
/ip hotspot user profile set [find name="default"] idle-timeout=5m keepalive-timeout=2m status-autorefresh=1mСценарий 3: Сброс и корректировка лимитов трафика/времени (Quota Limits)
Если у пользователя истекла квота, сбросьте счетчики или увеличьте лимит:
# Сброс счетчиков трафика и аптайма для конкретного пользователя
/ip hotspot user reset-counters [find name="guest_user1"]
# Установка неограниченного лимита трафика
/ip hotspot user set [find name="guest_user1"] limit-bytes-total=0 limit-uptime=0Типовые ошибки администраторов
- Большое время DHCP Lease Time (>24 часа) в связке с Hotspot: Пул адресов быстро исчерпывается, а новые клиенты получают конфликт IP и не могут пройти авторизацию. Для гостевых сетей Lease Time должен быть 30–60 минут.
- Использование метода MAC-Cookie без очистки: При смене владельца устройства или подмене MAC-адреса авторизация падает в ошибку дублирования сессии.
Инженеры ITSTM настроят бесшовный Hotspot с интеграцией с Госуслугами/СМС-шлюзами, изоляцией клиентов и стабильным биллингом.
Частые вопросы (FAQ)
Почему после отключения от Wi-Fi пользователь не может войти снова в течение 5 минут?
Контроллер Hotspot ждет истечения keepalive-timeout перед удалением записи из таблицы активных пользователей. Уменьшите keepalive-timeout до 1-2 минут в свойствах User Profile.
Как разрешить пользователям автоматически подключаться повторно без ввода пароля?
Включите метод авторизации MAC Cookie в профиле сервера Hotspot: /ip hotspot profile set [find] login-by=http-chap,mac-cookie mac-cookie-timeout=3d.
Что означает статус 'no valid quota' при интеграции с FreeRADIUS?
Это означает, что RADIUS-сервер вернул атрибут Access-Reject из-за отсутствия предоплаченного пакета времени/трафика (атрибуты Session-Timeout или Mikrotik-Total-Limit).
Почему при авторизации одного пользователя выкидывает другого?
Если параметр shared-users равен 1, а в профиле включена опция 'Open status page = always', вход под тем же логином принудительно завершает предыдущую активную сессию.