Интеграция заключается в следующих шагах:
- Настройка сервисов / политик / профилей на оборудовании
- Настройка скрипта event_inc.sh на Ideco ACP для пересылки нужных команд
- Создание и настройка RADIUS-атрибутов в тарифах для пользователей
Внимание!
Все предоставленные примеры не обязательно являются рабочими, использовать их для настройки своего оборудования без понимания принципа действия - категорически запрещено.
Примеры предоставлены исключительно для понимания принципов работы Ideco ACP с сторонним оборудованием.
Настройка оборудования
В данном примере используется простейший шейпер, который не требует предварительного создания очередей на микротике.
Шейперы создаются и применяются к пользователям динамически, при наступлении события rate_set.
Таким образом на микротике необходимо лишь создать адрес-листы.
Внимание! Для применения иных шейперов требуется все шейперы предварительно создать вручную, а также исправить блок rate_set в event_inc.sh
Настройка АСР (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) # LOG INFO "event type: $EVENT $DATA" if [ "$over_limit" = "0" ]; then ssh username@$nas_ip "/ip firewall address-list remove [find address=$ip]" ssh username@$nas_ip "/ip firewall address-list add address=$ip list=balance_positive$router_ip$enabled" else ssh username@$nas_ip "/ip firewall address-list remove [find address=$ip]" ssh username@$nas_ip "/ip firewall address-list add address=$ip list=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] # ssh username@$nas_ip "/ip firewall address-list add address=$ip list=list_balance_negative" ;; "period_closed") LOG INFO "event type: $EVENT $DATA" ;; *) : ;; esac }
Настройка тарифов
#TODO