Просмотр Исходного

h2. Внимание\!

Все предоставленные примеры не обязательно являются рабочими, использовать их для настройки своего оборудования без понимания принципа действия не рекомендуется.

Примеры предоставлены исключительно для понимания принципов работы Carbon Billing с сторонним оборудованием.

Также, оборудование нельзя считать запущенным в эксплуатацию, если не все пункты [плана внедрения|http://asrdoc.ideco.ru/pages/viewpage.action?pageId=29033016] завершены успешно.


h2. Настройка оборудования

В данном примере используется простейший шейпер, который не требует предварительного создания очередей на микротике.

Шейперы создаются и применяются к пользователям динамически, при наступлении события rate_set.

Таким образом на микротике необходимо лишь создать адрес-листы:

* balance_positive - лист для nat и разрешения выхода в Интернет
* balance_negative - лист для переадресации пользователей с отрицательным балансом.

Если нужны разные группы пользователей, то можно создать разные адрес листы, и использовать составные листы, например:

{code}
balance_positive${tariff_id}
balance_positive${pull_id}
{code}


Внимание\! Для применения иных шейперов требуется все шейперы предварительно настроить вручную по [инструкции микротика|http://wiki.mikrotik.com/wiki/Russian/%D0%94%D0%B5%D0%BB%D0%B8%D0%BC_%D0%98%D0%BD%D1%82%D0%B5%D1%80%D0%BD%D0%B5%D1%82_%D0%B8%D0%BB%D0%B8_QoS_%D0%BD%D0%B0_Mikrotik], а также исправить блок rate_set в event_inc.sh на требуемые для микротика команды.

Рекомендуется склеивать команды микротика в одну через знак ' ; '  вместо нескольких последовательных ssh тк ssh долго подключается к микротику.

Не рекомендуется использовать более 300-500 пользователей на 1 микротик.


h2. Настройка Carbon Billing (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 )
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
}
{code}

h2. Настройка тарифов

Тарифы настраиваются стандартно, т.к radius параметры при данной схеме не используются, а $ceil_in и $ceil_out передаются микротику по SSH каждый раз при возникновении события rate_set.

h2. Настройка пользователей

Так как микротик не использует Radius, то для пользователей, которые получают доступ в интернет через него необходимо вручную переопределить IP NAS сервера, автоматически этого не произойдет.   !99.png|border=1!

h2. Добавление в список маршрутизаторов


h2. !Снимок-Настройка оборудования.png|border=1!