Для упрощения, описывается схема авторизации PPPoE (Остальные схемы с использованием Radius почти не отличаются)

Управление MikroTik

Управление осуществляется через SSH консоль (в некоторых случаях будет явно указано использование API), поэтому нужно настраивать авторизацию по SSH сертификатам.

Управление шейпером

Параметры шейпера записаны в билинге в тарифных планах. К каждому тарифному плану прикреплены интервалы, к каждому интервалу - настройки скорости. (Это позволяет гибкую настройку скорости с точностью до часа недели).

Текущие (действующие в данный момент) правила записываются на микротик в виде queue-trees. Клиенты позже привязываются к этим queue-trees через address-list в названии которого указан ID тарифного плана.

Для обновления параметров шейпера (после изменения тарифных планов) нужно вызывать вручную (или через crontab) скрипт billd checkspeed.

# /usr/abills/libexec/billd checkspeed mikrotik


Если указать параметр RECONFIGURE=1, все правила шейпера будут удалены и созданы заново. Если указать параметр NAT=1, будут добавлены правила маскарада (отдельно для каждого тарифного плана)
Если указать опцию конфигурации $conf{SHAPER_RESTART_CMD}, указанная команда будет выполнена после изменения тарифного плана. Можно указать скрипт, который обновит скорости (желательно через sudo)

Авторизация

При авторизации клиента на Mikrotik, он формирует Radius-запрос на билинг в котором передаёт User-Name и User-Password в каком-то виде. Биллинг (при успешной авторизации) поднимает у себя сесию и отправляет Radius-ответ в котором могут быть указаны