... h2. Настройка оборудования В данном примере используется простейший шейпер, который не требует предварительного создания очередей на микротике. Шейперы создаются и применяются к пользователям динамически, при наступлении события rate_set. Таким образом на микротике необходимо лишь создать адрес-листы. Внимание\! Для применения иных шейперов требуется все шейперы предварительно создать вручную, а также исправить блок rate_set в event_inc.sh h2. Настройка АСР (event_inc.sh) В этом скрипте команды на микротик пересылаются с помощью ssh, а не с помощью radius. {code} 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 } {code} h2. Настройка тарифов \#TODO
|