Заметки и замечания, рассказы и пересказы

Группы пользователей в Mikrotik

С связи с расширением сети на даче появилась задача как-то группировать абонентов и что-то такое с ними вытворять — вводить ограничения и проводить мониторинг. Скорость и стабильность работы в связи со сменой оборудования и мобильного оператора возросла, но для спокойной жизни этого недостаточно. В задаче исходим из того, что у нас есть центральный маршрутизатор, в который сходятся несколько точек доступа. Сами точки доступа только передают подключение сразу в маршрутизатор без каких-либо затей. Если на Zyxel Keenetic функционал с двумя группами был из коробки в каком-то виде, то на Mikrotik нужно придумать что-то свое. Основная идея в том, что мы идентифицируем подключившегося по MAC-адресу и далее сопоставляем его с группой.

Сначала виделось два пути — делать дополнительные бриджи и раскидывать клиентов или делать vlan’ы. Делать бриджи только казалось хорошей идеей, на деле в них не было интерфейсов. Было создано несколько бриджей, с отдельными DHCP-серверами и в зависимости от MAC-адреса пользователю выдавался адрес из пула того или иного сервера. Пользователей так поделить удалось, но локальная и внешняя сеть в таком варианте не работает. Далее была идея использовать mac-based vlan. Но здесь мы сталкиваемся с тем, что не слишком удобно привязывать MAC-адрес и все равно нужно цепляться к интерфейсам. Других идей не было.

Находясь в сомнениях, я поделился своими мыслями с одним грамотным товарищем, и он натолкнул меня на другую идею, сказав — «зачем ты все пытаешься решить на L2, почему не хочешь делать управление разными сетями сразу?» Дальше товарищ отвлекся, а на меня в свою очередь снизошло озарение. Нет нужды городить огороды и развивать лопатостроение. Мух от котлет, то есть подключившихся пользователей, разделит как и в варианте с бриджами DHCP-сервер. Нам нужно задать несколько разных подсетей для разных групп пользователей. Пользователей поделит по MAC-адресу наш DHCP-сервер, добавляя в нужную группу — читай нужную подсеть. А дальнейшие манипуляции уже делать в Firewall / Queues. Осталось только реализовать схему и разбавить немного ручным трудом в виде работы с Leases.

Подготовка к внедрению, получаем аналоги групп:

Делаем немного QoS на Simple Queues:

И теперь в самое основное в Leases:

По результатам у нас пользователь попадает по умолчанию в Public сеть 192.168.1.0/24 с определенными условиями и ограничениями, оттуда вручную мы его можем перенести в другую «группу» или сеть с другими условиями, с более мягкими или жесткими ограничениями. Достаточно удобно, если не считать ручную работу.

Отправить
Поделиться
Запинить
1 комментарий
Илья Ельников 2021

ха! года 3 назад так же мучился с похожим вопросом и ровно так же решил, думал костыль, но по итогу этих 3 лет вполне рабочее решение

Pavel Galkin 2022

Приятно, что мысли сошлись :)
Правда костыль — рабочий, боевой. Не всегда случается сделать это по уму — VLAN / dot1x. Причины банальные ж — дешевое конечное оборудование, клиентское оборудование.