Внимание!
Все предоставленные примеры не обязательно являются рабочими, использовать их для настройки своего оборудования без понимания принципа действия не рекомендуется.
Примеры предоставлены исключительно для понимания принципов работы Ideco ACP с сторонним оборудованием.
Также, оборудование нельзя считать запущенным в эксплуатацию, если не все пункты плана внедрения завершены успешно.
Настройка оборудования
В данном примере используется простейший шейпер, который не требует предварительного создания очередей на микротике.
Шейперы создаются и применяются к пользователям динамически, при наступлении события rate_set.
Таким образом на микротике необходимо лишь создать адрес-листы:
- balance_positive - лист для nat и разрешения выхода в Интернет
- balance_negative - лист для переадресации пользователей с отрицательным балансом.
Если нужны разные группы пользователей, то можно создать разные адрес листы, и использовать составные листы, например:
balance_positive${tariff_id} balance_positive${pull_id}
Внимание! Для применения иных шейперов требуется все шейперы предварительно настроить вручную по инструкции микротика, а также исправить блок rate_set в event_inc.sh на требуемые для микротика команды.
Рекомендуется склеивать команды микротика в одну через знак ' ; ' вместо нескольких последовательных ssh тк ssh долго подключается к микротику.
Не рекомендуется использовать более 300-500 пользователей на 1 микротик.
Настройка АСР (event_inc.sh)
В этом скрипте команды на микротик пересылаются с помощью ssh, а не с помощью radius.
LOG INFO "$SENDER $EVENT $DATA" [ "$nas_ip" = "0.0.0.0" ] && exit { case "$EVENT" in login | balance_negative | balance_positive | user_data_changed | user_data_changed_before ) ssh username@$nas_ip "/ip firewall address-list remove [find address=$ip]" if [ "$over_limit" = "0" ]; then ssh username@$nas_ip "/ip firewall address-list add address=$ip list=balance_positive" else ssh username@$nas_ip "/ip firewall address-list add address=$ip list=balance_negative" fi ;; rate_set ) if [ "$ceil_out" != "-1" ]; then ssh username@$nas_ip /queue simple remove [find name=$id] ssh username@$nas_ip /queue simple add name=$id target-addresses=$ip max-limit=${ceil_in}k/${ceil_out}k interface=vlan$router_vlan fi ;; logout ) ssh username@$nas_ip "/ip firewall address-list remove [find address=$ip]" ssh username@$nas_ip /queue simple remove [find name=$id] ;; period_closed ) LOG INFO "event type: $EVENT $DATA" ;; * ) LOG INFO "event type: $EVENT $DATA" ;; esac }
Настройка тарифов
Тарифы настраиваются стандартно, т.к radius параметры при данной схеме не используются, а $ceil_in и $ceil_out передаются микротику по SSH каждый раз при возникновении события rate_set.
Настройка пользователей
Так как микротик не использует Radius, то для пользователей, которые получают доступ в интернет через него необходимо вручную переопределить IP NAS сервера, автоматически этого не произойдет.