Я пытаюсь найти способ отключать неавторизованных пользователей hotspot. Мы используем Mikrotik hotspot как централизованный контроллер для нескольких Wi-Fi точек доступа. Однако, если пользователь неавторизован, у него часто "зависает" сессия, которую приходится вручную удалять из списка хостов hotspot, и я хотел бы как-то автоматизировать этот процесс.
Я пытался использовать такой скрипт и разные его варианты:
/ip hotspot host remove [/ip hotspot host find where !authorized]
Это не дает никакого эффекта. На самом деле, попытка получить список неавторизованных хостов командой типа
/ip hotspot host find where !authorized
не выводит результата в CLI (должно ли?).
Если использовать
/ip hotspot host print where !authorized,
то список неавторизованных хостов появляется, но я не понимаю, как достать ID из этого, чтобы удалить хост.
[admin@Mainstreet Office - Ross Test] /ip hotspot host> print where !authorized
Flags: S - static, H - DHCP, D - dynamic, A - authorized, P - bypassed
MAC-ADDRESS ADDRESS TO-ADDRESS SERVER
0 H 00:26:B9:AD:57:C8 192.168.5.238 192.168.5.238 hotspot1
Я также пытался отключить пользователя через radius disconnect-сообщение (поскольку у нас в любом случае централизованная radius-аутентификация/авторизация). Однако radius disconnect не срабатывает:
echo -e “NAS-IP-Address=172.17.0.5\nFramed-IP-Address=192.168.5.238” | radclient -r 1 172.17.0.5 disconnect secret
Ошибка: “Radius disconnect request for unknown ip 192.168.5.238”
(Если отправлять такой же disconnect для авторизованного хоста, он отключается корректно).
Попытка отправить DM по User-Name или Calling-Station-Id вызывает ошибку на Mikrotik с сообщением “Radius disconnect with no ip provided”.
Я пробовал добавить другую информацию — порт hotspot NAS и имя пользователя вместе с Framed IP — но это тоже не работает, с ошибкой, что IP не найден.
Версия прошивки 3.30.
Как можно очистить список неавторизованных пользователей hotspot, не делая это вручную?
Я пытался использовать такой скрипт и разные его варианты:
/ip hotspot host remove [/ip hotspot host find where !authorized]
Это не дает никакого эффекта. На самом деле, попытка получить список неавторизованных хостов командой типа
/ip hotspot host find where !authorized
не выводит результата в CLI (должно ли?).
Если использовать
/ip hotspot host print where !authorized,
то список неавторизованных хостов появляется, но я не понимаю, как достать ID из этого, чтобы удалить хост.
[admin@Mainstreet Office - Ross Test] /ip hotspot host> print where !authorized
Flags: S - static, H - DHCP, D - dynamic, A - authorized, P - bypassed
MAC-ADDRESS ADDRESS TO-ADDRESS SERVER
0 H 00:26:B9:AD:57:C8 192.168.5.238 192.168.5.238 hotspot1
Я также пытался отключить пользователя через radius disconnect-сообщение (поскольку у нас в любом случае централизованная radius-аутентификация/авторизация). Однако radius disconnect не срабатывает:
echo -e “NAS-IP-Address=172.17.0.5\nFramed-IP-Address=192.168.5.238” | radclient -r 1 172.17.0.5 disconnect secret
Ошибка: “Radius disconnect request for unknown ip 192.168.5.238”
(Если отправлять такой же disconnect для авторизованного хоста, он отключается корректно).
Попытка отправить DM по User-Name или Calling-Station-Id вызывает ошибку на Mikrotik с сообщением “Radius disconnect with no ip provided”.
Я пробовал добавить другую информацию — порт hotspot NAS и имя пользователя вместе с Framed IP — но это тоже не работает, с ошибкой, что IP не найден.
Версия прошивки 3.30.
Как можно очистить список неавторизованных пользователей hotspot, не делая это вручную?